Repository navigation
Per-show longest ad break, false-start bumpers, ads missing from the feed's transcript - #24
Merged
Merged
Conversation
A bumper-in played before a short notice opened a break that ran on to the next bumper-out, cutting the episode between them. A break never holds a second bumper-in, so one now starts the break again; and the longest gap between a bumper-in and bumper-out is a podcast setting (5 minutes by default, down from a fixed 10), with --max-break for the CLI. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01KeJQXPPUL3Cgbt5ESv2qyM
…came first A sting played before a notice opened a break that ended at the closing half of a back-to-back sting pair going into the real break. With no known ads since a break opened, such a bumper-out is skipped and the bumper-in after it starts the break over. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01KeJQXPPUL3Cgbt5ESv2qyM
The max_break column moves to migration 18, after main's timings table. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01KeJQXPPUL3Cgbt5ESv2qyM
Shows with inserted ads make their feed's transcript before the ads go in. For such a show (a checkbox in its settings, on by default when the transcriber is set and the feed has transcripts), each download is transcribed too and lined up with the feed's transcript word for word. Speech with nothing for it in the transcript, or audio running on much longer than the transcript between the same two words, is cut when it lasts 20 s or more, and shown on the timeline as Not in transcript. A break found from bumpers that is mostly what the transcript has is dropped, once the transcript is known to leave ads out. The feed's transcript stays the one served; what was heard is saved as its word times, which intro and outro phrases now use too. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01KeJQXPPUL3Cgbt5ESv2qyM
…s for checked shows - Each Not in transcript stretch on the timeline has Don't cut this, saved with the episode's other changes. A kept stretch is stored as its span, and one found later that is mostly inside it stays kept. - Once a checked episode is transcribed, its captions are served in place of the feed's transcript, whose times run behind after each inserted ad. The feed's transcripts stay on the episode, unserved, to check against. - The checkbox shows only when the feed lists transcripts in its newest 20 items (under a millisecond to look), or the check was turned on. Co-Authored-By: Claude Opus 5.5 <[email protected]> Claude-Session: https://claude.ai/code/session_01KeJQXPPUL3Cgbt5ESv2qyM
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.
Fixes a bumper played before a short notice cutting everything up to the next break (BtB, "Part Two: Peter Attia and the Cult of Longevity": 26:59–38:16 cut where only 34:01–38:13 was a break), and adds a check that cuts what a feed's transcript leaves out.
Break detection
--max-breakfor the CLI.Missing from the transcript (
podblock/app/missing.py)Shows with inserted ads usually make their feed's transcript before the ads go in. For those shows, each download is transcribed too and lined up with the feed's transcript word for word.
Schema
podcasts.max_breakpodcasts.transcript_check,episodes.missing_cuts,episodes.missing_keptMain's timings table keeps step 17.
Testing
Generated by Claude Code