Skip to content

Video Chapters

Requires MediaVerse Pro - This feature is available exclusively in the Pro version.

MediaVerse Pro lets you add chapter markers to video files and tracks each viewer’s resume position so they can pick up where they left off.

Video player showing chapter markers on the progress bar

Chapter markers appear on the video player’s progress bar as clickable tick marks. A chapter list panel opens alongside the player, showing each chapter title and its timestamp. Clicking a chapter jumps the video to that position.

Chapter data is stored per media item via the REST API and rendered into the player on page load.


Base URL: /wp-json/mvs-pro/v1/

Retrieve the chapter list for a media item.

Response:

{
"chapters": [
{ "time": 0, "title": "Introduction" },
{ "time": 145, "title": "Main Topic" },
{ "time": 312, "title": "Conclusion" }
]
}

time is in seconds from the start of the video.

Replace the chapter list for a media item. Requires ownership of the media, or the moderate_mvs_media capability. Not edit_mvs_media: every role including Subscriber holds that one, and it means “your own media”, never anyone’s.

Body:

{
"chapters": [
{ "time": 0, "title": "Introduction" },
{ "time": 145, "title": "Main Topic" },
{ "time": 312, "title": "Conclusion" }
]
}

Sending an empty array ("chapters": []) removes all chapters from the media item.

Response: 200 OK with the updated chapter list.


MediaVerse Pro tracks the furthest playback position reached by each authenticated user. When a user returns to a video they have partially watched, the player offers a Resume from X:XX prompt.

Resume positions are stored server-side, not in browser storage, so they persist across devices.

Get the resume position for the current authenticated user.

Response:

{
"position": 187,
"updated_at": "2025-03-28T09:14:00Z"
}

Returns 404 if no resume position exists for this user and media item.

Save or update the resume position. The player calls this endpoint as the video plays.

Body:

{ "position": 187 }

position is in seconds. The endpoint accepts updates only when the new position is greater than the stored one, preventing backwards seeks from overwriting progress.

Response: 200 OK.

Clear the resume position for the current user. This is called when the user watches to the end of the video or manually dismisses resume tracking.

Response: 204 No Content.


Chapters are managed through the REST API (PUT /media/{id}/chapters) and stored per media item as JSON in the _mvs_chapters post meta. They are returned with the media REST response and rendered into the player on page load. Each entry is an object with a time (seconds from the start) and a title.