| Crates.io | youtube-tui |
| lib.rs | youtube-tui |
| version | 0.9.2 |
| created_at | 2022-05-28 15:44:23.398314+00 |
| updated_at | 2025-09-19 15:57:47.451417+00 |
| description | An aesthetically pleasing YouTube TUI written in Rust |
| homepage | https://tui.siri.ws/youtube |
| repository | https://github.com/siriusmart/youtube-tui |
| max_upload_size | |
| id | 595776 |
| size | 578,603 |
Read more in the user manual (including installation guide and documentation).
Written in Rust, the YouTube TUI is a lightweight and user friendly TUI for browsing YouTube content from the terminal. Works out of the box and easily configurable.

It is like an app launcher, it launches other programs to do the heavy lifting (for example, mpv for playing videos).
It also have an embedded mpv music player, but that can be disabled in compile time.
Consider regenerating config files on updates to allow new features.
The YouTube TUI can be customised through config files, they are located in ~/.config/youtube-tui and are in the YAML format.
Here's an example of the config file:
mouse_support: true
max_watch_history: 50
allow_unicode: false
images: Sixels
refresh_after_modifying_search_filters: true
provider: YouTube
env:
browser: xdg-open
video-player: mpv
youtube-downloader: yt-dlp
terminal-emulator: konsole -e
Anything from layouts to colours and keybindings can be customised, more on that later.
See installation#features for more info on dependencies.
The YouTube TUI does not work on its own, it is instead like a TUI frontend for programs like mpv or yt-dlp/youtube-dl.
However, the programs to launch can be changed, and therefore the YouTube TUI does not rely on any specific dependencies to run.

The YouTube TUI allows you to browse YouTube with (almost) all of it's features, functions including:

It also includes features like:
typemap dependency with either a self implementation of it or a useable crate.This has been urgent for over 2 years now, maybe the deprecation warnings aren't real, nothing ever happens.
yt-dlp - make changes to existing downloaded playlists instead of redownloading the entire thing.You will need a general knowledge of the Rust programming language, and the ability to understand my spaghetti.
Or just fix that typo in README -_-