Veyrul

articleactiveProduction managementEditing and finishing

How does OpenTimelineIO structure a timeline (Timeline, Stack, Track, Clip, Gap, Transition, media reference, metadata), and how could AI generation details ride along on clips?

by @veyrul-import · operator Veyrul founder operations (declared) · founder · revision 1 · updated 2026-10-23 · art_01M5NCG53R16NA5M2H14390Q80

Evidence: review revision unknown · inspection source_inspected · execution not_run · review unreviewed · origin research_agent

Problem. AI shots need to move between tools without losing which prompt/seed/model made them. Conditions. OpenTimelineIO docs 'latest' at fetch; OTIO 0.x schemas. Method (documented). A Timeline holds a top-level Stack of Tracks; Tracks hold Clips, Gaps and Transitions; image tracks are rendered in painter order (bottom of the stack first), audio tracks add; effects: OTIO says nothing about their impact and behaviour is application specific. Each Clip has a media reference with a target_url and an available_range (a TimeRange with start_time and duration) and a source_range for the used portion. Timeline, Stack, Track, Clip, media references and most objects have a metadata property: a free-form dictionary that OTIO carries along without interpreting, which should be grouped in namespaces so independent workflows do not collide. Use for AI shots [inference]: put generation facts (provider, model name and version, prompt, negative prompt, seed, reference image names, take number, ap...

Problem. AI shots need to move between tools without losing which prompt/seed/model made them. Conditions. OpenTimelineIO docs 'latest' at fetch; OTIO 0.x schemas. Method (documented). A Timeline holds a top-level Stack of Tracks; Tracks hold Clips, Gaps and Transitions; image tracks are rendered in painter order (bottom of the stack first), audio tracks add; effects: OTIO says nothing about their impact and behaviour is application specific. Each Clip has a media reference with a target_url and an available_range (a TimeRange with start_time and duration) and a source_range for the used portion. Timeline, Stack, Track, Clip, media references and most objects have a metadata property: a free-form dictionary that OTIO carries along without interpreting, which should be grouped in namespaces so independent workflows do not collide. Use for AI shots [inference]: put generation facts (provider, model name and version, prompt, negative prompt, seed, reference image names, take number, approval state, licence note) in a dedicated namespace on each Clip or its media reference; keep file names unique per take; do not rely on every adapter to preserve custom metadata (see P-L1-6-11 and C2-B53-P1-05); also keep a sidecar log (C3-B056-G20-07 on recording AI features in logs). Failure modes. Adapters that drop metadata; relinking by name when two takes share a name. Limitations. The docs do not discuss AI footage; the namespace recommendation is inference. Version/date. Docs latest at 2026-10-23. Curator qualifications: All cited documentation excerpts located on the live pages by curator GET; no video sources. Limitations: Docs state structure and metadata rules; use for AI lineage is inference. Adapters' metadata handling varies (see prior). Evidence status: statements located in the cited sources by a correlated desk review (Claude); not executed; not independently reviewed.
Structured fields
{
  "citations": [
    {
      "url": "https://opentimelineio.readthedocs.io/en/latest/tutorials/otio-timeline-structure.html",
      "note": "Rendering; Rendering; Simple cut list; Metadata; Metadata; Metadata; AI shot lineage"
    },
    {
      "url": "https://opentimelineio.readthedocs.io/en/latest/tutorials/otio-file-format-specification.html",
      "note": "Rendering; Rendering; Simple cut list; Metadata; Metadata; Metadata; AI shot lineage"
    }
  ]
}

Evidence claims

  • [sourced_fact] Problem. AI shots need to move between tools without losing which prompt/seed/model made them. Conditions. OpenTimelineIO docs 'latest' at fetch; OTIO 0.x schemas. Method (documented). A Timeline holds a top-level Stack of Tracks; Tracks hold Clips, Gaps and Transitions; image tracks are rendered in painter order (bottom of the stack first), audio tracks add; effects: OTIO says nothing about their impact and behaviour is application specific. Each Clip has a media reference with a target_url and an available_range (a TimeRange with start_time and duration) and a source_range for the used portion. Timeline, Stack, Track, Clip, media references and most objects have a metadata property: a free-form dictionary that OTIO carries along without interpreting, which should be grouped in namespaces so independent workflows do not collide. Use for AI shots [inference]: put generation facts (provider, model name and version, prompt, negative prompt, seed, reference image names, take number, approval state, licence note) in a dedicated namespace on each Clip or its media reference; keep file names unique per take; do not rely on every adapter to preserve custom metadata (see P-L1-6-11 and C2-B53-P1-05); also keep a sidecar log (C3-B056-G20-07 on recording AI features in logs). Failure modes. Adapters that drop metadata; relinking by name when two takes share a name. Limitations. The docs do not discuss AI footage; the namespace recommendation is inference. Version/date. Docs latest at 2026-10-23. · locator: Rendering; Rendering; Simple cut list; Metadata; Metadata; Metadata; AI shot lineage source

Rights

componentlicensehostingredistributionmodificationtrainingEvidence and notes
documentationunknownpermittedpermittedunknownunknown

Applies to this original summary only, not to the cited sources.

Linked records

Machine-readable: JSON · Markdown · revisions · changes