• v5.5.0 b07a56082a

    5.5.0 Stable

    Homer released this 2026-08-08 23:22:39 +00:00 | 2 commits to main since this release

    SageTube 5.5.0

    A watch-first desktop YouTube client with an embedded mpv player.

    This release is mostly about things that were quietly wrong.

    It checked for the wrong program's updates. The version check asked PyPI
    about the ytsage package and GitHub about oop7/YTSage's releases, then
    offered upstream's downloads -- and compared them against a package version
    that had been left at the scaffolded 0.1.0 while the released tag said v5.4.0,
    so it fired on every start. It now reads this repository's releases from
    git.houmeres.sk, runs at most once a day, and has a "Skip this version".

    The player could take the application down with it. Qt destroys and
    recreates a widget's OpenGL context whenever it moves to another top-level
    window; libmpv allows one render context per handle, so the second creation
    failed, and the failure path dropped the last reference to a context libmpv
    still held a function pointer into. Fullscreen, tab switching and every dialog
    could trigger it. The render context is now torn down before it is recreated
    and freed before the GL context that owns it, fullscreen no longer reparents
    the video, and neither the tab fade nor the dialog blur screenshots an OpenGL
    surface any more.

    The YouTube account was three levels deep. Signing in with browser cookies
    lived behind Downloads -> Custom Options -> Login with Cookies, while the
    features needing it are other tabs; the method that opens it on the right tab
    had no caller at all. There is now an account button in the tab bar, and
    applying cookies no longer needs a restart to reach playback.

    The player ignored the keyboard and the mouse. Its key handler could never
    fire, because nothing in the player could hold focus. There is now a full set
    of mpv/YouTube-style bindings, click and double-click, wheel volume and seek, a
    context menu, previous/next/mute buttons and a buffering indicator.

    It looked unfinished, and much of that was literal. There was no icon
    system -- the transport buttons used the platform's dark monochrome glyphs on
    red, and the rest were emoji -- three widgets in the whole application had a
    tooltip, and the tab bar, combo boxes, sliders, lists, menus, splitters and
    tooltips were never styled at all.

    Also: the tab order is Feed, Search, Browse, Downloads, Watch, and the Feed
    refreshes when opened -- carefully, since that is one yt-dlp subprocess per
    subscribed channel. A non-English interface no longer shows raw translation
    keys. Configs merge deeply, so settings added in a new version stop being
    silently discarded.

    See CHANGELOG.md for the full list.
    -----BEGIN SSH SIGNATURE-----
    U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgzKdqMXKfj8DtmdSWGF3dgqaPwy
    gjckxXPr00Hj1Q7OgAAAADZ2l0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5
    AAAAQMOwzzxwjKx8MbQGqPe2PqFfnt+82/I87So70Gb+OOjfAOwgmPU68J2013Z72pZGb6
    X7BltxYxGx/nVN3aoUbg4=
    -----END SSH SIGNATURE-----

    Downloads