Releases: Stmol/yandex-music-downloader
Releases · Stmol/yandex-music-downloader
Release list
v1.13.2
- make batch interruption two-stage: the first Ctrl+C or SIGTERM stops scheduling new tracks and lets active downloads finish, while the second signal force-cancels active HTTP requests
- keep distinct tracks with colliding sanitized names by adding deterministic
[track-id]filename suffixes instead of skipping them as duplicates - move the CLI entry point to
cmd/yamdland share flag parsing, client setup, and source URL resolution between the TUI andyamdl download - improve batch event typing, display labels, validation, and regression coverage, and build all release archives from the new command package
v1.13.1
- append each batch-download status as an immutable
[status] Artist — Trackline so previous events stay visible and are never overwritten - stop scheduling remaining batch tracks on Ctrl+C or SIGTERM so cancelled tracks stay queued, print
Interrupted: remaining tracks stayed queued, then still emit the partial summary and exit 130
v1.13
- added a non-interactive
yamdl downloadcommand for downloading a track, album, playlist, or chart without opening the terminal UI - added required
--tokenand--linkoptions plus--format,--output,--timeout, and--skip-covercontrols for batch downloads; MP3 and./downloadsremain the defaults - report each batch track's position and outcome, skip unavailable or duplicate entries, and print a downloaded/skipped/failed summary with the output directory
- validate batch arguments, authentication, source resolution, and output paths before starting downloads; Ctrl+C and SIGTERM cancel the client, print the partial summary, and return exit code 130
v1.12
- refactored the download queue around explicit per-session events, so progress counters stay scoped to the current run, unknown track IDs cannot corrupt state, and restarting
Download allrequeues eligible tracks consistently - unified MP3, FLAC, and M4A publication through a temporary artifact pipeline that streams MP3 responses into staging files, writes metadata before the final rename, publishes complete files atomically, and removes incomplete artifacts after failures
- kept format-specific metadata rules in one publication path: MP3 and FLAC tags remain required before delivery, while M4A tagging remains best-effort without blocking a verified audio file
- improved download diagnostics with streamed byte counts, sanitized response previews for text errors, injectable transports for HTTP tests, and clearer file-write failure stages
- redesigned the terminal download screen with a unified action bar, clearer focus styling, responsive list sizing, width-safe status/title rendering, and expanded inline command help
- added direct download-screen shortcuts for MP3/FLAC selection (
1/2),Download all(D), back (b), quit or cancel (q), and expanded help (?), while preventing listEnterfrom activating an action - expanded regression coverage for session lifecycle, artifact publication and cleanup, streamed HTTP downloads, layout constraints, keyboard navigation, and concurrent state updates
v1.11
- added M4A metadata writing for lossless flac-mp4 downloads: title, artists, album, album artist, genre, year, track/disc numbers, Yandex Music source URL, and embedded JPEG/PNG cover art when available
- create the required M4A metadata atom tree when a valid MP4/M4A has no initial ilst, so lossless Yandex Music files receive tags and cover art
- made M4A tagging non-fatal: if metadata writing fails, the verified audio file is still delivered and a warning is logged instead of deleting or blocking the download
- covered both stco and co64 sample-offset atoms in the M4A tagging path without requiring ffmpeg or AtomicParsley at runtime
- preserved unrelated MP3 comment frames while writing an application-owned Yandex Music source URL comment
Full Changelog: v1.10...v1.11
v1.10
- migrated the terminal UI to Charm v2 (
Bubble Tea,Bubbles, andLip Gloss) and updated the application to the new declarative view and keyboard-event APIs - made token input, URL input, the track list, progress bar, and action controls adapt to the current terminal width and height; wide Unicode track titles now keep the status column aligned
- improved download-screen navigation: arrow keys and
H/J/K/Lmove between the format and action controls, whileEscreturns focus to the track list - added a startup preflight check for
TERM=xterm, which explains how to switch toxterm-256colorbefore starting the app so colors, focus, and selected rows render correctly
v1.9
- added support for Yandex Music chart URLs, including the default regional chart at
/chartand region-specific charts such as/chart/world
v1.8
- improved compatibility with newer Yandex Music lossless responses so lossless downloads work again with the current API and can be saved in the returned container format
- improved download cancellation in the TUI: stopping an active queue now resets interrupted tracks back to a ready state instead of leaving them as failed downloads
v1.7
- added a lossless FLAC download mode alongside the existing MP3 flow; MP3 remains the default format
- added fallback-friendly download behavior: when FLAC is unavailable, invalid, fails to download, or cannot be tagged, the app automatically retries the same track as the best available MP3
- added FLAC metadata writing with Vorbis comments and embedded cover artwork, including title, artists, album, album artist, genre, date, track/disc numbers, Yandex track ID, and a Yandex Music track URL comment
- added a download format selector in the TUI action group so users can choose MP3 or FLAC for the whole current queue before starting downloads
- redesigned the download screen controls into a focused action group with consistent keyboard behavior:
Tabswitches between the track list and controls, arrow keys move inside the controls, andEnter/Spaceactivates the selected control - made the download screen layout responsive to terminal height by resizing the track list from
tea.WindowSizeMsg, keeping the header, progress bar, controls, and hotkey help visible - updated downloaded-track status rendering to show the actual saved format:
✅ FLACfor FLAC downloads and✅ MP3for MP3 downloads or MP3 fallbacks
Version 1.6
What's New
Added support for Yandex Music album links so you can paste an /album/<id> URL and download the full album in order.
Album and Playlist Link Support
Yandex Music URLs now support:
https://music.yandex.ru/album/<albumId>https://music.yandex.ru/playlists/<uuid>https://music.yandex.ru/playlists/lk.<uuid>https://music.yandex.ru/playlists/ps.<uuid>