Skip to main content
Yanked

This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 0.0.5 instead.
Reason given by maintainers: tcss not bundled

yt-collate

A Terminal User Interface music player for YouTube Music, developed for Linux (likely compatible with Mac; untested yet, don't have Mac).

Originally planned to only focus on gathering/arranging tracks in playlists (hence name), Collate has become a full-fledged music client rivaling the ease-of-use of GUI clients while requiring only a fraction of their resources usage.

Built with Textual, ytmusicapi, mpv, and yt-dlp. Keybinds are a mix of Vim binds and general binds for efficient keyboard-only navigation. Collate is inspired by youtube-music-cli and yazi; check them out!

Home page
Home page, with personalized recommendations once authenticated

Prerequisites

Install/Run

pipx install yt-collate

If pipx installs to a location on your PATH (usually ~/.local/bin), run with:

yt-collate

Features

  • Clean, minimalistic, fullscreen TUI client for YouTube Music
  • 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
  • Extremeley fast, lightweight, and responsive
Library playlist
Library playlist, with a local filter (/) and download notification

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

Usage

Collate uses browser headers to authenticate since OAuth 2.0 currently fails. See here on how to create your auth headers file (any POST request should work; ignore the "Using the headers in your project" section). Do this from a private/incognito window so your cookie might last a few years. Supply this file in Settings.

Collage is designed for efficient keyboard navigation, but mouse is supported as well.

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.1.tar.gz (81.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.1-py3-none-any.whl (73.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: yt_collate-0.0.1.tar.gz
  • Upload date:
  • Size: 81.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for yt_collate-0.0.1.tar.gz
Algorithm Hash digest
SHA256 8bb2320839b3ab60919d802feae5444680e5c78eb508874423c10ceebf989d31
MD5 fd9e3f57dda78b7b2d8ef0dd8c3962bc
BLAKE2b-256 27ae4af6786ced7b8d6936ab9b40b9ef7086ad52a1aa90a51481a38114ca6b36

See more details on using hashes here.

File details

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

File metadata

  • Download URL: yt_collate-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 73.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.7

File hashes

Hashes for yt_collate-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 73e21589de32e82c46670f1cd182468fae2e0f4a649ee8bd67b655e6b6778f2d
MD5 0bc6f0a05b42e30fc6497377dbd09333
BLAKE2b-256 6576614c53413e6b9416b99bb2e98f37925242b7646acc0f21f25a50e334f2a9

See more details on using hashes here.

Release history Release notifications | RSS feed

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

This release

0.0.1 This release

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