ODK API Portal
한국어
  • Overview
  • MediaIO
  • Continue Watching
  • Player Event
  • Deprecated
  • Recent changes
Information
carousel-group
Carousel
category-channels
category-navigation
category
channels
consent
content
Continue Watching
cover
deletion-request
device-data
Favorites
multichannel
Onboarding
parental-control
Amasian Parental PIN
playback
    Retrieve content playback informationget
policy
recommendation
search
season
series
service-config
Schemas
powered by Zudoku
ODX API v4
ODX API v4

playback


Retrieve content playback information

GET
https://odkmedia.io
/odx/api/v4/playback/{id}/
Code
Retrieves content playback information including: - Content streaming URL with CDN - Advertisement tags and scheduling - Next episode information and last episode status - DRM protection status The response includes all necessary data for video playback clients.

Retrieve content playback information › path Parameters

id
​string · required
Example: inuyashiki-last-hero-e1
pk
​integer · required

Unique identifier for the content

Retrieve content playback information › query Parameters

adid
​string

Advertising ID (used for advertisement tracking and targeting). Takes priority over did parameter when is_lat=0. If is_lat=1 (limit ad tracking) on Smartcast platform, this value is used instead.

dnt
​string · enum

Do Not Track preference. Values: "0" (not enabled) or "1" (enabled). This is a user/browser preference and is independent of both the CMP consent choice and is_lat.

Enum values:
0
1
drm
​string · enum

Enable or disable DRM protection. Values: "on" or "off"

Enum values:
off
on
gdpr
​string · enum

GDPR applicability flag as reported by the CMP. Values: "0" (does not apply) or "1" (applies). Omit the parameter when the CMP does not report it; the backend never assumes a value.

Enum values:
0
1
gdpr_consent
​string

IAB TCF consent string, required by buyers when gdpr=1. Forwarded unmodified.

gpp
​string

IAB Global Privacy Platform (GPP) consent string as reported by the CMP. Forwarded to ad tags unmodified. Omit the parameter when the CMP has not resolved.

gpp_sid
​string

GPP section ID(s) as reported by the CMP (e.g. "7" for usnat, "8" for usca). Send whatever the CMP reports. The value is forwarded unmodified and is never validated or defaulted, because it differs per platform and jurisdiction.

is_lat
​string · enum

Limit Ad Tracking flag. Values: "0" (allow tracking) or "1" (limit tracking)

Enum values:
0
1
lmt
​string · enum

Limit Ad Tracking flag as reported by the device (OpenRTB device.lmt). Values: "0" (allow tracking) or "1" (limit tracking). Equivalent to is_lat.

Enum values:
0
1
us_privacy
​string

CCPA US Privacy string as reported by the CMP (e.g. "1YNN", "1YYN"). Send the real consent value. Omit the parameter when no consent signal is available.

Retrieve content playback information › Headers

did
​string

Device ID (used for Continue Watching, Favorites, and advertisement tracking)

Example: 00000000-0000-4000-8000-000000000000

Retrieve content playback information › Responses

Serializer representing content playback information.
OdxV4Playback
​object · readOnly

Continue watching information including playback progress and UI status

Example: {"button_text":"Resume","cw_updated":1640995200,"duration":3600,"last_position":1800,"progress_percentage":50,"status":"in_progress"}
​OdxV4VideoCuePoint[] · readOnly
​OdxV4VideoCue[] · readOnly
duration
​integer | null · readOnly
id
​integer | null · readOnly
is_chromecast_able
​boolean · readOnly
is_live_streaming
​boolean · readOnly
manifests
​object | null · readOnly

Streaming manifest information containing playback URLs and metadata

Example: {"id":123,"preset":"high_quality","stream_url":"https://cdn.example.com/content/123/playlist.m3u8","type":"application/x-mpegURL"}
mediahub_content_id
​integer | null · readOnly
next_content
​object | null · readOnly

Information about the next episode to play

Example: {"content_id":124,"content_slug":"episode-2-journey-continues","is_last_episode":false,"season_id":5,"season_slug":"season-1","series_id":1,"series_slug":"amazing-series","thumbnail":"https://cdn.example.com/thumbnails/124.jpg","title":"Episode 2: The Journey Continues"}
​object · readOnly

Next recommended content information.

Use cases
Code
* Binge now - when next_content is not available
series_slug
​string | null · readOnly
GET/odx/api/v4/playback/{id}/
curl https://odkmedia.io/odx/api/v4/playback/:id
Example Responses
{ "continue_watching_info": { "button_text": "Resume", "cw_updated": 1640995200, "duration": 3600, "last_position": 1800, "progress_percentage": 50, "status": "in_progress" }, "cue_points": [ { "metadata": "metadata", "name": "name", "timecode": 0, "type": "type" } ], "cues": [ { "end": 0, "start": 0, "type": "type" } ], "duration": 0, "id": 0, "is_chromecast_able": true, "is_live_streaming": true, "manifests": { "id": 123, "preset": "high_quality", "stream_url": "https://cdn.example.com/content/123/playlist.m3u8", "type": "application/x-mpegURL" }, "mediahub_content_id": 0, "next_content": { "content_id": 124, "content_slug": "episode-2-journey-continues", "is_last_episode": false, "season_id": 5, "season_slug": "season-1", "series_id": 1, "series_slug": "amazing-series", "thumbnail": "https://cdn.example.com/thumbnails/124.jpg", "title": "Episode 2: The Journey Continues" }, "next_recommended_content": { "content_id": 0, "content_slug": "content_slug", "content_type": "content_type", "season_id": 0, "season_slug": "season_slug", "series_id": 0, "series_slug": "series_slug" }, "series_slug": "series_slug" }
json
application/json

Amasian Parental PINpolicy