288d30ad8b00b3760a1640c595ec0c4c2df9efa1
- Config saves are atomic (temp file + fsync + os.replace); a crash or power loss mid-write no longer truncates the file, which previously caused a silent reset to defaults on next launch. - Stored config is merged over a deep copy of the defaults: keys added in newer versions resolve properly instead of returning None, and the nested cached_versions dict is no longer shared with (and mutated on) the class-level default dict. - History SQLite connection enables WAL and a 5s busy timeout so the download thread can record entries while the history dialog reads without "database is locked" errors. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
SageTube
A watch-first YouTube client for the desktop — search, browse channels and playlists, follow subscriptions, and stream videos in an embedded mpv player, with full yt-dlp download capability inherited from YTSage.
SageTube is a fork of YTSage by oop7 (MIT). The original YTSage documentation is preserved at docs/UPSTREAM_README.md.
Status
Under active development. See the upstream README for the downloader feature set, which remains fully functional.
License
MIT — see LICENSE.