Skip to main content
POST
Create Recap

Overview

Create a recap that summarizes a single game (project) by selecting highlights to fit a target duration. Narrative selects which clips to include based on event importance and editorial fit. Every matched highlight must be OTIO-ready because the public contract is OTIO EDL-first. Current highlights generate otio_edit automatically. Set render_video to "ffmpeg" (default) to receive a rendered concatenated video plus the EDL, or "none" to receive only the merged OTIO timeline EDL without rendering. Highlight selection runs asynchronously after creation: if no highlights match, or a matched highlight is missing otio_edit, the recap transitions to status: "failed" with a failure_reason.

Request

Request Body

Selecting Specific Fights

For a single-fight recap, fetch project highlight options, select the desired entry in fights, and send its nonempty highlight_ids list as selected_edit_ids. For multiple fights, combine their IDs and remove duplicates. See the single-fight recap example. fight_filter and selected_fights belong to the highlight-package API and are ignored by this endpoint. Setting name to a fighter pairing does not restrict the recap to that fight. Fight selection must be expressed through selected_edit_ids.

Recap Options

The recap_options object accepts free-form editorial instructions and a duration mode, alongside sport-specific style knobs: When duration_mode is "range", Narrative selection lands the total recap duration inside [target_duration_min_seconds, target_duration_max_seconds] instead of within ±10% of a single target:

Response

Response Fields

Polling for Results

After creation, poll GET /recaps/{id} until status is "complete" or "failed".

EDL Contract

The recap otio_timeline is a merged OTIO Timeline.1 composed from selected highlights’ stored otio_edit payloads. Use Get Project Highlight Options to inspect readiness. Creation stores an OTIO EDL in otio_timeline; the API does not synthesize recap EDLs from editor-project JSON.

Errors

Highlight selection runs asynchronously after the recap is created. If no highlights match the given filters, or a matched highlight is missing otio_edit, the recap transitions to status: "failed" with a failure_reason — retrieve it via Get Recap.

American Football

American-football recaps use the sport-specific selection profile and preserve the complete worker-tagged live-play original_moment for every selected highlight. Replay/reaction footage outside that segment is excluded.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
project_id
integer
required
target_duration_seconds
integer
required
Required range: 0 <= x <= 3600
name
string | null
exclude_event_types
string[] | null
selected_edit_ids
string[] | null
recap_mode
string
default:custom
fight_ceremony_config
FightCeremonyConfig · object[] | null
render_video
enum<string>
default:ffmpeg
Available options:
ffmpeg,
none
sport
string | null
recap_options
RecapOptions · object | null

Response

Success

id
integer
required
status
string
default:queued
task_id
string | null