Skip to content

[Artifact Forest 6/9] Add timed-text formats and embedded subtitle extraction #427

Description

@szmyty

Parent: #421

Outcome

Make timed text a first-class static artifact family and extract/convert embedded subtitle streams through bounded local providers.

Initial formats

  • SRT
  • WebVTT
  • ASS/SSA
  • TTML
  • plain transcript text
  • structured timed-transcript JSON

Scope

  • Extend format/capability registry with missing timed-text formats.
  • Define renderflow.timed-transcript/v1 with stable cue IDs, start/end times, speaker when known, text, language, source stream, and provenance.
  • Add FFprobe-backed stream discovery as an explicit provider capability.
  • Add FFmpeg-backed extraction/conversion only for combinations proven by fixtures.
  • Distinguish embedded-subtitle extraction from speech recognition.
  • Preserve stream/language/codec identity and record lossy conversions.
  • Validate monotonic timing, overlap policy, encoding, empty cues, and malformed inputs.

Acceptance criteria

  • Video/container subtitle streams can be enumerated without decoding the entire media artifact.
  • At least SRT and WebVTT extraction/conversion paths are proven.
  • ASS/SSA/TTML are advertised only to the extent fixtures prove.
  • No subtitle stream is invented when none exists.
  • Cue/source provenance survives format conversion.
  • Unsupported subtitle codecs/providers produce typed diagnostics.
  • Static extraction remains Renderflow-owned; temporal editing/reconstruction remains Aniflow-owned.

Non-goals

Speech-to-text transcription; that is #428.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions