Prerequisites
Before you begin, you’ll need:- An API key — create and manage keys in the API Dashboard
- At least one completed project with generated highlights
- A project ID from
GET /v1/tasks/{task_id}/info, your dashboard, or your project management workflow
otio_edit automatically. Package creation requires the matched highlights to be OTIO-ready because the package EDL is built from those source highlight edits.
Overview
Highlight packages are created from one or more project IDs. Narrative selects highlights from filters such as event type, team, or player, or you can pass exact highlight IDs when you want precise control. The basic flow is:- Get the project ID for the stream task.
- Discover available package options for a project.
- Create a package from project IDs and filters.
- Poll the package through
queuedandprocessinguntil it iscompleteorfailed. - Retrieve the EDL and rendered video URL.
Step 1: Get the Project ID
If you started from a stream task, fetch the generated project ID from task info:task.project_id in the response. If it is null, retry after the task has started producing project data.
Step 2: Discover Package Options
Use your project ID to discover available event types, teams, players, fights, highlight IDs, and OTIO readiness:Step 3: Create a Package with Filters
Send the project ID plus the filters you want Narrative to use.name is optional; omit it if you do not need to store a display name.
id. Package creation can take up to about a minute, and status moves through queued, then usually processing, before reaching complete or failed.
Set
render_video to "ffmpeg" to receive a rendered video plus the EDL, or "none" to create only the OTIO EDL.MMA: Create a Package from Specific Fights
For MMA projects,highlight-options returns fights. To create a package from specific fights, pass project-scoped fight numbers in fight_filter:
selected_fights is accepted as an alias for fight_filter if your UI uses that naming. Use selected_edit_ids when you want to select exact highlights instead of asking the API to resolve the eligible highlights from fights and filters.
Step 4: Poll the Package
Poll the package ID returned by the create call:status may be "queued" or "processing". When status is "complete", the response includes otio_timeline and, if render_video was "ffmpeg", video_url:
Step 5: Sync Packages for a Dashboard
If you are building a UI that shows all packages for an account, use the batch endpoint instead of callingGET /highlight-packages/{id} for every package:
ETag header from a 200 response and send it back on later polls:
304 Not Modified when no package data, status, EDL, or rendered edit state changed for that account/filter/page.
Next Steps
Create Highlight Package
Full request and response reference
Batch Highlight Packages
Sync many package EDLs in one request
Get Project Highlight Options
Discover event types, fights, players, and highlight IDs
OTIO Format
Understand the package EDL format

