Siriusmart/youtube-tui

An aesthetically pleasing YouTube TUI written in Rust

Rust

1,163

178 commits

updated May 29, 2026

See the code

README

Read more in the user manual (including installation guide and documentation).

Overview

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. Supports Linux and Windows.

It is like an app launcher, it launches other programs to do the heavy lifting (for example, mpv for playing videos).

It also has an embedded mpv music player, but that can be disabled in compile time.

Consider regenerating config files on updates to allow new features.

Customisable

The YouTube TUI can be customised through config files, located in ~/.config/youtube-tui on Linux or %APPDATA%\youtube-tui on Windows, 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.

Dependency-free*

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.

Powerful

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

  • View information about channels, playlists and videos
  • Use search filters to sort and filter search results
  • Save browsing history
  • Embedded audio/music player

It also includes features like:

  • Vim-like commands
  • Mouse support
  • Extensible keybindings system
  • Offline library
  • Subscriptions

TODO

  • [URGENT] Replace the no-longer-going-to-compile 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.

  • Git like command line to improve on yt-dlp - make changes to existing downloaded playlists instead of redownloading the entire thing.
  • Channel caching and bookmarking.
  • Selecting item on channel list moves focus to feed items.

How to contribute

You will need a general knowledge of the Rust programming language, and the ability to understand my spaghetti.

  1. Open an issue to make sure nobody else is working on the same feature
  2. Write code
  3. Open a pull request
  4. Get merged?

Or just fix that typo in README -_-

cli
rust
rust-lang
terminal
terminal-based
terminal-user-interface
tui
youtube
youtube-dl

Siriusmart/youtube-tui

An aesthetically pleasing YouTube TUI written in Rust

Rust

1,163

178 commits

updated May 29, 2026

See the code

README

Read more in the user manual (including installation guide and documentation).

Overview

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. Supports Linux and Windows.

It is like an app launcher, it launches other programs to do the heavy lifting (for example, mpv for playing videos).

It also has an embedded mpv music player, but that can be disabled in compile time.

Consider regenerating config files on updates to allow new features.

Customisable

The YouTube TUI can be customised through config files, located in ~/.config/youtube-tui on Linux or %APPDATA%\youtube-tui on Windows, 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.

Dependency-free*

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.

Powerful

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

  • View information about channels, playlists and videos
  • Use search filters to sort and filter search results
  • Save browsing history
  • Embedded audio/music player

It also includes features like:

  • Vim-like commands
  • Mouse support
  • Extensible keybindings system
  • Offline library
  • Subscriptions

TODO

  • [URGENT] Replace the no-longer-going-to-compile 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.

  • Git like command line to improve on yt-dlp - make changes to existing downloaded playlists instead of redownloading the entire thing.
  • Channel caching and bookmarking.
  • Selecting item on channel list moves focus to feed items.

How to contribute

You will need a general knowledge of the Rust programming language, and the ability to understand my spaghetti.

  1. Open an issue to make sure nobody else is working on the same feature
  2. Write code
  3. Open a pull request
  4. Get merged?

Or just fix that typo in README -_-

cli
rust
rust-lang
terminal
terminal-based
terminal-user-interface
tui
youtube
youtube-dl

Project health

crates.io

Latest release

0.9.4 · Mar 17, 2026

Releases this year

2

Significant stargazers

Kenji Berthold

126 followers · starred Jun 2022

diniamo

25 followers · starred Dec 2025

秀吉

270 followers · starred Mar 2026

Bart Brouns

131 followers · starred Mar 2025