Skip to content

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

Open

Description

@szmyty

2026-10-12 — implementation merged; qualification deferred

PR #438 was merged with explicit maintainer authorization at 425d0ea3ae499ffe04b27c688d7ea84fa890b8dc. Tests, compilation/builds, schema validation, formatting/linting, native qualification, and CI remain deferred; merge does not establish acceptance or release readiness. This issue stays open for the recorded qualification work. Implementation work now moves to existing issue #429; no new feature scope is added by this status update.


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.

Audit-to-roadmap reconciliation — 2026-10-21

Audit: https://github.com/egohygiene/renderflow/blob/audit/flow-suite-20261021T025401Z/audits/flow-suite-20261021T025401Z.md · Complete roadmap: #367

Static embedded subtitles/timed-text authored; speech recognition remains separate.

Bounded preparation: Review timed-text loss/codec/provider-absence cases and source invariance.

Remaining acceptance (common qualification deferral; no dependency star): Deferred native extraction/conversion/fixture/schema qualification; PR #455 transcript Text edge is not main.

The maintainer's implementation-sprint qualification deferral remains in force. This audit ran no Renderflow tests, compiler/build/Cargo resolution, product lint/format/schema qualification, native/CLI/provider/visual execution, installers or new CI. Reading existing exact-source provider records is not a qualification rerun. Source implementation and authored tests are not passing-test, native-fidelity, release or downstream-consumer evidence.

This is an additive planning note. The full original issue, acceptance criteria, scope, parent references and historical checkpoints remain authoritative and unchanged. No acceptance box or issue is closed by this audit. Recommended ledger parent: #421.

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