Download, organize, transcribe, search, compress, and browse entire channels.
A tour of the UI is on the wiki.
- Channel subscriptions — add channels to a sub list with per-channel settings
- Selective archiving — set a start date, grab the full history, or only pull new uploads
- Auto-sync — set a recurring interval (30 min, 1 hr, on up to 24 hr) to automatically check all subbed channels for new videos
- Duration filters — exclude Shorts, livestreams, or long-form videos by setting min/max duration limits
- Resolution control — per-channel resolution settings (up to 2160p / 4K, or "best")
- Redownload — change a channel's resolution and retroactively redownload all videos at the new setting
- Resumable downloads — ID caching, so interrupted syncs pick back up without re-scanning
- Cookie support — uses Firefox cookies for age-restricted or member content, and helps avoid IP rate-limiting
- Folder sorting — sort videos into
\YYYY\or\YYYY\MM\folders, configurable per channel - Reorganize tool — re-sort existing downloads into a new org structure at any time
- Date Fix — retroactively set file dates to the original YouTube upload date (fuzzy title matching, useful for migrating from other tools)
- Auto-captions first — pulls YouTube's built-in captions when available, with punctuation model cleanup
- Whisper GPU fallback — runs Whisper locally on GPU for videos without captions; model selectable per channel
- Auto-transcribe — per-channel toggle to automatically transcribe new videos after each sync
- Transcript output — clean
.txtfiles with an option to follow the channel's folder org or combine into a single file per channel - Hidden JSONL sidecars — per-word timestamps and video IDs stored alongside readable transcripts
- Searchable transcript database — full-text search across all transcribed channels
- Embedded video player — HTML5 video with a synced, scrolling transcript alongside
- Click-to-seek — click any word in the transcript to jump the video to that moment
- Word frequency analysis — frequency graphs (Year / Month / Week buckets) and word cloud visualizations
- All videos grid — sortable, lazy-loaded archive-wide video browser with title/channel filtering
- AV1 NVENC encoding — compress archived videos using AV1 hardware encoding (NVIDIA GPU)
- Quality presets — Generous, Average, and Below Average quality tiers with target bitrate-per-hour calculations
- HQ downscale — download at a higher resolution, then downscale for better quality at lower resolutions
- Five-tab layout — Download, Subs, Browse, Health, Settings
- Health tab — library maintenance and status in one place: Metadata, Index, and Tools dashboards and actions
- Settings — a single page of real preferences (General / Performance / Appearance sections)
- Simple / Verbose log modes — toggle between a readable sync view and full yt-dlp output
- Pause / resume — pause active downloads or transcriptions mid-session and resume without losing progress
- Processing task queue — transcription and compression jobs run in their own reorderable queue, separate from downloads
- System tray — sits in the tray with separate indicators for downloads and Processing tasks; auto-sync controllable from the tray menu
- Internet monitoring — automatically pauses on connection loss, resumes when connectivity is restored
- Drive monitoring — automatically pauses on drive failure, resumes when drive is restored
- Auto-update — checks for new releases on GitHub at startup
Built on yt-dlp + ffmpeg for downloading, OpenAI Whisper (faster-whisper) for GPU transcription, SQLite FTS5 for the transcript index, Chart.js for graphing, and a pywebview shell rendering an HTML/CSS/JS frontend.
- Architecture — process model, sync pipeline, design decisions
- Building the exe — PyInstaller workflow
- Contributing — project layout and how to find your bearings
- Changelog — release notes
- Project map — file-by-file index