v1.9.4
A broad release: community playlist and context-menu features, a batch of crash fixes across macOS, Windows, and Nix, and Discord Rich Presence working again.
New features
- Create playlist with metadata — the "New Playlist" flow now asks for name, description, and privacy (Private / Public / Unlisted) in a single modal, instead of defaulting to private with no description. New
CreatePlaylistPopupreplaces the minimalInputPopup. Thanks
@Villoh (#79). - Edit playlist metadata — right-click any user playlist in the sidebar and choose "Edit Playlist" to rename it, update its description, or change privacy. The sidebar and the open library header update in place without reloading tracks. Thanks

@Villoh (#79). - Enriched library playlist header — description, privacy status, and year now appear in the header alongside owner and track count. Thanks

@Villoh (#79). - Sidebar count sync on add — adding tracks via the "Add to Playlist" picker bumps the target playlist's track count in the sidebar immediately, and duplicate adds prompt before re-adding. Thanks

@Villoh (#79). - Auto-navigate on delete — deleting the currently open playlist from the sidebar returns you to the plain library view instead of leaving a ghost page. Thanks

@Villoh (#79). - Remove a track from a playlist — the track action menu now offers "Remove from Playlist" when viewing one of your playlists, removing the track in place. Thanks

@Villoh (#79). - Entity action consolidation — context menu actions (Play All, Shuffle Play, Add to Queue, Start Radio, Go to Artist, Subscribe) now work consistently for albums, playlists, and artists across all dispatch sites: sidebar, search results, track table column right-click, context page, library page, and browse page. "Shuffle Play" pre-shuffles for a one-time random order without enabling ongoing shuffle. "Play All" / "Shuffle Play" from sidebar and search start playback immediately and jump to the queue. Thanks

@wgordon17 (#81). - Column-aware context menus — right-clicking the Artist column opens artist actions (Go to Artist, Play Top Songs, Start Radio, Subscribe); the Album column opens album actions (Play All, Shuffle Play, Add to Queue, Go to Artist). Multi-artist tracks show a picker first. Thanks

@wgordon17 (#81). - Corporate SSL proxy support — set
ca_bundleunder[yt_dlp]to a custom CA certificate bundle so stream resolution works behind SSL-inspecting proxies (Zscaler, Netskope, etc.). A warning is logged if the path doesn't exist. Thanks
@glywil (#98). - Richer Discord Rich Presence — the now-playing status shows the track's album art (falling back to the app icon), displays as Listening to YouTube Music, and includes elapsed time. Thanks

@Wiibleyde (#103).
Fixes
- Discord Rich Presence connects again — the bundled application ID had been rejected by Discord, so presence never appeared. Registered a fresh app and made the ID configurable via
[discord] client_idfor anyone who wants to use their own. Reported by
@Villoh (#88). - Crash setting ANSI themes — selecting
ansi-dark/ansi-light(added in Textual 8.2.5) crashed the app because their colour tokens likeansi_cyanaren't parseable by Rich. They're now translated to the bare ANSI names. Thanks
@dmnmsc (#89). - mpv not found with Homebrew installs — on macOS and Linuxbrew, libmpv lives outside the default library search path, so a non-brew Python (uv tool, pipx, distro) couldn't load it even though
mpvwas on PATH. ytm now searches the Homebrew prefixes, andytm doctorreports libmpv loadability on its own line (#90, #101, #104). - Crash on Windows with the
mprisextra —dbus-fastis Linux-only and raised an uncaught error at import; the extra is now marked Linux-only and the import is platform-gated, souv sync --all-extraselsewhere degrades gracefully instead of crashing at startup. Thanks
@Villoh (#106). - Spotify import builds on Nix again — the
spotifyscraperderivation no longer fails on a sandboxedpip installduring the build, so flake builds with thespotifyextra work again. Thanks
@peternaame-boop for both causing and fixing it (#93). - Nix flake: missing
packagingdependency — the update checker crashed on flake builds becausepackagingwasn't declared. Now included, with an import check so it can't regress. Thanks
@szx19970521 (#95, #105).
Infrastructure
- Faster Nix installs — the nixpkgs pin now points at a cached channel revision, so flake users download prebuilt dependencies instead of compiling them (notably Deno, pulled in by yt-dlp) from source.
Docs
- Install and troubleshooting docs now reference
dbus-fastinstead of the obsoletedbus-next(the code migrated in v1.9.3). Thanks
@aaguilar-hub (#99).