Metadata
Content type definitions, ID rules, availability windows, and supported formats.
Overview
Roku's transform engine converts partner metadata into the format used by its ingest system. Use the element and field names agreed upon during onboarding, and keep them consistent across deliveries. Whatever names you use, the data in every field must meet the Roku Channel Ingest Specification.
- If you already use an XML format to deliver content to other platforms, you may be able to repurpose it for Roku delivery.
- You may provide a sample of your existing metadata format during onboarding for Roku to evaluate its validity for ingest.
- Regardless of which format is delivered, all required elements/fields must be provided in the metadata deliverable.
Related Documentation
These requirements apply to all metadata delivery formats. For individual fields and delivery instructions, see:
- MovieLabs: MEC and MMC delivery
- Roku XML: Film, TV, and Clip field references
- Roku Excel: Film, TV, and Clip field references
Content Type Definitions
Roku Channel supports three content types: tv, film, and clip. All content must be delivered as one of these three types, and titles must be delivered under the same content type in which the program was originally released.
TV
Content structured in a series > season > episode hierarchy must be delivered under the TV specification.
- Series: a collection of programs/episodes released under a common title with a consistent narrative, characters, or theme. In North America, each year of a series is called a season; a series can span several seasons.
- Season: a group of programs/episodes released in one year, attributed to one series.
- Episode: a single self-contained narrative or informational segment of a series. An episode belongs to exactly one season of exactly one series.
Film
Stand-alone programs that are not part of a series/season/episode hierarchy must be delivered under the Film specification. These include feature films, stand-alone TV specials, and short films.
Clip
Short-form, stand-alone or ancillary titles intended as a companion to a longer program (e.g., sporting events, movies, TV series) must be delivered under the Clip specification.
Clips appear differently from films on Roku Channel:
- Runtime and title appear directly on the content tile, so viewers can see them without opening the clip.
- Clips do not have a content details page. Unlike Film, a viewer cannot click into a Clip to reach a synopsis or additional information screen.
- A Clip's synopsis is instead accessible by pressing the * (asterisk/options) button on the Roku remote.
Minimum Required Metadata by Content Type
brief_synopsis applies at the title, episode, and series levels, including localized versions. Required for Linear OTT distribution. It has a 100-character limit.
Long synopses are always optional, including localized versions. Closed captions are strongly preferred for all content; partners determine whether they are required for a specific delivery. When a sidecar caption file is supplied, include the captions file_name reference. See Closed captions and subtitles for file requirements.
Film / Clip: Required Fields
providercontent_typeasset_idtitlerelease_dateruntimegenresratingrating_systemshort_synopsisvideo file_namekey_art file_name
TV: Required Fields
Episode-level:
providercontent_typeasset_idepisode titleepisodeNumberepisode release_dateruntimeratingrating_systemepisode short_synopsisvideo file_nameepisode thumbnail file_name
Series-level:
series_idseries titleseries release_dateseries genresseries short_synopsisseries key_art file_name
Season-level:
season_idseasonNumber
TV requires metadata at three levels: series, season, and episode. Film and Clip require metadata for the individual title.
ID Requirements and Expectations
- Partners generate and supply all IDs. Roku does not assign them.
- Every clip and movie must be delivered with an
asset_id. - Every episode must be delivered with three IDs:
asset_id,series_id, andseason_id. - IDs should be meaningful to your team, since they are how Roku positively identifies a title in its system.
- The
asset_idin the ingest metadata must match the Title ID provided in the Avails document. This links the content across Roku's pipeline, from Avails submission through publication. - Any update to a title already ingested into Roku's system must be accompanied by its
asset_id.
All ID types share these rules:
- Maximum 50 characters
- Alphanumeric characters, hyphens, and underscores only
- Spaces or special characters in any ID will fail ingestion
| ID | Identifies | Uniqueness / Consistency Rule | Required For |
|---|---|---|---|
asset_id | A single clip, episode, or movie | Immutable, unique per asset | All content |
series_id | A series | Immutable; must be consistent across all episodes of that series; cannot equal the season or episode ID | TV content |
season_id | A season of a series | Immutable; must be consistent across all episodes within that season; cannot equal the series or episode ID | TV content |
Availability Sheets / Planners
- At onboarding, Roku requests an initial launch list of titles/episodes/clips currently available for licensing, plus a schedule for when content will be refreshed.
- For ongoing delivery, Roku requests:
- Avails at least 60 days prior to the licensing window start
- Content delivery at least 30 days before curation onto the channel
This lead time allows for processing and QC before the content goes live. Delivery capacity is coordinated after signing.
| Document | Link |
|---|---|
| Roku Avail Spec | View specification |
| Roku Avail Template | Download template |
Availability Windows
By default, content becomes available at 12:00 AM (midnight) and expires at 11:59:59 PM in each user's local time zone. If a title must go live or expire at a specific time, that time must be included in the license window start/end values in the ingest metadata.
Roku supports two time designations:
| Type | Behavior | Example |
|---|---|---|
| Relative | Content goes into window at the specified time in each user's own local time zone | A Saturday 9:00 PM premiere is available at 9:00 PM Eastern for Eastern-zone users, and separately at 9:00 PM Pacific for Pacific-zone users (i.e., three hours later in real time) |
| Absolute | Content goes into window at a single fixed moment worldwide | A new episode set for 9:00 PM Eastern (absolute) becomes available to Pacific users at 6:00 PM their local time, at the same instant |
Time Value Format
| Time Type | Format | Example |
|---|---|---|
| Relative | yyyy-mm-ddThh:mm:ss | 2019-11-01T21:00:00 |
| Absolute (UTC) | yyyy-mm-ddThh:mm:ssZ | 2019-11-02T01:00:00Z |
- Absolute times must be expressed in UTC. In the example above, 9:00 PM Eastern on November 1 is 1:00 AM UTC on November 2.
- If no time is provided, Roku assumes a relative start of
12:00:00 AMand a relative end of11:59:59 PM.
Special Characters
Roku uses CDATA sections to allow special characters (e.g., ! @ # $ % ^ & * ( ) { } | [ ] ; : ' " ? / < >, as well as foreign character sets) within certain node values in the ingest XML. Roku highly recommends wrapping such data in CDATA sections to ensure proper ingest.
CDATA applies to metadata field values, such as titles and synopses. File names follow the separate File Delivery Specification.
Only the following nodes support CDATA sections:
titlebrief_synopsislong_synopsisshort_synopsisdisplay_name
For nodes outside this list, the following characters must be escaped so Roku can read the XML:
| Character Name | Character | Escaped Form |
|---|---|---|
| Ampersand | & | & |
| Less-than | < | < |
| Greater-than | > | > |
| Quotes | " | " |
| Apostrophe | ' | ' |
Special characters must not be used in file names or file name references within XML or Excel metadata. See the File Naming Guidelines for the complete forbidden-character list for file names specifically.
Supported Metadata Formats
- XML is the preferred format.
- One complete XML file must be delivered for each movie, clip, or TV episode video file delivered.
- Metadata must be delivered using the method approved during onboarding, Aspera or S3, to the same folder location as its associated video, captions, and artwork files.
| Format | Extension | Encoding | Package Version(s) |
|---|---|---|---|
| XML (preferred) | .xml | UTF-8 | clip1.0, film5.0, tv1.0 (additional XML schemas supported case-by-case) |
| Excel | .xlsx | Not applicable | See Roku Excel Metadata Guidelines and templates |
Music Cue Sheets
Music cue sheets for content distributed on Roku Channel may be submitted through the Music cue sheet submission form.
Do not submit music cue sheets with video package deliverables through Aspera. Cue sheets delivered with a video package are subject to deletion.
Glossary
| Term | Definition |
|---|---|
| Transform engine | Roku's internal system that normalizes differently-named metadata fields from partner formats into Roku's ingest schema. |
| CDATA section | An XML construct (<![CDATA[ ... ]]>) that tells a parser to treat enclosed content as literal text, allowing special characters without requiring them to be escaped. |
| Avail / Title ID | The identifier for a title as declared in the Avails (licensing/availability) document. It must match the asset_id used in ingest metadata to link the two records. |
| Relative time | An availability time interpreted in each viewer's own local time zone, so the same title goes live at different real-world moments across time zones. |
| Absolute time | An availability time fixed to a single real-world instant (expressed in UTC), so the title goes live simultaneously worldwide regardless of viewer time zone. |
Updated about 5 hours ago