A YouTube client in the terminal with thumbnails. Allows displaying images in any terminal using ueberzug, and provides access to YouTube account features with no API keys needed.
- Basic video search
- Video page with description and recommendations
- Video watch history (synced with account)
- Video Search
- Access to user history, subscriptions, watch later and saved playlists
- Recommendations (home page and video page)
- No API keys needed
- Video thumbnails, real images with Ueberzug
- Play videos with mpv
- Format options (current options: 480p, 720p, 1080p, 1440p, 2160p)
- Includes YouTube chapters in mpv
- Add and remove videos from your playlists (including Watch Later)
- Saves watch time to history
- Create and delete playlists
- Currently in "Beta" state, features are present and working but may be buggy
- UI subject to change (i.e. some parts still look ugly and I may think of a better idea)
I remade my GitHub account to change the email address, so the original repo was deleted. I just started the releases from 0 again.
Also I have changed the "scope" of the project a bit. I now plan on using yt-dlp for video playback. Originally I had coded into GoTube the ability to get the direct URL from a YouTube video, but this broke, and maintaining this isn't something I can guarantee. yt-dlp is a bit slower, but it will be more reliable.
This also means the exact watch time won't be saved back to YouTube, only that the video was watched. I would like to fix this in the future.
- Firefox
- mpv
- ueberzug
- golang
- yt-dlp
git clone https://github.com/randomcoder67/GoTube-Terminal-YouTube.git
cd GoTube-Terminal-YouTube
make
make install
Log into YouTube in Firefox. Ensure there is a ~/.mozilla/firefox/[something].default-release/
directory. This should be the default save location for the cookies file when Firefox is installed using a package manager.
gotube -h/--help/help
- Display help
gotube
- Launch onto blank page, commands can be entered to find content
gotube -s/--subscriptions
- Launch and show subscriptions
gotube -hs/--history
- Launch and show history
gotube -wl/--watchlater
- Launch and show watch later
gotube -p/-l/--playlists/--library
[playlist_id] [playlist_name] - Launch and show library (include id and name to go straight to a playlist
gotube -hm/--recommendations/--home
- Launch and show home page
Once launched, the search box can be focused with /
or Tab
, and the grid can be focused with Tab
. Navigation around the grid can be done with arrow keys or vim keys. PageUp/Down, Home and End also supported. Ctrl-C
, Esc
or q
to quit. Other keyboard commands are show in the sidebar.
Commands can be entered in the search box, beginning with a /
. These are also shown in the sidebar.
- Ueberzug doesn't work on Wayland, to get the thumbnails working on Wayland, you can use the Kitty terminal and set Ueberzug to use the Kitty protocol
Planned before 1.0 release:
- Channel pages
- Chrome cookies support
- More/better handled format options
- Audio only playback
- Like/dislike videos
- Sub/unsub from channels
- Wayland support - Partially done, (for now use a terminal which support kitty image protocol and use Ueberzugpp, with config set to "kitty")
- Config file - Done
- Options menu
- Many bug fixes
- Better error handling
Future features, but not necessary for 1.0 release.
Organised into varying degrees of likelyhood:
- Cookie support for other browsers (Brave, Vivaldi, Opera etc)
- View/interact with comments
- Change order of videos in playlist
- CLI mode - use functionality in other scripts
- Video downloading TUI (frontend for yt-dlp) - Cancelled, moving this to a seperate project
- Video queue
- Text-only mode (no thumbnails, designed for ssh or console operation, can manage videos without playing them or displaying thumbnails)
- VLC support
- Search suggestions
- Alternate display mode (more detail vs current compact view)
- Support for other sites (Twitch, Kick, Rumble etc)
- Management of your channel
- Support for other image display protocols (Kitty for example)
- GUI version
- Windows version
- MacOS version