Skip to main content
Video Chapters
Updated over a week ago

Overview

The Video Chapter API allows end users to navigate and get to the relevant chapter(s) on the AnyClip player and to set and get the video chapters on the AnyClip Studio.

The API provides the following capabilities:

  • Provides navigation within the player

  • Provides navigation through an API (for external usage)

API data models

The API uses the following data models.

Chapters entity:

Video Chapters DTO

{

"uid" : String

"videoId" : String

"created" : Long

"updated" : Long

"enabled" : Boolean

"chapters" : [

{

"name" : "Chapter 1"

"time" : 10000

}

{

"name" : "Chapter 2"

"time" : 20001

}

...

{

"name" : "Chapter N"

"time" : 20001

}

]

}

Distribution Search:

Distribution/Search Request DTO

{ ...search fields... "includeChapters" : boolean }

Distribution/Search Response DTO

{ ... distribution video data .... "chapters" : [ { "name" : "Chapter 1" "time" : 10000 } { "name" : "Chapter 2" "time" : 20001 } ... { "name" : "Chapter N" "time" : 20001 } ] }

Other search requests include the includeChapters parameter:

  • Search response models have a list of "chapters"

  • All search API with the includeChapters flag will show only chapters with the flag: enab≤d=true

Data limitations

Data limitations are according to the ES documentation : chapters.size <= 10000.

Note

index.mapping.nested_objects.limit: The maximum number of nested JSON objects that a single document can contain across all nested types. This limit helps to prevent out of memory errors when a document contains too many nested objects. The default is 10000.

API definitions/updates

Create/update chapters list by video_id: (with ChaptersService/update):

# PUT chapters list

{

"chapters" : [

{

"name" : "Chapter 1"

"time" : 10000

},

...

{

"name" : "Chapter N"

"time" : 20001

}

]

}

# Enable/Disable chapters

{

"enabled" : true

}

Create chapters list by video creation: (with DistributionService/uploadMRSSData)

{

....

"chapters": {

"chapters": [

{

"time": 0,

"name": "string"

},

...

],

"enabled": true

}

}
Did this answer your question?