Repository navigation
Releases: Kumneger0/yt-tracks
Releases · Kumneger0/yt-tracks
Release list
v0.8.2
Changelog
Bug fixes
- d8bae6f: fix(perf): prefetch next track streamURL (@Kumneger0)
- a892582: fix(sidebar): cancel previous requests when new request comes in (#199) (@Kumneger0)
Dependency updates
- d614b47: feat(deps): bump golang.org/x/tools from 0.50.0 to 0.51.0 (#200) (@dependabot[bot])
- e1557d7: feat(deps): bump python-dotenv from 1.2.3 to 1.2.4 (@dependabot[bot])
v0.8.1
Changelog
Bug fixes
- 57228bd: fix: libray section is not showing the selected item correctly (#196) (@Kumneger0)
- a13c100: fix: music navigation is not working correctly (@Kumneger0)
- cffcc10: fix: update music history index on track add (@Kumneger0)
Dependency updates
- ef0094c: feat(deps): bump connectrpc.com/connect from 1.20.0 to 1.21.0 (@dependabot[bot])
- 4255046: feat(deps): bump github.com/ebitengine/oto/v3 from 3.4.0 to 3.5.1 (@dependabot[bot])
- 9eecdca: feat(deps): bump github.com/go-critic/go-critic from 0.14.3 to 0.15.0 (#183) (@dependabot[bot])
- b9916dc: feat(deps): bump github.com/gofrs/flock from 0.13.0 to 0.13.1 (#185) (@dependabot[bot])
- 5c2b69d: feat(deps): bump github.com/rmhubbert/bubbletea-overlay (@dependabot[bot])
- 8e8c8ca: feat(deps): bump github.com/stretchr/testify from 1.11.1 to 1.12.1 (#184) (@dependabot[bot])
- b2004fe: feat(deps): bump go.dalton.dog/bubbleup from 1.3.0 to 1.4.0 (@dependabot[bot])
- fc5f88e: feat(deps): bump golang.org/x/sys from 0.47.0 to 0.48.0 (#186) (@dependabot[bot])
- 19f7c7a: feat(deps): bump golang.org/x/tools from 0.49.0 to 0.50.0 (@dependabot[bot])
- af13a74: feat(deps): bump mvdan.cc/gofumpt from 0.10.0 to 0.12.0 (@dependabot[bot])
- de06538: feat(deps): bump uvicorn from 0.53.0 to 0.54.0 (@dependabot[bot])
Other work
- aac19dd: refactor: add new lint rules and update affected parts (#178) (@Kumneger0)
v0.8.0
Changelog
New Features
- 3c55a22: feat: show watch playlist (@Kumneger0)
- ebb3760: feat: use lrclib for lyrics as fallback (@Kumneger0)
Bug fixes
- 5a18f28: fix(ci): generate only golang proto buf files (@Kumneger0)
- 1d52dfa: fix: add tests (@Kumneger0)
- 1f54ab5: fix: artist name is not shown on media control (@Kumneger0)
- 4e8ae38: fix: clear old queue items before add new items" (@Kumneger0)
- 9b27317: fix: correct PlaybackContext index tracking and add bounds checks (@Kumneger0)
- d3f16cb: fix: dont add watch playlist items into main queue (@Kumneger0)
- 0db18fd: fix: dont filter out songs if isAvailable is None (@Kumneger0)
- 65240dc: fix: map occurrence position for duplicate VideoIds in PlaybackContext (@Kumneger0)
- 46ca284: fix: pick whatever format available if we cant find audio (@Kumneger0)
- 5d2d7b3: fix: sidebar focus not working (@Kumneger0)
- ec702a7: fix: tests (@Kumneger0)
- 4cb143d: fix: use buf compiler instead of googles protoc (@Kumneger0)
Other work
- 8df6475: refactor: rename the project to yt-tracks (@Kumneger0)
v0.8.0-beta
Changelog
New Features
- 44b074e: feat: add 5Mib of buffer (@Kumneger0)
- 75a90ba: feat: add lyrics support (@Kumneger0)
- b599165: feat: add multi-OS PyInstaller and GoReleaser release pipeline (@Kumneger0)
- 0f9ad3d: feat: add support for podcasts (@Kumneger0)
- 94085fb: feat: add support for related songs (@Kumneger0)
- cad1701: feat: better track queues (@Kumneger0)
- 516e2b4: feat: dont use withCancel context for stream url (@Kumneger0)
- b32c082: feat: embed python single executable reduce audio quality (@Kumneger0)
- c70ac00: feat: extract cookies from browsers (@Kumneger0)
- 382cee3: feat: extract cookies in go side (@Kumneger0)
- ec28a57: feat: make the python side stateless (@Kumneger0)
- 090acbc: feat: migrating to youtube music from spotify (@Kumneger0)
- f1634c7: feat: playlist management (@Kumneger0)
- 9d5c71b: feat: show breadcrumb in main ui (@Kumneger0)
- 0568849: feat: show only neccessary keybindings based on focus mode (@Kumneger0)
- 0c51f3e: feat: show search result in one list (@Kumneger0)
- 5c1ea73: feat: show users library (@Kumneger0)
- f4b8bb6: feat: show youtube homepage content (@Kumneger0)
- be63f6b: feat: use stream url to play directly instead of yt-dlp (@Kumneger0)
Bug fixes
- c32194d: fix(ci): dont run commands silently (@Kumneger0)
- f9f79f4: fix(ci): generate protobuf during ci lint check (@Kumneger0)
- 197a730: fix(ci): update Go gRPC plugin version to latest in CI workflows (@Kumneger0)
- 908a872: fix(ci): update system dependencies and install Go protobuf plugins in CI workflows (@Kumneger0)
- 841ea7e: fix(ci): update to go 1.26 (@Kumneger0)
- c664c4c: fix(docs): update contributing guideline and build from soure docs (@Kumneger0)
- 1e54203: fix: add ablity to switch b/n related song and queue list (@Kumneger0)
- d9e8f88: fix: add missing loading indicator during content search (@Kumneger0)
- c72b2f0: fix: albums is not iterable (@Kumneger0)
- e4f54a5: fix: ask the user before trying to excuting the shell command (@Kumneger0)
- a9a3d31: fix: check user previallage before contructing intall command (@Kumneger0)
- e1217ec: fix: close ffmpeg on failure (@Kumneger0)
- aadcafb: fix: dont add playlist/albums to music queue (#160) (@Kumneger0)
- 5a49e23: fix: dont calculate termianal dimension on headless mode (@Kumneger0)
- dec147d: fix: dont delete the backend binary before copy succedds (@Kumneger0)
- 8f5cd9c: fix: dont exit prematurely on track save/remove (@Kumneger0)
- 7511585: fix: dont ignore videos from search result (@Kumneger0)
- 68d33ca: fix: dont reset client more than once for one failure (@Kumneger0)
- b2ffa79: fix: dont treat artist as playlist (@Kumneger0)
- 2944355: fix: dont treat songs as playlist on hompage (@Kumneger0)
- 4e436a0: fix: dont use flag parse (@Kumneger0)
- 785f70f: fix: dont use proto generated types as list.Item (@Kumneger0)
- 6b64d1e: fix: generate gen dir before protobuf generation (@Kumneger0)
- c141ee0: fix: kill backend process at the end of the program (@Kumneger0)
- d180c4b: fix: let ffmpeg manage http connect instead (@Kumneger0)
- b51d4fd: fix: migrate to connect-rpc(work in progress (@Kumneger0)
- f1c09e9: fix: only send when we read greater than 1 byte (@Kumneger0)
- c8fe816: fix: pass server urls to build scripts (#159) (@Kumneger0)
- 703ac72: fix: pass youtube cookies to ffmpeg to bypass 403 issue (#163) (@Kumneger0)
- fca0377: fix: prevent race on song liking (@Kumneger0)
- 311b86a: fix: read the current seconds outside goroutine (@Kumneger0)
- cb1c005: fix: remove ReadYtDlpErrReader and cache file check (@Kumneger0)
- 5f2612e: fix: remove auth check on client (@Kumneger0)
- eb9010f: fix: remove extract cookies section (@Kumneger0)
- 4e87ad4: fix: remove legacy spotify related types (@Kumneger0)
- 6f31175: fix: remove search result focus mode (@Kumneger0)
- 8037ed7: fix: remove unused subtitleMaxLen (@Kumneger0)
- 9e72a77: fix: rename the project from clispot to ytmusic-tui (@Kumneger0)
- 34c0a33: fix: reset ytmusic client instace on expection due to subsequent request (@Kumneger0)
- ad1ce88: fix: setVideoId is empty (@Kumneger0)
- f84d125: fix: show proper play pause icon (@Kumneger0)
- a35c484: fix: some audios doesnt have duration (@Kumneger0)
- d1ae852: fix: some keys dont work during search (@Kumneger0)
- d508257: fix: synced lyrics (@Kumneger0)
- 0e48e36: fix: update browser.json only on success (@Kumneger0)
- e1436d1: fix: use contextualized exec.Cmd instead (@Kumneger0)
- a65c20d: fix: use go channels to update played seconds instead of tea.Tick (@Kumneger0)
- 62ab494: fix: use os package manager instead of our crazy implementation (@Kumneger0)
- 1413b81: fix: use setup function from ytmusicapi insted of our crazy implementation (@Kumneger0)
- 90b8f6f: fix: use unbuffered channel instead (@Kumneger0)
- d3df221: fix: use yt-dlp instead of kkdai/youtube (@Kumneger0)
- 7f3dc13: fix: wrong astral-sh/setup-uv version (@Kumneger0)
Dependency updates
- db5f003: feat(deps): bump github.com/charmbracelet/bubbles from 0.21.1 to 1.0.0 (@dependabot[bot])
- 511cdb5: feat(deps): bump github.com/daixiang0/gci from 0.13.7 to 0.14.0 (@dependabot[bot])
- 210a36c: feat(deps): bump golang.org/x/sys from 0.41.0 to 0.43.0 (@dependabot[bot])
- bdbd3ee: feat(deps): bump golang.org/x/tools from 0.42.0 to 0.44.0 (#107) (@dependabot[bot])
- f904b2c: feat(deps): bump mvdan.cc/gofumpt from 0.9.2 to 0.10.0 (#108) (@dependabot[bot])
Other work
- 69738c3: Update internal/ui/update.go (@Kumneger0)
- ff4c332: refactor: replace context.WithTimeout with context.WithCancel (@Kumneger0)
v0.7.0
Changelog
New Features
- bf9d868: feat(install): add command for installing yt-dlp and ffmpeg (@Kumneger0)
- 2d2cb81: feat(install): add support for extracting zip binaries (@Kumneger0)
- 3fa12f0: feat: add
SkipOnNoMatchconfig to automatically to play the next song if no match found (@Kumneger0) - 1620e58: feat: show error if there is no match found (@Kumneger0)
Bug fixes
- a93aa17: fix(install): check compare the installed version of yt-dlp with new one if it is latest or not (@Kumneger0)
- 010fe3c: fix(install): improve dependency installation and checksum validation (@Kumneger0)
- 9769105: fix(install): make filenames platform specific during install (@Kumneger0)
- c9bfc89: fix(install): update ffmpeg binary configuration (@Kumneger0)
- 5bde4fe: fix(log): log command using hard coded path (@Kumneger0)
- 77c870d: fix: add file extension on windows (@Kumneger0)
- 2035449: fix: ensure parent dirs are created (@Kumneger0)
Dependency updates
- 43b5e28: feat(deps): add automatic dependency installation with yt-dlp and ffmpeg support (@Kumneger0)
- 62e533c: feat(deps): bump github.com/charmbracelet/bubbles (@dependabot[bot])
- d15257f: feat(deps): bump go.dalton.dog/bubbleup from 1.2.0 to 1.3.0 (@dependabot[bot])
- d2356ed: feat(deps): bump golang.org/x/sys from 0.40.0 to 0.41.0 (@dependabot[bot])
- 6c65e60: feat(deps): bump golang.org/x/tools from 0.41.0 to 0.42.0 (#99) (@dependabot[bot])
Other work
- 6adb164: docs: update README with premium requirement clarification and a deep dive article link (@Kumneger0)
v0.6.0
Changelog
New Features
- 072afdd: feat(pagination): implement pagination for playlist and user saved tracks (@Kumneger0)
- 7f3970a: feat(youtube): enhance SearchAndDownloadMusic with duration filtering and junk word rejection (@Kumneger0)
Bug fixes
- 4cfea08: fix(tests): update GetUserSavedTrackURL to include pagination parameters (@Kumneger0)
- 0ce0203: fix(ux): highlight selected item only if the section is focused (@Kumneger0)
- 02e2bc4: fix: add nil check before setting or accessing queueList items (@Kumneger0)
- 5b72bd8: fix: add nil check for MusicQueueList before setting items (@Kumneger0)
- 099d4e5: fix: search result highlight wasn't working (@Kumneger0)
Dependency updates
- 3be079e: feat(deps): bump go.dalton.dog/bubbleup from 1.1.0 to 1.2.0 (@dependabot[bot])
- 5e35336: feat(deps): bump golang.org/x/sys from 0.39.0 to 0.40.0 (@dependabot[bot])
- 473ef83: feat(deps): bump golang.org/x/tools from 0.40.0 to 0.41.0 (@dependabot[bot])
v0.5.1
Changelog
Bug fixes
- 636bbf7: fix: high memory usage on caused by wrong usage of tea.Tick (@Kumneger0)
- 19acd93: fix: queue select not working correctly (@Kumneger0)
Dependency updates
- cb1edb9: feat(deps): bump github.com/go-critic/go-critic from 0.14.2 to 0.14.3 (@dependabot[bot])
v0.5.0
Changelog
New Features
- 5c87fb8: feat: add PowerShell and shell scripts for clispot installation (@Kumneger0)
Bug fixes
- a47e0c2: fix(windows): can't write to a lock file (@Kumneger0)
- 9a98194: fix(windows): send CTRL + C to close child process (@Kumneger0)
- 6fea51b: fix(windows): try to kill before sending ctrl+c (@Kumneger0)
- e9f1c4b: fix: change the focus on search result select (@Kumneger0)
- bcd7073: fix: freeze during play music (@Kumneger0)
Dependency updates
- 37ba393: feat(deps): bump github.com/godbus/dbus/v5 from 5.1.0 to 5.2.2 (@dependabot[bot])
Other work
- 5e9a7f8: refactor: centralize platform-specific command execution and process killing into a new package (@Kumneger0)
- b95e2b3: refactor: improve yt-dlp error message extraction, (@Kumneger0)
v0.4.0
Changelog
New Features
- e31d46d: feat: add status to the SSE stream (@Kumneger0)
- 0bd7cf7: feat: add mutex to protect music queue access in headless server (@Kumneger0)
- 73a93c4: feat: add shift+tab support for changing focus mode (@Kumneger0)
- 289944d: feat: add system notifications and enhanced in-app alerts (@Kumneger0)
- 0a0bdb1: feat: add user saved albums, album tracks, add search endpoint (@Kumneger0)
- 82c0d96: feat: allow user to pass --cookies-from-browser flag (@Kumneger0)
- c4ae022: feat: cross compile setup (@Kumneger0)
- 5203ddf: feat: file based config (@Kumneger0)
- 537f95e: feat: headless mode will be used for building other client apps (@Kumneger0)
- c959af3: feat: implement music queue management in headless mode with D-Bus control (@Kumneger0)
- 7594ff3: feat: implement queue management with new API endpoints for adding an (@Kumneger0)
- b6db6c9: feat: integrate MPRIS for headless mode(play/pause only) (@Kumneger0)
- b86ca1f: feat: integrate bubbleup for UI alerts (@Kumneger0)
- 3bd855c: feat: introduce configurable cache directory (@Kumneger0)
- 8cfced8: feat: relocate file locking logic from main to root command and remove unused SearchQuery struct (@Kumneger0)
- 8f798f6: feat: show music lyrics (@Kumneger0)
- caddc19: feat: stream yt-dlp logs to UI and headless server via SSE (@Kumneger0)
- 3f4ad13: feat: test test workflow and refactor config path (@Kumneger0)
Bug fixes
- e7e251c: fix: TestGetConfigDir_LinuxFallback mocking wrong function (@Kumneger0)
- d08b860: fix: move the sleep code after error check (@Kumneger0)
- b9784b7: fix: add music queue array index bound check (@Kumneger0)
- 406eec6: fix: add mutex lock before updating queue (@Kumneger0)
- 29cf584: fix: alertCmd wasn't properly appended (@Kumneger0)
- 20d9522: fix: allow them to return to normal mode when clicking ctrl+l second time (@Kumneger0)
- 9bb0c97: fix: array bound check (@Kumneger0)
- 7484380: fix: change lyrics score to float64 (@Kumneger0)
- 33b3e8b: fix: check if the cached audio is playable or not (@Kumneger0)
- d0c3f3c: fix: check the length of queue before removing track (@Kumneger0)
- 2439d67: fix: clicking up or down arrow makes while focusing on player triggers the selected playlist items (@Kumneger0)
- 1aba68d: fix: close the cached file on ffmpeg failure (@Kumneger0)
- 2bbf157: fix: correctly open URLs and terminate processes on Windows (@Kumneger0)
- 26b4846: fix: detect in which area user scrolled his mouse (@Kumneger0)
- 20e071a: fix: icon is only displayed on first notificaton (@Kumneger0)
- 3fd4d82: fix: improve user config directory fallback with platform-specific paths (@Kumneger0)
- 4830480: fix: like unlike button indicator is missing (@Kumneger0)
- d571e59: fix: like unlike is not behaving correctly (@Kumneger0)
- 11029f6: fix: lyrics view on music change" (@Kumneger0)
- 98ef81d: fix: make sure SelectedPlayListItems is not empty before accessing any values from it (@Kumneger0)
- 80425fa: fix: make sure the queue is not empty before accessing next track (@Kumneger0)
- 099c302: fix: make sure the queue is not empty before accessing previous track (@Kumneger0)
- 4a01404: fix: nil check on debud-dir config (@Kumneger0)
- 6349569: fix: nil pointer dereference (@Kumneger0)
- 2383c21: fix: pause currently playing track before fetching next track metadata (@Kumneger0)
- 766b7b7: fix: protect ui.Model with RWMutex for safe concurrent access in headless mode (@Kumneger0)
- 7f4a54a: fix: remove unused type and conditionally show player process close error alert (@Kumneger0)
- de151aa: fix: search is missing on lyrics mode (@Kumneger0)
- dfc5001: fix: shift+tab is not working correctly (@Kumneger0)
- c51adac: fix: trim notification message content (@Kumneger0)
- ee43380: fix: unexpected pause when typing on searchbar (@Kumneger0)
- 2c52636: fix: update error message (@Kumneger0)
- 073e903: fix: update http status code with correct one (@Kumneger0)
- 08356a3: fix: update to RLock instead of lock for read only oprations (@Kumneger0)
- 5c6255b: fix: use default values for configs that are not set in user config (@Kumneger0)
Dependency updates
- afdbeed: Revert "feat(deps): bump github.com/godbus/dbus/v5 from 5.1.0 to 5.2.1" (@Kumneger0)
- abb5f55: feat(deps): bump github.com/godbus/dbus/v5 from 5.1.0 to 5.2.1 (@dependabot[bot])
- 96917ab: feat(deps): bump github.com/spf13/cobra from 1.10.1 to 1.10.2 (@dependabot[bot])
- 59bca1c: feat(deps): bump golang from 1.25.4 to 1.25.5 (@dependabot[bot])
- a6006db: feat(deps): bump golang.org/x/tools from 0.39.0 to 0.40.0 (@dependabot[bot])
Other work
- f12b7e3: ci: install ALSA and pkg-config (@Kumneger0)
- d356cc2: ci: remove Dockerfile and Docker image publishing workflow (@Kumneger0)
- 9390294: docs: add note for Linux users to enable CGO for successful builds due to audio library dependencies (@Kumneger0)
- 7488b6c: docs: add note for c compiler (@Kumneger0)
- bceda07: docs: explain clispot-lyrics binary renaming (@Kumneger0)
- f30b1df: docs: replace local user guide with a link to external documentation (@Kumneger0)
- 59dd8cc: docs: revise contributing guidelines to include detailed development setup (@Kumneger0)
- 564acda: refactor(spotify): refator HTTPClient interface for API client testability (@Kumneger0)
- c1081b5: refactor: abstract Spotify API calls behind a new
SpotifyClientinterface (@Kumneger0) - e94af01: refactor: migrate directory path management to comply with XDG Base Directory Specification (@Kumneger0)
v0.3.1
Changelog
New Features
- 2236371: feat: allow user to opt out caching (@Kumneger0)
- 4222574: feat: cache tracks (@Kumneger0)
Bug fixes
- 56863eb: fix: ensure only one UpdatePlayedSeconds event is running (@Kumneger0)
- 7f0f612: fix: ensure that the player section is focused before chaning music (@Kumneger0)
- 4de6cc3: fix: improve error handling in player close functions (@Kumneger0)
- d839aca: fix: remove spotify client and client secret from binary (@Kumneger0)
Dependency updates
- b1b7251: feat(deps): bump github.com/godbus/dbus/v5 from 5.1.0 to 5.2.0 (@dependabot[bot])
- 33c4143: feat(deps): bump golang from 1.25 to 1.25.4 (@dependabot[bot])
Other work
- e72648b: docs: update the docs for the new caching functionality (@Kumneger0)