Skip to content

Commit 969ed0a

Browse files
committed
docs(archive): document asynchronous YouTube transcription workflow
1 parent 67c3708 commit 969ed0a

1 file changed

Lines changed: 25 additions & 0 deletions

File tree

backlog/docs/architecture/transcript-import.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,31 @@ id: doc-008
1313

1414
# Transcript Import
1515

16+
## Automated YouTube Transcription (Async)
17+
18+
For missing transcripts of videos hosted on YouTube, we use a local asynchronous pipeline powered by `zdots-ctx` and `whisper.cpp`.
19+
20+
1. **Enqueue Pending Videos:**
21+
Identify all pending `video_assets` with a YouTube ID and enqueue them to the local `zdots-ctx` worker.
22+
```bash
23+
./bin/batch_ztranscribe.rb
24+
```
25+
2. **Start the Background Worker:**
26+
Ensure the worker is running to process the queue asynchronously.
27+
```bash
28+
zdots-ctx worker --type transcription
29+
```
30+
3. **Stage Completed Transcripts:**
31+
As the worker finishes downloading and transcribing to `~/Downloads/transcripts/`, map them back to their canonical `video_asset_id` and stage them for ingestion.
32+
```bash
33+
./bin/stage_completed_transcripts.rb
34+
```
35+
4. **Ingest Staged Transcripts:**
36+
Use the standard pipeline to ingest the staged files into `_data/transcripts/`.
37+
```bash
38+
./bin/transcripts ingest --source-dir tmp/transcript-id-staging --min-confidence 0.9 --auto-commit
39+
```
40+
1641
## Canonical Model
1742

1843
- Transcript files live in `_data/transcripts/*.yml`.

0 commit comments

Comments
 (0)