Skip to content

Sprint 4: AV transcripts (D7 authoring/rendering pipeline replication)

Status: ○ Planned — not started. Blocked on Sprint 3 (needs real migrated audio/video nodes to attach transcripts to) and on Spike 11 (still Pending). Phase: Roadmap Phase 3 (AV), the second of AV's two independently- scheduled sprints per ADR 018. Lead: Yuji Shinozaki (tentative — same as Sprint 3; not yet confirmed as a separate assignment). Mode: Individual. Relates to: ADR 018, Spike 11 (this sprint builds what Spike 11 recommends), Spike 4a (multilingual/Tibetan fidelity, already proven — reused here, not re-proven), Spike 2 (transcript search), Sprint 3 — this sprint depends on Sprint 3's content type and migrated nodes; Sprint 3 does NOT depend on this sprint.


Goal

Replicate D7's transcript authoring/rendering pipeline — Toolbox/SRT/XML source files → Java Saxon XSLT transform → multi-tier TCUs (Time-Coded Units) → a scroll-synced, searchable viewer — on D11, scoped to the Drupal-side system only. The React app's independent transcript viewer (a separate client-side engine reading its own mandala-av Solr core) is deliberately out of scope; see Spike 11's 2026-09-04 scope note for why and how to revisit that decision later.

This sprint exists as a separate, later unit specifically because field_transcript is a plain file field on the D7 audio/video node — Sprint 3 migrates it inertly, so this sprint's job is entirely the processing/display/search layer on top of nodes that already exist, not the node migration itself.

Scope boundary

In scope (Sprint 4) Out of scope
Spike 11's central open question: reproduce the XSLT authoring pipeline as a live workflow, or convert existing transcripts once at migration time? The React app's independent transcript viewer / mandala-av Solr core reconciliation (system 2) — deliberately deferred
D11 data model for TCUs (Paragraphs vs. a dedicated entity vs. sidecar WebVTT — Spike 11 to recommend) Spike 6 (API/URL reconciliation) — not assumed relevant unless system 2 comes back in scope
Display/sync mechanism (scroll-synced viewer matching the D7 pattern, or a WebVTT <track>) Kaltura-native captions/cue-points, unless Spike 11's fail-criteria table routes there
Multilingual/Tibetan fidelity for parallel-language transcripts (tx/mb/ge/ft tiers), reusing Spike 4a's proven approach A new Tibetan round-trip proof — Spike 4a already closed this generally
Search-within-transcript, indexed appropriately (whole-transcript vs. per-TCU) Segment-level search requiring a new Solr index shape beyond MVP, unless explicitly scoped in during Spike 11
Migration of existing D7 transcript content (all three source formats) into the chosen D11 model, with timecode fidelity preserved Live editor UI for TCU authoring/correction, unless Spike 11 decides the authoring pipeline must be reproduced live (see the first row)

Backlog

Task Depends on Status
T1 Run Spike 11 in full: confirm TCU shape/volume per input format against real data; resolve the authoring-pipeline-vs-migration-time-conversion question; evaluate D11 data-model and display/sync options; confirm multilingual fidelity; define a search strategy and migration path Sprint 3 (for a real node to prototype against); Spike 11's "live evidence" section (already recorded)
T2 Build the chosen D11 transcript data model on the AV content type T1, Sprint 3 AV2/AV3
T3 Build the display/sync mechanism (field formatter + JS, or WebVTT <track>) T2
T4 Wire search indexing (Solr/kmassets integration, or a dedicated index if Spike 11 finds the D7 shape requires one) T2
T5 Migrate existing D7 transcript content (all three formats) into the chosen D11 model; replace Sprint 3's inert field_transcript placeholder T2–T4, Sprint 3 AV4
T6 If Spike 11 decides live multi-format authoring must be reproduced: build an editor UI equivalent. Otherwise, record the explicit decision that transcripts become migration-only content in D11 T1

Acceptance criteria

  • [ ] Spike 11's own pass criteria are all met (documented D7 mechanism, a chosen D11 mechanism with rationale, a working prototype, multilingual confirmation, a defined search strategy, a defined migration strategy)
  • [ ] Existing D7 transcripts migrate with timecode fidelity preserved, spot-checked against real source files from each of the three input formats (Toolbox, SRT, XML)
  • [ ] Multilingual/Tibetan parallel-tier transcripts round-trip correctly (verified against Spike 4a's approach, not re-derived)
  • [ ] The transcript viewer renders and stays in sync with Kaltura playback on a real migrated AV node from Sprint 3
  • [ ] Search-within-transcript works and deep-links to the correct timecode
  • [ ] A decision is recorded (not left implicit) on whether live multi-format transcript authoring is reproduced in D11, or transcripts are migration-only content going forward

References

See the Relates to line above. This sprint closes Phase 3's transcript half of ADR 018; Sprint 3 is the AV-core half this sprint depends on.