MCPcopy Index your code
hub / github.com/KrishnaSSH/gophertube

github.com/KrishnaSSH/gophertube @v2.8.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.8.2 ↗ · + Follow
82 symbols 181 edges 12 files 12 documented · 15%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

GopherTube Logo

GopherTube

Go License Platform

Release Downloads Stars

A simple terminal YouTube client for searching and watching videos using yt-dlp and mpv.


Table of Contents

Overview

GopherTube is a tui based youtube client. It scrapes and parses the youtube website to get the metadate and uses mpv to play videos. The ui is built with bubbletea, and is keyboard driven.

Screenshots

Additional Demo 2

main menu Additional Demo 2

searching for videos Additional Demo 2

video plays in mpv

Demo Video
▶ Watch the demo video

Features

  • Fast YouTube search (scrapes YouTube directly, no API key needed)
  • Play videos with mpv
  • Minimal terminal UI (fzf)
  • Keyboard navigation (arrows, Enter, Tab, Esc)
  • TOML config
  • Download videos with quality selection (yt-dlp)
  • Downloads menu: browse and play downloaded videos
  • Thumbnail preview in downloads menu

Who is this Project for?

  • this project is for everyone who enjoys tuis,
  • anyone who wants to watch videos while using low system resources. for example if you have an older or lowspec machine that struggles to run youtube in full web browser this app might help you cut down recourse usage.

Prerequisites


Installation

This assumes you have mpv and yt-dlp installed in your system. if not refer to this to install them first.

mpv installation yt-dlp installation

One liner:

curl -sSL https://raw.githubusercontent.com/KrishnaSSH/GopherTube/main/install.sh | bash

Arch linux

yay -S gophertube
yay -S gophertube-bin 
  • the binary version of this package is not maintained by me contact the maintainer for issues

Usage

  • Start the app: gophertube
  • Select between Search Youtube, Search Downloads, Settings, Quit. and press enter.
  • Use up down keys or j/k to move, Enter to play, Tab to load more, Esc to go back and ctrl-c to close
  • search something and mpv opens to play selected video.

Configuration

Create ~/.config/gophertube/gophertube.toml:

search_limit = 30
quality = "1080p"           # default: 1080p (options: 1080p, 720p, 480p, 360p, Audio)
downloads_path = "/home/$USER/Videos/GopherTube"  # where to save downloads
theme = "Minimal"                                 # default: Minimal (options: Minimal, Gopher, Gruvbox, etc)

Configuration Options

Key Type Default Description
search_limit int 30 Max results to fetch per page/load more.
quality string "1080p" Preferred quality or Audio for audio-only.
downloads_path string "$HOME/Videos/GopherTube" Directory to save downloads.
theme string "Minimal" Default application theme.

Roadmap

  • thumbnail support in the bubbletea rewrite

Star History

Star History Chart


💖 Support GopherTube

If you find this project useful, consider supporting its development with crypto:

BTC bc1q78ymwmf33vr33ly8rpej7cqvr6cljjcdjf3g6p
LTC ltc1qsfp4mdwwk3nppj278ayphqmkyf90xvysxp3des
ETH 0x6f786f482DDa360679791D90B7C8337655dC2199

License

GPL v3


Contributing

PRs and issues welcome.

See CONTRIBUTING.md for guidelines.


Core symbols most depended-on inside this repo

uiIndent
called by 54
internal/app/ui.go
WithMargin
called by 6
internal/app/ui.go
safeJQString
called by 4
internal/services/ytscrape.go
frame
called by 4
internal/app/tui_search.go
runMenuTea
called by 4
internal/app/tui_menu.go
runPlaybackTea
called by 3
internal/app/tui_playback.go
ApplyTheme
called by 3
internal/app/ui.go
extractVideosFromJSON
called by 2
internal/services/ytscrape.go

Shape

Function 52
Method 17
Struct 12
TypeAlias 1

Languages

Go100%

Modules by API surface

internal/app/tui_search.go19 symbols
internal/services/ytscrape.go10 symbols
internal/app/ui.go10 symbols
internal/app/modes.go9 symbols
internal/app/tui_playback.go8 symbols
internal/app/tui.go7 symbols
internal/app/tui_menu.go6 symbols
internal/app/misc.go5 symbols
internal/app/flags.go4 symbols
internal/app/app.go2 symbols
main.go1 symbols
internal/types/types.go1 symbols

For agents

$ claude mcp add gophertube \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact