feat: automatically fill missing video transcripts during sync - #133
Merged
Merged
Conversation
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #133 +/- ##
==========================================
+ Coverage 48.78% 50.74% +1.96%
==========================================
Files 52 53 +1
Lines 5947 6010 +63
Branches 1777 1796 +19
==========================================
+ Hits 2901 3050 +149
+ Misses 3044 2958 -86
Partials 2 2
🚀 New features to boost your workflow:
|
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.
I make
offcourse sync <course-url>generate missing video transcripts by default, including videos downloaded by earlier runs. Repeating the same command fills in gaps and skips complete transcript files.--no-transcribeopts out, and--dry-rundoes not transcribe.I check the actual Markdown and JSON files even when SQLite marks a transcription complete. Missing Markdown is restored from valid JSON without speech recognition; missing or invalid JSON triggers transcription while preserving existing nonempty Markdown. Each sync retries unfinished videos once, regardless of historical attempt counts, and continues after individual video failures. Output files are written atomically.
I also discover existing videos for cached lessons, including numbered additional Josh Comeau videos, without re-extracting those lessons just for transcription. Fully downloaded Skool courses can fill in missing transcripts without opening a browser.
--forceexplicitly regenerates transcripts along with refreshing course content.Validation:
pnpm check: formatting, lint, type checking, all 679 tests, and build passed.syncCLI with real SQLite state and local files plus a simulated Cuttledoc executable: existing-download backfill, skipping completed transcripts, and restoring deleted Markdown all passed without remote course access.