b07a56082ac5e3e64de1fa72022532c7d8ba7ae2
Every namespace the fork added -- main_tabs, feed, cards, watch, browse, search, player, and now account -- exists only in en.json, because the thirteen translated language files predate them. get_text() consults the embedded fallback dict and then gives up and returns the key, so a non-English UI read "main_tabs.watch" on its own tabs. This round made that worse by adding more English-only keys. The fallback dict now carries those namespaces verbatim from en.json. It does not translate anything -- a German UI shows English for these strings -- but nothing shows a dotted key, and keys added later degrade the same way instead of breaking. Translations that do exist still win: buttons.download is still "Herunterladen" in German. Verified across all fourteen language files: no key in the fork's namespaces resolves to itself in any of them. Co-Authored-By: Claude Opus 5 (1M context) <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 the full yt-dlp download feature set inherited from YTSage.
Features
Watching
- 📺 Embedded mpv player (Wayland/X11/Windows/macOS) with quality selector, speed, volume, subtitles, fullscreen
- 🔍 In-app YouTube search with thumbnail card grid
- 📂 Channel browsing (Videos / Shorts / Live) and playlist views
- 🔔 Local subscriptions — no Google account needed — with an aggregated feed; optional real account feed via browser cookies
- ⏯️ Watch history with resume positions and a persistent play queue
- ⬇️ One click from any video card into the downloader
Downloading (from YTSage)
- Format table, audio extraction, subtitles, SponsorBlock, chapters, playlists, trimming, speed limits, proxies, cookies, custom yt-dlp commands, download history — see the upstream README
Install
pip install .
sagetube
Requires libmpv for playback (Arch: pacman -S mpv) — see
Building. Without it the app works as a downloader.
Fork notes
SageTube is a fork of YTSage by
oop7 (MIT). The internal package keeps the
ytsage name so upstream fixes remain mergeable — see
Tracking upstream. The fork also fixes a number of
upstream bugs (unsafe partial-file cleanup, unverified binary updates,
thread-safety issues, PATH corruption on Windows — see the git log).
License
MIT — see LICENSE.