After working for a few weeks on a direct publisher json feed, I uploaded it and got this error:
I have looked at the feed documentation and tried every tag possible, but still no change (https://developer.roku.com/docs/specs/direct-publisher-feed-specs/json-dp-spec.md#movie)
here is my code:
{ "providerName": "EliYah.com", "lastUpdated": "2022-12-3T10:38:28+00:00", "language": "en", "liveFeeds": [{ "id": "GCUGbgJZalE6XOuIzJVV", "title": "Live Video Broadcast", "content": { "dateAdded": "2021-01-23T17:20:46+00:00", "videos": [{ "url": "https://eliyah.com:442/live/smil:livedemo.smil/playlist.m3u8?DVR", "quality": "FHD", "videoType": "HLS" }], "language": "en-US" }, "thumbnail": "https://eliyah.com/wp-content/uploads/2022/03/Webp.net-resizeimage.jpg", "shortDescription": "The Weekly LIVE VIDEO Sabbath Broadcast", "longDescription": "The Weekly LIVE VIDEO Sabbath Broadcast", "tags": ["live"], "rating": { "rating": "UNRATED", "ratingSource": "USA_PR" }, "genres": ["educational"] }], "categories": [{ "name": "Live Video Broadcasts", "order": "most_recent", "query": "live OR eliyah" }], "movies": [{ "id": "fa762bb3-6135-4896-bcff-73b51f1152df", "title": "Commands Of The Messiah - Part 32", "content":[{ "dateAdded": "2022-03-26T18:04:42", "videos": [{ "url": "https://eliyah.com/video/broadcast/20220212-study.mp4", "quality": "HD", "videoType": "MP4", "bitrate": "1900" }] }], "genres": [ "educational" ], "rating": { "rating": "UNRATED", "ratingSource": "USA_PR" }, "tags": ["Eliyah.com"], "thumbnail": "https://eliyah.com/wp-content/uploads/2022/03/channel-poster_fhd.png", "releaseDate": "2022-03-26T18:04:42", "shortDescription": "Sorry, this Archive currently has no Description", "longDescription": "Sorry, this Archive currently has no Description", "categories": [{"name": "Latest","order": "most_recent","query": "live OR Eliyah.com"}] } ]}
You've got some problems with your feed file.
2022-04-07 14:14:05.4735 ERROR Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Common.ContentObject' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly. To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array. Path 'movies[0].content', line 46, position 24. 2022-04-07 14:14:05.4735 ERROR 'lastUpdated' field is incorrectly formatted. Assigning today's date. 2022-04-07 14:14:05.4735 ERROR 'fa762bb3-6135-4896-bcff-73b51f1152df' contains an incorrectly formatted 'ReleaseDate'. Setting date to '2022-03-26'. 2022-04-07 14:14:05.4735 ERROR 'fa762bb3-6135-4896-bcff-73b51f1152df' contains an incorrectly formatted 'dateAdded'. Setting date to today's date. 2022-04-07 14:14:05.4735 ERROR 'fa762bb3-6135-4896-bcff-73b51f1152df' is missing one or more video objects.
In particular, at line 46, you've defined the 'content' field as an array (use of '[') when it must be an object (use of '{').
I'm sorry if my post confused the issue. I should have explained the issue a little better.
Your feed file has syntax errors. The use of '[' and '{' means different things to JSON and to the Roku code that digests your feed file and tries to validate it. For example, take a look at the example of a 'movie' object from the Roku spec:
{ "id":"1509428502952", "title":"Sample Movie", "content":{ ... }, "genres":[ "drama", "comedy", "horror" ], "thumbnail":"https://example.org/cdn/thumbnails/1509428502952/1", "releaseDate":"2016-01-01", "shortDescription":"Incredible movie description", "longDescription":"Even more incredible and longer movie description", "tags":[ "amazing", "drama", "comedy", "horror" ] }
Notice that the 'content' field begins with '{'. That's because the 'content' field is an object and not an array.
I think you commented in a previous post that you are using Visual Code or some other external editor to create your feed file. Using an external editor is error-prone because it has no sense of the JSON/Roku syntax and requirements. While such editors can validate for JSON correctness, they cannot validate for Roku syntax.
I strongly recommend you consider using one of the many software solutions available on this forum. Some are free and some are paid. You can find them in the signature line of the poster.
They can make creating and maintaining a DP channel much easier.
You've got some problems with your feed file.
2022-04-07 14:14:05.4735 ERROR Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'Common.ContentObject' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly. To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array. Path 'movies[0].content', line 46, position 24. 2022-04-07 14:14:05.4735 ERROR 'lastUpdated' field is incorrectly formatted. Assigning today's date. 2022-04-07 14:14:05.4735 ERROR 'fa762bb3-6135-4896-bcff-73b51f1152df' contains an incorrectly formatted 'ReleaseDate'. Setting date to '2022-03-26'. 2022-04-07 14:14:05.4735 ERROR 'fa762bb3-6135-4896-bcff-73b51f1152df' contains an incorrectly formatted 'dateAdded'. Setting date to today's date. 2022-04-07 14:14:05.4735 ERROR 'fa762bb3-6135-4896-bcff-73b51f1152df' is missing one or more video objects.
In particular, at line 46, you've defined the 'content' field as an array (use of '[') when it must be an object (use of '{').
Removed the [ brackets, still has same error:
{ "providerName": "EliYah.com", "lastUpdated": "2022-12-3T10:38:28+00:00", "language": "en", "liveFeeds": [{ "id": "GCUGbgJZalE6XOuIzJVV", "title": "Live Video Broadcast", "content": { "dateAdded": "2021-01-23T17:20:46+00:00", "videos": [{ "url": "https://eliyah.com:442/live/smil:livedemo.smil/playlist.m3u8?DVR", "quality": "FHD", "videoType": "HLS" }], "language": "en-US" }, "thumbnail": "https://eliyah.com/wp-content/uploads/2022/03/Webp.net-resizeimage.jpg", "shortDescription": "The Weekly LIVE VIDEO Sabbath Broadcast", "longDescription": "The Weekly LIVE VIDEO Sabbath Broadcast", "tags": ["live"], "rating": { "rating": "UNRATED", "ratingSource": "USA_PR" }, "genres": ["educational"] }], "categories": [{ "name": "Live Video Broadcasts", "order": "most_recent", "query": "live OR eliyah" }], "movies": [{ "id": "fa762bb3-6135-4896-bcff-73b51f1152df", "title": "Commands Of The Messiah - Part 32", "content":[{ "dateAdded": "2022-03-26T18:04:42", "videos": { "url": "https://eliyah.com/video/broadcast/20220212-study.mp4", "quality": "HD", "videoType": "MP4", "bitrate": "1900" } }], "genres": [ "educational" ], "rating": { "rating": "UNRATED", "ratingSource": "USA_PR" }, "tags": ["Eliyah.com"], "thumbnail": "https://eliyah.com/wp-content/uploads/2022/03/channel-poster_fhd.png", "releaseDate": "2022-03-26T18:04:42", "shortDescription": "Sorry, this Archive currently has no Description", "longDescription": "Sorry, this Archive currently has no Description", "categories": [{"name": "Latest","order": "most_recent","query": "live OR Eliyah.com"}] } ]}
I'm sorry if my post confused the issue. I should have explained the issue a little better.
Your feed file has syntax errors. The use of '[' and '{' means different things to JSON and to the Roku code that digests your feed file and tries to validate it. For example, take a look at the example of a 'movie' object from the Roku spec:
{ "id":"1509428502952", "title":"Sample Movie", "content":{ ... }, "genres":[ "drama", "comedy", "horror" ], "thumbnail":"https://example.org/cdn/thumbnails/1509428502952/1", "releaseDate":"2016-01-01", "shortDescription":"Incredible movie description", "longDescription":"Even more incredible and longer movie description", "tags":[ "amazing", "drama", "comedy", "horror" ] }
Notice that the 'content' field begins with '{'. That's because the 'content' field is an object and not an array.
I think you commented in a previous post that you are using Visual Code or some other external editor to create your feed file. Using an external editor is error-prone because it has no sense of the JSON/Roku syntax and requirements. While such editors can validate for JSON correctness, they cannot validate for Roku syntax.
I strongly recommend you consider using one of the many software solutions available on this forum. Some are free and some are paid. You can find them in the signature line of the poster.
They can make creating and maintaining a DP channel much easier.
you were right, before I had removed the wrong [ brackets around a different tag, but after removing them around the content tag, and adding duration, it works!
... "content":{ "dateAdded": "2022-03-26T18:04:42", "duration": 3600, ...