Raw/derived transcript tooling + private/unlisted transcription policy#17
Merged
Conversation
Policy: private/unlisted content gets no transcription. Video ids registered in the journal's private_videos.json are dropped from the worklist, items left with no public video are reported as excluded (not pending), and transcription_status buckets them separately from genuinely missing transcripts. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UoVcFP7bBu92mK6RqM5nPG
apply_speaker_names.py rewritten: instead of substituting labels in-place, it derives transcript.txt from the immutable raw transcript.json + parts[].speakers (idempotent, remappable; caption text salvaged to captions/youtube_captions.txt before replacement; legacy AssemblyAI-shaped jsons skipped). Byte-compatible with TranscriptionService.output_text. The old-API test file is replaced by tests for the new rendering/salvage behavior. recover_whisperx.py: audit/extraction tool for pre-reorg WhisperX outputs in journal git history (dry-run default) — verification showed the current tree already carries the raw jsons, so its apply path is a backstop. JOURNAL_SCHEMA.md: document the raw-vs-derived transcript design and provenance-by-file-shape (mirrored to the journal's SCHEMA.md). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UoVcFP7bBu92mK6RqM5nPG
hollygrimm
added a commit
that referenced
this pull request
Jul 18, 2026
Meant to land with #17: the file tests apply_to_item, removed in the apply_speaker_names.py rewrite, so its import breaks collection. Equivalent coverage lives in test_apply_speaker_names.py. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UoVcFP7bBu92mK6RqM5nPG
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Tooling side of ActiveInferenceJournal#15 (raw vs derived transcript design), plus the private/unlisted policy.
Changes
apply_speaker_names.pyrewritten — derivestranscript.txtfrom the immutable rawtranscript.json+parts[].speakersinstead of substituting labels in-place:SPEAKER_NNand are reportedcaptions/youtube_captions.txtbefore replacementTranscriptionService.output_text(verified against pre-reorg.simple.txtoutputs)recover_whisperx.py(new) — audits/extracts pre-reorg WhisperX outputs from journal git history (commit9da9266, 590 whole-video pairs). Its audit showed the current journal tree already carries the raw jsons, so extraction is a backstop; kept for verification.Private/unlisted policy —
transcribe_worklist.py/transcription_status.pynever queue private/unlisted content: ids inprivate_videos.jsonare dropped, items with no public video report asexcluded, not pending.JOURNAL_SCHEMA.md— documents the raw-vs-derived design and provenance-by-file-shape (mirrored to the journal'sSCHEMA.mdin the journal PR).Tests
24 script tests pass (new rendering/salvage/immutability coverage replaces the old in-place-API test file). Full suite: 466 passed; the 3 RAG
real extractorintegration failures are pre-existing (verified by stashing).🤖 Generated with Claude Code
https://claude.ai/code/session_01UoVcFP7bBu92mK6RqM5nPG