Skip to content

List, create, update, and delete MediaBlaster content with clean JSON field names.

Content API and Fields

The content API manages Movies, Videos, Episodes, and Series using normalized JSON. Internal storage still uses rovidx_smarttv_* and rovidx_smart_tv_* meta keys; the REST layer maps those automatically.

Endpoints

Unified routes

MethodRouteDescription
GET/contentPaginated collection
POST/contentCreate (requires type in body)
GET/content/{id}Single item
PATCH/content/{id}Partial update
DELETE/content/{id}Trash (or permanent with ?force=true)

Type-specific aliases

Same behavior as /content, with type fixed by the URL:

TypeList/createItem
moviesGET, POST /moviesGET, PATCH, DELETE /movies/{id}
videos/videos/videos/{id}
episodes/episodes/episodes/{id}
series/series/series/{id}

POST /movies creates a movie even if type is omitted from the JSON body.

If {id} exists but belongs to another post type, the API returns 404 mediablaster_not_found.

List collection — query parameters

GET /content (or GET /movies, etc.)

ParameterDescription
typeFilter: movies, videos, episodes, series
statuspublish, draft, pending, private, or any (editors only)
searchWordPress search (s)
genreFilter by genre meta
tagPost tag slug or name
series_idEpisodes in a series playlist (rovidx_smarttv_playlist)
pagePage number (default 1)
per_pageItems per page (default 20, max 100)
orderbydate, modified, title, menu_order, rand
orderASC or DESC
include_lockedtrue to include items hidden with “hide completely” access

Public default: only publish status. Logged-in users with edit_posts may request drafts or status=any.

Collection response

{
  "items": [ { "...content object..." } ],
  "pagination": {
    "page": 1,
    "per_page": 20,
    "total": 124,
    "total_pages": 7
  }
}

Create and update

Defaults

  • New content defaults to draft.
  • Sending "status": "publish" requires publish_posts (or equivalent); otherwise 403.
  • PATCH only updates fields present in the body; omitted nested keys are not cleared.

Minimal create example

POST /wp-json/mediablaster/v3/movies

{
  "title": "REST Test Movie",
  "description": "Long description.",
  "excerpt": "Short description.",
  "media": {
    "url": "https://cdn.example.com/video.m3u8",
    "duration": 3600,
    "format": "HLS",
    "quality": "FHD"
  },
  "taxonomy": {
    "genres": ["documentary"],
    "rating": "PG",
    "tags": ["History", "Featured"]
  },
  "vimeo": {
    "source_url": "https://vimeo.com/123456789"
  }
}

Partial update example

PATCH /wp-json/mediablaster/v3/movies/123

{
  "title": "Updated Title",
  "media": {
    "quality": "UHD"
  }
}

Only title and media.quality change; existing URL and duration remain.

Delete

DELETE /content/{id}

  • Default: move to trash (trashed: true).
  • DELETE /content/{id}?force=true — permanent delete (requires elevated delete capability).

Response includes deleted, trashed, and previous (serialized snapshot).

Content object (response shape)

FieldTypeDescription
idintegerWordPress post ID
typestringPost type slug
statusstringdraft, publish, pending, private
slugstringPost name
titlestringPost title
descriptionstringpost_content
excerptstringpost_excerpt
created_atstringISO 8601 (GMT)
updated_atstringISO 8601 (GMT)
thumbnailobject{ "id", "url" }
mediaobjectSee below
taxonomyobjecttags, genres, rating
seriesobjectSeries linkage (episodes) or series meta
captionsarrayCaption tracks
trickplayarrayTrickplay/BIF files
adsobjectAd breaks
availabilityobjectStart/end dates
accessobjectSubscription lock state
vimeoobjectsource_url
linksobjectself, edit (if allowed)

media

FieldAllowed valuesNotes
urlURIPlayback URL; null if user lacks access
durationinteger (seconds)Accepts hh:mm:ss on write
formatMP4, MOV, M4V, HLS, SMOOTH, DASH
qualitySD, HD, FHD, UHD

taxonomy

FieldDescription
tagsPost tag names
genresGenre keys (multicheck values)
ratingParental rating string

series (episodes)

FieldDescription
series_idParent series post ID (derived from playlist membership)
season_numberSeason number
episode_numberEpisode number

series (series post type)

Additional fields on type: series responses: type, release_date, playlist, thumbnail, thumbnail_id, genres.

captions[] response fields

FieldDescription
urlCaption file URL
languageLanguage code
typee.g. CLOSED_CAPTION, SUBTITLE

trickplay[] response fields

FieldDescription
urlBIF or trickplay file URL
qualityQuality label

ads response fields

FieldDescription
ad_breaksArray of break positions (seconds)
custom_midroll_timerCustom midroll offset or null

availability response fields

FieldDescription
start_dateAvailability start or null
end_dateAvailability end or null

access

Present when subscriptions are enabled:

FieldDescription
is_lockedPremium/locked for current user
user_can_accessWhether playback URL may be shown
required_tierTier object or null
required_access_groupAccess group object or null

vimeo response fields

FieldDescription
source_urlVimeo page URL (rovidx_smart_tv_vm_pro_url)

links

FieldDescription
selfREST URL for this item
editwp-admin edit link (only if user can edit)

Request body field reference

Use these keys in POST and PATCH bodies (not raw meta names).

Top-level

API fieldRequiredNotes
typeOn POST /contentOne of four content types
statusNoDefault draft
titleOn create
descriptionNoHTML allowed (sanitized)
excerptNo
slugNoPost name

media object

API fieldInternal meta key
urlrovidx_smarttv_URL
durationrovidx_smarttv_Duration
formatrovidx_smarttv_format
qualityrovidx_smarttv_quality

taxonomy object

API fieldStorage
genresrovidx_smarttv_genres
ratingrovidx_smarttv_rating
tagsWordPress post tags

series object (episodes)

API fieldInternal meta key
season_numberrovidx_smarttv_se_no
episode_numberrovidx_smarttv_ep_no

series object (series CPT)

API fieldInternal meta key
typerovidx_smarttv_series_type
release_daterovidx_smarttv_series_release_date
playlistrovidx_smarttv_playlist (array of post IDs)
thumbnailrovidx_smarttv_series_thumb
thumbnail_idrovidx_smarttv_series_thumb_id
genresrovidx_smarttv_series_genres

captions[] internal keys

API fieldInternal key
urlrovidx_smarttv_cc_uri
languagerovidx_smarttv_cc_lang
typerovidx_smarttv_cc_type

Stored as CMB2 group rovidx_smarttv_cc.

trickplay[] internal keys

API fieldInternal key
urlrovidx_smarttv_bif_uri
qualityrovidx_smarttv_bif_def

Stored as group rovidx_smarttv_bif.

ads internal keys

API fieldInternal meta key
ad_breaksrovidx_smarttv_ad_breaks
custom_midroll_timerrovidx_smarttv_custom_midroll_timer

availability internal keys

API fieldInternal meta key
start_daterovidx_smarttv_start_date
end_daterovidx_smarttv_end_date

vimeo internal keys

API fieldInternal meta key
source_urlrovidx_smart_tv_vm_pro_url

thumbnail

API fieldAction
idSets featured image attachment ID

Was this helpful?