Homer 2420091a4e Check for SageTube updates, not YTSage's
The update check asked PyPI for the `ytsage` package's version, asked GitHub
for oop7/YTSage's release notes, and pointed the download button at upstream's
releases. None of that describes this program. Being reminded to install
YTSage was the visible symptom; the cause was that the check had never been
repointed when the fork was made.

It now reads SageTube's own releases from git.houmeres.sk. Gitea's release API
is shaped like GitHub's, so the dialog and the caller are unchanged -- the
class keeps its name and signal signature, and only its body moved out to
core/ytsage_app_update.py, which is fork-owned and will not conflict on the
next merge from upstream.

Upstream's inherited tags end in `b` (v5.3.0b and earlier). packaging reads
that as a beta marker, so they sort below v5.4.0 and a stable instance cannot
be handed one. Tag parsing is defensive anyway: one unparseable tag must not
take the whole check down with it.

Also: the check is rate-limited to once a day rather than every start, the
dialog gained a "Skip this version" that survives a restart, the thread is now
joined on close, and the About dialog says SageTube. The three binary updaters
-- yt-dlp, Deno, ffmpeg -- legitimately track their own upstreams and are
deliberately untouched; ytsage_app_update's docstring says so, because "update"
is an overloaded word in this codebase.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-09 00:36:14 +02:00

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.

S
Description
No description provided
Readme MIT 12 MiB
5.5.2 Latest
2026-08-08 23:38:07 +00:00
Languages
Python 94.2%
Inno Setup 5.8%