Motivation: This is a personal passion project I made in my spare time, after I realized no YTM client had all the features/specs/quirks I wanted
A Terminal User Interface client for YouTube Music, with a focus on efficiency and ease-of-use while also offering a comprehensive feature list.
Originally planned to only focus on gathering/arranging tracks in playlists (hence name), Collate has become a full-fledged music client that is reliable and "just works". Developed for Linux and Mac.
Built with Textual, ytmusicapi, mpv, and yt-dlp. Keybinds are a mix of Vim binds and general binds for efficient keyboard navigation (mouse is supported as well). Collate is inspired by youtube-music-cli and yazi; check them out!
Home page, with personalized recommendations once authenticated
n for next track, d to download, etc.)o to create playlist, x to delete song/playlist, etc.)x (cut), y (yank), and p (put/paste) for songs0-9 keys jump around current track, imitating YouTube's playback keybinds/ can jump to line numbers, allowing fast go-toss reshuffles queue everytime; I have no use "unshuffling" my queueyt-dlp --update-to nightly)pipx install yt-collate
Make sure ~/.local/bin is in your PATH.
When a new version is released, update with:
pipx upgrade yt-collate
Collate is also available on AUR:
yay -S yt-collate
Library playlist, with a local filter (/) and download notification
To set up authentication, run:
yt-collate auth
and follow the prompts. The file is written to ~/.config/yt-collate/browser.json, and this will likely last a few years. Run Collate with:
yt-collate
Press ? in-app to view list of all keybinds.
Data lives under ~/.config/yt-collate/. Downloads appear in ~/Music/yt-collate.
Contributions are welcome! As a start, consider adding your favorite genre to GENRES in src/services/random_song.py.
uv sync --group dev # install dev packages
uv run pytest # for testing
uv run ruff check . # for linting/formatting
51 commits
Python
100.0%
Motivation: This is a personal passion project I made in my spare time, after I realized no YTM client had all the features/specs/quirks I wanted
A Terminal User Interface client for YouTube Music, with a focus on efficiency and ease-of-use while also offering a comprehensive feature list.
Originally planned to only focus on gathering/arranging tracks in playlists (hence name), Collate has become a full-fledged music client that is reliable and "just works". Developed for Linux and Mac.
Built with Textual, ytmusicapi, mpv, and yt-dlp. Keybinds are a mix of Vim binds and general binds for efficient keyboard navigation (mouse is supported as well). Collate is inspired by youtube-music-cli and yazi; check them out!
Home page, with personalized recommendations once authenticated
n for next track, d to download, etc.)o to create playlist, x to delete song/playlist, etc.)x (cut), y (yank), and p (put/paste) for songs0-9 keys jump around current track, imitating YouTube's playback keybinds/ can jump to line numbers, allowing fast go-toss reshuffles queue everytime; I have no use "unshuffling" my queueyt-dlp --update-to nightly)pipx install yt-collate
Make sure ~/.local/bin is in your PATH.
When a new version is released, update with:
pipx upgrade yt-collate
Collate is also available on AUR:
yay -S yt-collate
Library playlist, with a local filter (/) and download notification
To set up authentication, run:
yt-collate auth
and follow the prompts. The file is written to ~/.config/yt-collate/browser.json, and this will likely last a few years. Run Collate with:
yt-collate
Press ? in-app to view list of all keybinds.
Data lives under ~/.config/yt-collate/. Downloads appear in ~/Music/yt-collate.
Contributions are welcome! As a start, consider adding your favorite genre to GENRES in src/services/random_song.py.
uv sync --group dev # install dev packages
uv run pytest # for testing
uv run ruff check . # for linting/formatting
51 commits
Python
100.0%