YouTube in Terminal - Fire-and-Forget Music CLI
Project description
Yit (YouTube in Terminal) Player 🎵
The Fire-and-Forget Music Player for Developers.
Yit (YouTube in Terminal) is a lightweight, headless, terminal-based audio player designed for flow states. It allows you to search, queue, and control music directly from your CLI without ever touching a browser or a heavy GUI.
It runs in the background (daemonized), meaning you can close your terminal, switch tabs, or keep coding while the music plays.
🚀 Features
- Daemon Architecture: The player runs as a detached background process. Your terminal is never blocked.
- Instant Search: Uses
yt-dlpto fetch metadata in milliseconds. - Smart Queue: Manage your playlist (
add,next,back,Loop) with simple commands. - Cross-Platform: Works natively on Windows, macOS, and Linux.
- Agent-Native: Built from the ground up to be controlled by AI Agents (Vibe Coding).
📦 Installation
pip install yit-player
Requirements
Yit uses python-mpv.
- Zero-Config: Yit automatically manages the
libmpvaudio engine internally. No manual installation required!
⚡ Quick Start
1. Search & Play
# Search for a song
yit search "lofi hip hop"
# Auto-play the first result immediately
yit search "daft punk" -p
2. Control Playback
yit pause # (or 'p')
yit resume # (or 'r')
yit toggle # Toggle play/pause
yit stop # Kill the player
3. Queue Management
yit add 1 # Add result #1 from your last search to the queue (use 1 - 5 to choose from search results)
yit queue # Show the current queue
yit next # Skip track (or 'n')
yit back # Previous track (or 'b')
yit clear # Wipe the queue
4. Looping
yit loop # Loop the current track indefinitely
yit unloop # Return to normal playback
5. Status
yit status # Check if currently Playing/Paused and Looped
🤖 For AI Agents & Vibe Coding
Yit is designed to be self-documenting for AI context. If you are building an AI agent or using an LLM in your IDE:
- Read context: Point your agent to AI_INSTRUCTIONS.md (included in the repo).
- Discovery: Run
yit commandsto get a JSON list of all capabilities. - State: Run
yit agentto get the full player state (Track, Time, Queue) in pure JSON.
Example Agent Output (yit agent):
{
"status": "playing",
"track": {
"title": "Never Gonna Give You Up",
"url": "https://..."
},
"position": 45.2,
"duration": 212.0,
"queue_length": 5
}
🛠️ Architecture
- Client: Python CLI (
yit) handles argument parsing and user signals. - Daemon: A hidden Python process consuming
libmpvhandles audio decoding and playback logic. - Communication: IPC (Inter-Process Communication) via Named Pipes (Windows) or Unix Sockets (Linux/Mac).
- Persistence:
~/.yit/history.jsonstores your playback history and queue metadata.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yit_player-0.1.4.tar.gz.
File metadata
- Download URL: yit_player-0.1.4.tar.gz
- Upload date:
- Size: 10.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d4cd51b02a77fbffa92d9ba635535cfea6a69bf8591a72ff200dd1553ef45413
|
|
| MD5 |
f316923f12a4466bc072f1d951d88799
|
|
| BLAKE2b-256 |
ad7654d92d8ddc3e669b0784f01c8df4239c16abd0758e404b388a457b1bfbc3
|
Provenance
The following attestation bundles were made for yit_player-0.1.4.tar.gz:
Publisher:
publish.yml on VijayarajParamasivam/yit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yit_player-0.1.4.tar.gz -
Subject digest:
d4cd51b02a77fbffa92d9ba635535cfea6a69bf8591a72ff200dd1553ef45413 - Sigstore transparency entry: 945179902
- Sigstore integration time:
-
Permalink:
VijayarajParamasivam/yit@de9cfcbdf01e0e1787218cdd83dc873cd50a7f2d -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/VijayarajParamasivam
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@de9cfcbdf01e0e1787218cdd83dc873cd50a7f2d -
Trigger Event:
release
-
Statement type:
File details
Details for the file yit_player-0.1.4-py3-none-any.whl.
File metadata
- Download URL: yit_player-0.1.4-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0abaa8ffb95a465392b0e1fd904e305f621fb6071836f9d0240c40216ae0c913
|
|
| MD5 |
909e9233f57874e159bfab36fd1b55cf
|
|
| BLAKE2b-256 |
aaf32944504d5cbd846980efed657009b3da3c8d08ea29c753545e0045fbf3c5
|
Provenance
The following attestation bundles were made for yit_player-0.1.4-py3-none-any.whl:
Publisher:
publish.yml on VijayarajParamasivam/yit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
yit_player-0.1.4-py3-none-any.whl -
Subject digest:
0abaa8ffb95a465392b0e1fd904e305f621fb6071836f9d0240c40216ae0c913 - Sigstore transparency entry: 945179940
- Sigstore integration time:
-
Permalink:
VijayarajParamasivam/yit@de9cfcbdf01e0e1787218cdd83dc873cd50a7f2d -
Branch / Tag:
refs/tags/v0.1.4 - Owner: https://github.com/VijayarajParamasivam
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@de9cfcbdf01e0e1787218cdd83dc873cd50a7f2d -
Trigger Event:
release
-
Statement type: