Before the holidays, I converted my old Direct Publisher channel to the SDK version using the information and tutorials posted online. In the end, I had to modify my JSON but did get it working even if the ending channel app looked and worked differently than before. My channel update was approved and went live on January 1st.
Well, now it's not working...even though it was fine in the dev environment. (The dev version comes up empty too.) I thought maybe there was some bad stuff in the JSON, so I kept removing episodes and shows until I had only one show with 3 episodes left. Stupid thing still won't load.
Anyone care to take a look? A copy of the JSON is here: https://feeds.twit.tv/roku-test3.json
Nevermind. My JSON had extra commas in it that didn't show up as an error in Chrome or when running it through the JSON validator at jsonlint.com.
If you need help next time, we make it easy 🙂 https://sdkconverter.com/
I thought I had found the issue with my JSON having extra commas in it that didn't show up as an error in Chrome or when running it through the JSON validator at jsonlint.com...but that wasn't it. I've tried cutting back the JSON to just the bare bones and it's still not displaying.
Anyone got any ideas? No matter what I try, this is just coming up with a blank screen. JSON is at https://feeds.twit.tv/roku-test3.json
The JSON feed has a hidden UTF-8 BOM marker at the beginning of it, and the BrightScript JSON parser doesn't understand. Those are the 0xEF, 0xBB, and 0xBF characters at the start.
Here's the output from curl piped through hexdump -C
00000000 ef bb bf 7b 0a 22 70 72 6f 76 69 64 65 72 4e 61 |...{."providerNa|
00000010 6d 65 22 3a 20 22 54 57 69 54 22 2c 0a 22 6c 61 |me": "TWiT",."la|
00000020 6e 67 75 61 67 65 22 3a 20 22 65 6e 2d 55 53 22 |nguage": "en-US"|
00000030 2c 0a 22 6c 61 73 74 55 70 64 61 74 65 64 22 3a |,."lastUpdated":|
00000040 20 22 32 30 32 34 2d 30 31 2d 31 32 54 31 35 3a | "2024-01-12T15:|
00000050 30 39 3a 33 31 2d 30 38 3a 30 30 22 2c 0a 22 73 |09:31-08:00",."s|
00000060 65 72 69 65 73 22 3a 20 5b 0a 09 09 7b 0a 09 09 |eries": [...{...|
00000070 09 22 69 64 22 3a 20 22 54 57 69 54 5f 31 36 33 |."id": "TWiT_163|
00000080 35 22 2c 0a 09 09 09 22 74 69 74 6c 65 22 3a 20 |5",...."title": |
00000090 22 54 68 69 73 20 57 65 65 6b 20 69 6e 20 54 65 |"This Week in Te|
000000a0 63 68 22 2c 0a 09 09 09 22 72 65 6c 65 61 73 65 |ch",...."release|
000000b0 44 61 74 65 22 3a 20 22 32 30 30 35 2d 30 34 2d |Date": "2005-04-|
000000c0 31 37 54 31 35 3a 31 31 3a 35 35 5a 22 2c 0a 09 |17T15:11:55Z",..|
000000d0 09 09 22 73 68 6f 72 74 44 65 73 63 72 69 70 74 |.."shortDescript|
Try having your code strip that from the start of the string or modify the feed to not include that.
I looked at your feed and see that there is no Categories and playlists at the bottom or any Categories and queries! I put two examples below!
example:
}
],
"categories": [
{
"name": "Episodes: Latest back to 161",
"query": "161-200",
"order": "most_recent"
},
{
"name": "Episodes: 121-160",
"query": "121-160",
"order": "chronological"
},
{
"name": "Episodes: 81-120",
"query": "81-120",
"order": "chronological"
},
{
"name": "Episodes: 41-80",
"query": "41-80",
"order": "chronological"
},
{
"name": "Episodes: 1-40",
"query": "1-40",
"order": "chronological"
},
{
"name": "Francois du Plessis and Walter Veith Series",
"query": "FdP WV Series",
"order": "most_recent"
},
{
"name": "Francois du Plessis Series",
"query": "Francois du Plessis Series",
"order": "most_recent"
},
{
"name": "Walter Veith Series",
"query": "Walter Veith Series",
"order": "most_recent"
},
{
"name": "Martin Smith Sermons",
"query": "Martin Smith Sermons",
"order": "most_recent"
},
{
"name": "Miscellaneous",
"query": "Misc",
"order": "most_recent"
},
{
"name": "Health Series",
"query": "Health Series",
"order": "most_recent"
},
{
"name": "Other Series",
"query": "Other Series",
"order": "most_recent"
},
{
"name": "Music",
"query": "Music",
"order": "most_recent"
},
{
"name": "Ellen G. White Books (audio with text on screen)",
"query": "Ellen G. White Series",
"order": "most_recent"
}
]
}
example2:
"categories": [
{
"name": "All Videos",
"playlistName":"All",
"order": "most_popular"
},
{
"name": "Divine Mercy Matters",
"playlistName":"Divine Mercy Matters",
"order": "chronological"
},
{
"name": "Discovering the Diary",
"playlistName":"Discovering the Diary",
"order": "most_recent"
},
{
"name": "Featured Free for a Limited Time",
"playlistName":"Featured Free",
"order": "manual"
},
{
"name": "Explaining the Faith with Fr. Chris Alar",
"playlistName":"Explaining the Faith",
"order": "chronological"
}
],
"playlists": [
{
"name": "All",
"itemIds": [
"archives-srfaustina1",
"c8168fc591444f1a8dd57f6066c26c88",
"01915b3a171a461ebe6e0a098d53e705",
"2c27a33b4eee4705971b1904490c72be",
"91d627fdd4dc4dc0a79737cfc5a89428",
"c9cdab6e098c403a86f776cf13cd68d2",
"55c605228e584bc6ad3788b754808943",
"d0f01326bd764b6991b4e8ad165f2c59",
"39946711a4b5461d9519797a95e09de4",
"4471a6ab89c444a6ac624fc6ebb69341",
"0236fd9efc0a4be090b1130526b86880",
"8cb5b158c6ae403f9ced68af25aabe73",
"e13adc59658e483fa519f0dca3bcd30a",
"b2672956cd6044158b2a9187291f6afa",
"3f5aab9529084f32bd02e901d9ff53b9",
"235b85bd90844a05865190a0fca659ff"
]
},
{
"name": "Divine Mercy Matters",
"itemIds": [
"c8c1e4b00b144a649887cccf124522c5"
]
},
{
"name": "Discovering the Diary",
"itemIds": [
"01915b3a171a461ebe6e0a098d53e705",
"4471a6ab89c444a6ac624fc6ebb69341",
"c8168fc591444f1a8dd57f6066c26c88"
]
},
{
"name": "Featured Free",
"itemIds": [
"f1377ac9543c4b9795239516ef0caa64",
"38f3697469b4418b82fbb59945ed4aaa"
]
},
{
"name": "Explaining the Faith",
"itemIds": [
"8cb5b158c6ae403f9ced68af25aabe73",
"d708716987934c26add6574788ea4117",
"06e25536ff004058a6453fd86ab1930e",
"22af8f6370434cf887072b1c7a27a4f8",
"39946711a4b5461d9519797a95e09de4",
"e13adc59658e483fa519f0dca3bcd30a",
"d0f01326bd764b6991b4e8ad165f2c59",
"2c27a33b4eee4705971b1904490c72be",
"1c606116194c4f73a32b5d4e6f696fb0",
"91d627fdd4dc4dc0a79737cfc5a89428",
"c9cdab6e098c403a86f776cf13cd68d2",
"55c605228e584bc6ad3788b754808943",
"0236fd9efc0a4be090b1130526b86880",
"b2672956cd6044158b2a9187291f6afa",
"3f5aab9529084f32bd02e901d9ff53b9",
"84633bc134db49fdbd1075d827581810",
"e82af69af78a464d8acf8ff0fa6ac775",
"a0ab3f8ce2854a7a8680ebadfd289452",
"f3a0024758b148a081df0e2513b270c8",
"3c2bf497896b4f3eab22d3bf6e239bee",
"b46997f173374cf2910e0a2b56d68f1c",
"8322cd8277164eb981f4be57f1438df0"
]
}
]
}
@ferdiworks we just added the ability to manage categories from your JSON, since we saw so many channels have this same exact problem: