MCPcopy Index your code
hub / github.com/13unk0wn/Feather

github.com/13unk0wn/Feather @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
65 symbols 91 edges 11 files 51 documented · 78%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Feather 🎵

Feather is a lightweight, efficient, and locally hosted YouTube Music TUI built with Rust. It is designed to provide a minimalistic yet powerful music streaming experience directly from YouTube, using yt-dlp and mpv.

🎯 Aim

A lightweight, ad-less player with only essential features.

✨ Features

  • 🎶 Stream YouTube Music without downloading files.
  • Minimal Memory Usage, targeting 60MB - 80MB RAM.
  • 🚀 Fast Playback, with loading times around 3 seconds.
  • 🖥️ Terminal User Interface (TUI) built using Ratatui.
  • 🔄 Self-Update Feature (planned).

🛠️ Installation

📌 Prerequisites

Ensure you have the following installed:

  • 🦀 Rust (latest stable version)
  • 📥 yt-dlp (for fetching YouTube data)
  • 🎵 mpv (for playback)

🔧 Build from Source

git clone https://github.com/13unk0wn/Feather.git
cd Feather/feather_frontend
cargo build --release

▶️ Run Feather

./target/release/feather_frontend

🎮 Usage

Navigate through the TUI to search and play music. Additional controls and keyboard shortcuts will be documented soon.

🛠️ Handling YouTube Restrictions

If a song fails to play due to YouTube restrictions, you can bypass them by adding your cookies to the environment:

export FEATHER_COOKIES="paste your cookies here"
  • This is optional and should only be used if playback errors occur.
  • Feather can play songs without cookies, but adding them may help mpv bypass certain restrictions.

🌄 Screenshot

Feather TUI Screenshot

🛠️ Compatibility

Feather has been tested on Linux Mint (Debian Edition), but all libraries used are compatible with other Linux distributions. Windows and Macos are not officially supported.

🛣️ Roadmap

🚀 Current Version: v0.1.0

  • 🎶 Implement player
  • 🔍 Implement search
  • �햐 Implement history

🔥 Upcoming: v0.2.0

  • ⚡ Improve performance
  • 🎨 Improve UI
  • 🌜 Add support for playing playlists
  • 🎼 Add support for creating user playlists
  • ⚙️ Add user configuration support

🤝 Contributing

Check out CONTRIBUTION.md

If you have any doubts regarding contribution, feel free to reach out via: - GitHub Issues - @x: 13unk0wn - Email: 13unk0wn.proton.me

🌟 Special Thanks

A big thank you to the maintainers and contributors of: - RustyPipe — for providing essential tools for YouTube playback. - mpv — for making a great media player that powers Feather's playback. - Ratatui — for enabling the terminal-based UI experience. - Sled - database

🌟 License

Feather is licensed under the MIT License.


📝 Notes

This project is still in early development. Expect rapid iterations and improvements. Suggestions and feedback are always appreciated!

Core symbols most depended-on inside this repo

handle_keystrokes
called by 3
feather_frontend/src/player.rs
unpause
called by 2
feather/src/player.rs
play_music
called by 2
feather_frontend/src/backend.rs
change_state
called by 2
feather_frontend/src/search.rs
search
called by 1
feather/src/yt.rs
fetch_song_url
called by 1
feather/src/yt.rs
play
called by 1
feather/src/player.rs
pause
called by 1
feather/src/player.rs

Shape

Method 43
Class 14
Enum 6
Function 2

Languages

Rust100%

Modules by API surface

feather/src/player.rs12 symbols
feather/src/database.rs10 symbols
feather_frontend/src/main.rs9 symbols
feather_frontend/src/player.rs8 symbols
feather/src/yt.rs7 symbols
feather_frontend/src/search.rs6 symbols
feather_frontend/src/history.rs6 symbols
feather_frontend/src/backend.rs6 symbols
feather/build.rs1 symbols

For agents

$ claude mcp add Feather \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact