Roku Direct Publisher

Roku Direct Publisher - the easiest way to create a great TV experience. Learn more about how to create a Roku channel and share your experiences with others.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Jack14
Binge Watcher

1 item has an error: Required movie content is missing.

Jump to solution

After working for a few weeks on a direct publisher json feed, I uploaded it and got this error:

ErrorI 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"}]

}
]}
0 Kudos
2 Solutions

Accepted Solutions
Baradanikto
Roku Guru

Re: 1 item has an error: Required movie content is missing.

Jump to solution

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 '{').

FREE Windows desktop software for converting Direct Publisher channels to SceneGraph (SDK), for creating BIF (Trick Play) files, Roku (MRSS, JSON) feed files, and FireTV feed files @ GitHub/rrirower.

View solution in original post

0 Kudos
Baradanikto
Roku Guru

Re: 1 item has an error: Required movie content is missing.

Jump to solution

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.

FREE Windows desktop software for converting Direct Publisher channels to SceneGraph (SDK), for creating BIF (Trick Play) files, Roku (MRSS, JSON) feed files, and FireTV feed files @ GitHub/rrirower.

View solution in original post

0 Kudos
4 REPLIES 4
Baradanikto
Roku Guru

Re: 1 item has an error: Required movie content is missing.

Jump to solution

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 '{').

FREE Windows desktop software for converting Direct Publisher channels to SceneGraph (SDK), for creating BIF (Trick Play) files, Roku (MRSS, JSON) feed files, and FireTV feed files @ GitHub/rrirower.
0 Kudos
Jack14
Binge Watcher

Re: 1 item has an error: Required movie content is missing.

Jump to solution

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"}]

}
]}
0 Kudos
Baradanikto
Roku Guru

Re: 1 item has an error: Required movie content is missing.

Jump to solution

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.

FREE Windows desktop software for converting Direct Publisher channels to SceneGraph (SDK), for creating BIF (Trick Play) files, Roku (MRSS, JSON) feed files, and FireTV feed files @ GitHub/rrirower.
0 Kudos
Jack14
Binge Watcher

Re: 1 item has an error: Required movie content is missing.

Jump to solution

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,
...
0 Kudos