ytui offers a wide range of features designed to enhance
your YouTube experience directly from the terminal. Some of the key features include:
-
YouTube Search and Playback: Search YouTube videos using keywords or retrieve videos from your history or subscribed channels, and play them directly in your local terminal video player.
-
Fuzzy Finder Integration: Built-in fuzzy finder interface (powered by go-fuzzyfinder) for fast and efficient navigation through video search results. This makes it easy to browse through large lists of videos and quickly select the one you want to play.
-
Video History Management: Keep track of the videos you've watched using
ytui. The tool logs your watch history in thewatched_history.jsonfile for quick reference later. -
Channel Subscription Support: Search for videos from your subscribed YouTube channels or specify channels in the configuration file.
-
OAuth Authentication: Securely authenticate with YouTube using OAuth to access your personal subscriptions. The tool leverages the YouTube Data API to fetch data related to your account.
-
Terminal-Based Interface: Clean, intuitive terminal UI that integrates seamlessly with your command-line workflow.
-
Customization: Adjust settings through a configuration file located in
$HOME/.config/ytui/config.yamlto tailor the tool to your preferences, such as channel subscriptions and OAuth credentials.
These features make ytui a powerful and convenient way to interact
with YouTube directly from your terminal, streamlining video searching
and viewing for command-line users.
- Go 1.24.0+ (for building from source)
- mpv - Media player for video playback
- yt-dlp - YouTube video downloader
You must have mpv and yt-dlp installed on your system.
To install ytui, follow the instructions for your operating system.
Ensure that you have the required dependencies installed.
-
Install binary
ytui runs on most major platforms. If your platform isn't listed below, please [open an issue][issues].
Please note that binaries are available on the release pages, you can extract the archives for your platform and manually install it.
Linux / WSL
You can use the following package manager:
Distribution Repository Instructions Any [Homebrew] brew install banh-canh/ytui/ytuiArch Linux [AUR] yay -S ytui-binFrom source:
git clone https://github.com/Banh-Canh/ytui.git cd ytui go build -o ytui ./main.go sudo mv ytui /usr/local/bin/macOS
You can use the following package manager:
Distribution Repository Instructions Any [Homebrew] brew install banh-canh/ytui/ytuiFrom source:
git clone https://github.com/Banh-Canh/ytui.git cd ytui go build -o ytui ./main.go mv ytui /usr/local/bin/
For detailed usage instructions and command reference, see the documentation.
# Start the interactive YouTube browser
ytui browse
# Or simply run without subcommands (defaults to browse)
ytui
# Get help
ytui --help
ytui browse --help↑↓/jk: Navigate items←→/PgUp/PgDn: Page navigationg/G: Jump to top/bottomEnter: Select/play itemh/Backspace: Go backt: Open thumbnail in external viewers: Sort by date (subscriptions/history only)p/Space: Play videod: Download video/: Searchq: Quit
The configuration file for ytui is located at $HOME/.config/ytui/config.yaml.
This file allows you to specify which channels to subscribe to and your OAuth credentials.
channels:
local: false
subscribed:
- UCTt2AnK--mnRmICnf-CCcrw
- UCutXfzLC5wrV3SInT_tdY0w
download_dir: ~/Videos/YouTube
history:
enable: true
invidious:
proxy: ''
instance: invidious.jing.rocks
loglevel: info
youtube:
clientid: fsdfsdf
secretid: ffsdfsdf-
local: false- When set totrue,ytuiwill use the channels specified in the configuration file for subscribed channels. If you prefer to use your Youtube user-subscribed channels, set this tofalse. -
channels.subscribed: []is a list of channel Ids. To be used withlocal: true. -
OAuth - You need to enable OAuth authentication with YouTube to access your subscribed channels. Ensure that your
clientidandsecretidare properly configured.The following scope is also required:
https://www.googleapis.com/auth/youtube.readonly -
invidious.proxy:- Must be set with eithersocks5://<socks5_proxy>:1234orhttp://<http_proxy>:4567. Leave empty to disable.
watched_history.json- This file, located in$HOME/.config/ytui/, logs each video watched usingytuiwhen querying the history.
-
Start the Interactive Browser:
ytui browse # or simply ytui -
Browse Different Content Types:
- Launch ytui and use the menu to navigate between:
- Search for videos using
/within the TUI - Browse your subscribed channels
- View your watch history
- Access downloaded videos
- Search for videos using
- Launch ytui and use the menu to navigate between:
If you encounter any issues while using this application, you can check the log file for detailed error messages and troubleshooting information. The log file is located at:
$HOME/.config/ytui/ytui.log
-
Open a terminal: Use your terminal application to navigate to the logs.
-
Display the log: Run the following command to view the log content:
cat $HOME/.config/ytui/ytui.logThis will print the log file's contents directly to your terminal.
-
Tail the log (Optional): If the application is still running and you want to monitor log updates in real-time, you can use the
tailcommand:tail -f $HOME/.config/ytui/ytui.log -
Check for errors or warnings: Look for lines marked with
[ERROR]or[WARNING]to identify issues.
When reporting issues, please:
- Include relevant log entries from
$HOME/.config/ytui/ytui.log - Specify your operating system and ytui version
- Provide steps to reproduce the issue
- Check existing issues before creating a new one
ytui is open-source and available under the LICENCE.
For more detailed usage, you can always use ytui --help or ytui <subcommand> --help
to get more information about specific commands and flags.

