Skip to content

Releases: antlis/UnbloatedTube

UnbloatedTube 0.43.3

Choose a tag to compare

@github-actions github-actions released this 14 Oct 22:25

Added

  • Sign in again in Settings → Account, next to Try again when the login has failed: it drops
    the app's own copies of the login and opens YouTube's sign-in page in the browser the login is
    read from (the system's default when that can't be told, such as a Firefox profile by path).
    Sign in there, then press Try again. A hint under the buttons says how to clear a browser's
    youtube.com and google.com cookies when signing in keeps failing; the app can't clear a
    browser's cookies itself.

UnbloatedTube 0.43.2

Choose a tag to compare

@github-actions github-actions released this 14 Oct 20:04

Fixed

  • A login YouTube no longer accepts is now recognised and explained. When the cookies the app
    reads from your browser have been rotated or signed out, YouTube still answers, as for a
    signed-out visitor: lists came back empty (so subscriptions, playlists or history seemed to
    vanish) and Like, Save and the like failed with a bare "YouTube refused (401)". Now those
    requests fail with "YouTube no longer accepts your saved login. Open youtube.com in your browser
    (log in again if it asks), then press Try again in Settings → Account", the Settings page shows
    the failed step, and yt-dlp's "cookies are no longer
    valid" gets the same message. Public pages (videos, channels, search) are unaffected.
  • A running app tries what restarting did. The cookies were read once at start and kept for
    the whole run, so once YouTube rotated them the lists and Like kept using dead ones until you
    restarted. When YouTube now refuses the login, the app re-reads the browser's cookies itself,
    once, for the lists and the actions alike (before, only cookies kept from an earlier start
    were re-read, and Like refreshed only its own copy).

UnbloatedTube 0.43.1

Choose a tag to compare

@github-actions github-actions released this 14 Oct 19:16

Fixed

  • Next (the key, the player's button), autoplay and the lookup ahead of the next video
    play what they did before 0.43.0 again: Up next first, then the next video of the list the
    video came from. 0.43.0's refactor had changed that to the back / forward history, so Next did
    nothing in a list.

Changed

  • Code structure, no behaviour change: main.rs (9000 lines) is split into app/ (the state
    and one file per feature, app/view/ for the drawing), ui/ (theme, tables, widgets), backend/
    (no GPUI) and platform/, which now holds all the OS-specific code (sockets, process control,
    private files and locks, opening links, X11, MPRIS). libc, x11rb and zbus are
    target-gated in Cargo.toml. This replaces 0.43.0's partial split, which left duplicate copies
    of the UI helpers behind.

UnbloatedTube 0.43.0

Choose a tag to compare

@github-actions github-actions released this 14 Oct 10:15

Changed

  • Code refactoring: extracted UI components and navigation logic into separate modules
    • src/ui/components.rs: Caret, edit_text, clear_failed, looks_like_login_error, session_hint, tab_button, live_badge, chip
    • src/ui/render.rs: skeleton_thumb, skeleton_line, skeleton_group, spinner (fixed animation)
    • src/ui/hints.rs: HintReg, hint_label_list, hint_labels, OnClickHinted trait
    • src/nav.rs: next_video, nav_neighbor, nav_push, resume_pos, prefetch_next, play_next, enqueue_all, enqueue, dequeue

Fixed

  • Text selection was broken after the initial drag: releasing the mouse button didn't stop
    the selection from growing on subsequent mouse moves. The root on_mouse_down handler
    consumed the text_press flag meant to track whether a drag was in progress.
  • Videos with stale stream URLs in the prefetch cache (403 Forbidden) now automatically
    clear the cache and retry. Previously they showed 0:00 duration and wouldn't play.

Changed

  • Prefetch TTL reduced from 1 hour to 20 minutes, avoiding most 403s from expired
    stream URLs.
  • mpv error handling detects HTTP 403 (and other errors) from stale cached URLs and
    automatically clears the cache and retries, without waiting for a stall.

UnbloatedTube 0.42.0

Choose a tag to compare

@antlis antlis released this 14 Oct 07:21

0.42.0 - 2026-10-14

Added

  • Per-video quality: pick a quality for a video and it's remembered across restarts
    (Settings → Quality or right-click video → Quality).

Fixed

  • Text selection was broken after the initial drag: releasing the mouse button didn't stop
    the selection from growing on subsequent mouse moves. The root on_mouse_down handler
    consumed the text_press flag meant to track whether a drag was in progress.
  • Videos with stale stream URLs in the prefetch cache (403 Forbidden) now automatically
    clear the cache and retry. Previously they showed 0:00 duration and wouldn't play.

Changed

  • Prefetch TTL reduced from 1 hour to 20 minutes, avoiding most 403s from expired
    stream URLs.
  • mpv error handling detects HTTP 403 (and other errors) from stale cached URLs and
    automatically clears the cache and retries, without waiting for a stall.

UnbloatedTube 0.41.1

Choose a tag to compare

@github-actions github-actions released this 13 Oct 21:12
Three improvements:

1. Prefetch TTL: 1h → 20min (avoids most 403s from expired stream URLs)
2. Per-video quality persistence: saved in settings.json, applied on play
3. mpv error handling: detects HTTP 403 in mpv's error property, auto-retries

CHANGELOG updated under Unreleased.

UnbloatedTube 0.41.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 15:24
0d74573

Added

  • Settings → Network, for where YouTube is blocked or slowed down:

    • Bypass slowdown: one switch, nothing to install. The first packet of each connection
      goes out split, so filters that slow YouTube down by recognising it in the traffic (as in
      Russia) let it through at full speed. Three methods, as providers differ; TLS split, the
      default, is the one that got through on a Russian provider in testing. Connections try IPv4
      first (IPv6 to YouTube goes nowhere on some networks).
    • Proxy: everything through Tor, ByeDPI, a V2Ray/Xray/VPN client's local port or any
      SOCKS5/HTTP proxy, with presets for Tor and ByeDPI.
    • Test connection checks that YouTube answers and how fast, or says what failed, within 12 s.

    Lists, thumbnails, yt-dlp and the video stream all follow it, over OpenSSL (on a Russian
    network, filters stopped mpv's and the app's other TLS even when split); cast receivers on your
    network stay direct.

UnbloatedTube 0.40.1

Choose a tag to compare

@github-actions github-actions released this 10 Oct 13:27
79935f5

Fixed

  • Subtitles YouTube refuses with HTTP 429 (it limits caption requests, often only for a moment)
    are asked for once more a few seconds later, which usually gets them. If that fails too, the
    message says YouTube is limiting caption requests and to try again in a minute, instead of
    "signing in helps", which was wrong when you were signed in (still said when you're not).

UnbloatedTube 0.40.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 13:24
2caadec

Added

  • Play in separate window (right click on a video): plays it in an mpv window of its own,
    from where you left it, while the app's player keeps going. mpv's own controls; the same
    quality, login and SponsorBlock settings; it closes with the app.

UnbloatedTube 0.39.1

Choose a tag to compare

@github-actions github-actions released this 10 Oct 13:19
38438ba

Fixed

  • Shorts from your YouTube history had no channel: playing one now looks it up (from the
    same request as the like and subscribe buttons), so the channel button shows under it, and its
    row in History names the channel from then on.