YouTube TUI

An aesthetically pleasing pleasing YouTube TUI written in Rust.

Overview

YouTube TUI is a text user interface that provides a clean UI for browsing YouTube content. It can perform searches and view channels in the terminal, play videos and playlists with external programs like MPV. Rust is used in writing this program for its better performance and ease of maintaining.

This program is being actively developed and there will be new features coming up every commit.

Screenshot

User manual

YouTube TUI user manual

What's new in this commit

Installation

Install from crates.io

bash cargo install youtube-tui

Clone from GitHub and build

bash git clone https://github.com/sirusmart/youtube-tui && cd youtube-tui && cargo build --release

The binary is located at ./target/release/youtube-tui, go move it to other locations so that you can launch the program with youtube-tui command.

Dependencies

This program does not requires any dependencies, but it is suggested these three things on your system that can be launched via command:

  1. A video player (Defaults to mpv)
  2. A terminal emulator (Defaults to konsole)
  3. A YouTube downloader (Defaults to yt-dlp, strongly suggest NOT to use youtube-dl because it is now very slow)

None of these dependencies are required as you can change them in config (in commands.yml)

Usage

To launch

bash youtube-tui # or path to the binary

Movement

|Key|What does it do| |---|---| |Arrow/Vim keys|Move in corresponding direction| |Enter|Select/Launch| |Q|Quit the program|

Check the user manual here

Note

These keys only work when nothing is selected. When something is selected, your key presses are passed directly to the "object" you've selected. Press escape (Esc) if you want to deselect.

Config

All config files are loacted at ~/.config/youtube-tui/, will write documentations for that later

Known issues

Missing hash key: "selected"

When viewing the playlists page in a channel, it gives you Missing hash key: "selected". This is because Invidious was not able to fetch the requested playlists.

You should also see an error when visiting this URL

Here's the opened issue

Todo (First piority on top)

Help needed

Guys please I need help I'm kinda bad at coding tbh, these are stuff that I need help with

Credits

... and of course, credits to myself for not having the ability to read the docs for ytfzf and decided to make my own instead.

Anything Missing?

If there is a bug or you got a nice idea on what can be added to this program, feel free to open a GitHub issue. Thx :D