An aesthetically pleasing pleasing YouTube TUI written in Rust.
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.
layouts.yml
in.config/youtube-tui
, now you can customize your screen layout- More improvements to the
render()
method (no more.clone()
used)
cargo install youtube-tui
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.
This program does not requires any dependencies, but it is suggested these three things on your system that can be launched via command:
- A video player (Defaults to
mpv
)- A terminal emulator (Defaults to
konsole
)- A YouTube downloader (Defaults to
yt-dlp
, strongly suggest NOT to useyoutube-dl
because it is now very slow)None of these dependencies are required as you can change them in config (in
commands.yml
)
youtube-tui # or path to the binary
Key | What does it do |
---|---|
Arrow/Vim keys | Move in corresponding direction |
Enter | Select/Launch |
Q | Quit the program |
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.
All config files are loacted at ~/.config/youtube-tui/
, will write documentations for that later
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
- Put hard coded options into config files
- User manual + documentations
- Go directly to a page by URL
- Vim-like commands in status bar
- Command line launch options
- Channel search and channel video sort
- Recommended videos
Guys please I need help I'm kinda bad at coding tbh, these are stuff that I need help with
- Publishing to the AUR
- Printing full resolution images to the terminal with Sixels
- ytfzf by pystardust - The TUI I used to watch YouTube, gave me an idea how this program is going to work
- Terminal Typeracer by Darrien Glasser - A very clean looking TUI for typing speed test, gave me idea on how this program should look like
- Invidious - For having a nice API for doing YouTube searches and stuff. (I made a wrapper for the API you can check it here out if you want to)
... and of course, credits to myself for not having the ability to read the docs for ytfzf and decided to make my own instead.
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