Skip to main content

yt-collate

A Terminal User Interface client for YouTube Music, with a focus on efficiency and easy-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 (likely compatible with Mac; untested yet).

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
Home page, with personalized recommendations once authenticated

Features

  • Clean, minimalistic, modern TUI client for YouTube Music
  • Extremeley fast, lightweight, and responsive
  • Authentication to access your Library and personalized recommendations
  • Includes YouTube Music Home, Explore, Search, and Trending pages
  • Smooth playback experience, with a simple dynamic queue
  • Download songs/playlists to local / Automatic audio retrieval from local
  • Vast set of intuitive keybinds (e.g. n for next track, d to download, etc.)
  • Easy management of Library (e.g. o to create playlist, x to delete song/playlist, etc.)
  • "Marking" playlists to easily add to collection from anywhere
  • YouTube Music subscribers benefit from enhanced audio bitrate (both streams and downloads)
  • Discord Rich Presence integration

Distinct Touches

  • Has Vim's "unnamed register" for x (cut), y (yank), and p (put/paste) for songs
  • 0-9 keys jump around current track, imitating YouTube's playback keybinds
  • Audio bitrate indicator, originally added to verify enhanced premium bitrate
  • Local filter / can jump to line numbers, allowing fast gotos
  • Search screen accepts YouTube URLs, useful if you prefer exploring YouTube on a browser (me)
  • Option to hide "Episodes for Later" in Library, I'm sure many find this annoying (me)
  • No concept of "unshuffle", s reshuffles queue everytime; I have no use "unshuffling" my queue

Prerequisites

Install / Update

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
Library playlist, with a local filter (/) and download notification

Usage

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.

Config

Data lives under ~/.config/yt-collate/. Downloads appear in ~/Music/yt-collate.

Development

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

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yt_collate-0.0.3.tar.gz (84.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

yt_collate-0.0.3-py3-none-any.whl (76.2 kB view details)

Uploaded Python 3

File details

Details for the file yt_collate-0.0.3.tar.gz.

File metadata

  • Download URL: yt_collate-0.0.3.tar.gz
  • Upload date:
  • Size: 84.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yt_collate-0.0.3.tar.gz
Algorithm Hash digest
SHA256 ad538c745ad460bf52e00b669cc57ae0b7fc84ed9d53710865cd846fc1dc88bd
MD5 c4316f4e1c7f897ff79429026c646748
BLAKE2b-256 ef1b9d15ef03719db1d24f31410f45f6fd8b07449e15406eb6580a251063394d

See more details on using hashes here.

File details

Details for the file yt_collate-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: yt_collate-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 76.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.5 {"installer":{"name":"uv","version":"0.12.5","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Arch Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for yt_collate-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4cca9192fe1b22d17d33c3401518fc27348e3f123f4eebeab31f223c74ade0fc
MD5 6e7ffc05233b52f3a05c161eb33effed
BLAKE2b-256 97a3db133089c793c6781865a4661062d0d8a88a1bc32d6d61619e0a3a9bf6d9

See more details on using hashes here.

Release history Release notifications | RSS feed

0.0.5

2 files

0.0.4

2 files

This release

0.0.3 This release

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page