{"id":29487584,"url":"https://github.com/krishnassh/gophertube","last_synced_at":"2026-04-14T06:06:43.988Z","repository":{"id":304310563,"uuid":"1018413020","full_name":"KrishnaSSH/gophertube","owner":"KrishnaSSH","description":"A modern terminal user interface for searching and watching  YouTube videos using mpv and chafa","archived":false,"fork":false,"pushed_at":"2026-04-12T00:57:50.000Z","size":3695,"stargazers_count":382,"open_issues_count":5,"forks_count":19,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-12T02:25:31.823Z","etag":null,"topics":["chafa","go","golang","terminal-based","terminal-ui","youtube","youtube-dl"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/KrishnaSSH.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-07-12T07:51:28.000Z","updated_at":"2026-04-12T00:57:54.000Z","dependencies_parsed_at":"2025-07-12T10:05:51.104Z","dependency_job_id":"684a4a63-f66a-4b5a-a293-a5247b92012a","html_url":"https://github.com/KrishnaSSH/gophertube","commit_stats":null,"previous_names":["krishnassh/gophertube"],"tags_count":17,"template":false,"template_full_name":null,"purl":"pkg:github/KrishnaSSH/gophertube","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KrishnaSSH%2Fgophertube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KrishnaSSH%2Fgophertube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KrishnaSSH%2Fgophertube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KrishnaSSH%2Fgophertube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KrishnaSSH","download_url":"https://codeload.github.com/KrishnaSSH/gophertube/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KrishnaSSH%2Fgophertube/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31784255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chafa","go","golang","terminal-based","terminal-ui","youtube","youtube-dl"],"created_at":"2025-07-15T09:13:40.237Z","updated_at":"2026-04-14T06:06:43.982Z","avatar_url":"https://github.com/KrishnaSSH.png","language":"Go","funding_links":[],"categories":["\u003ca name=\"viewers\"\u003e\u003c/a\u003eViewers","Table of Contents"],"sub_categories":[],"readme":"\u003cdiv align=\"left\"\u003e\n  \u003cimg src=\".assets/logo.png\" alt=\"GopherTube Logo\" width=\"300\" /\u003e\n\u003c/div\u003e\n\n# GopherTube\n\n[![Go Version](https://img.shields.io/badge/Go-1.21+-00ADD8?style=for-the-badge\u0026logo=go\u0026logoColor=white)](https://golang.org/dl/)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg?style=for-the-badge)](https://www.gnu.org/licenses/gpl-3.0)\n[![Platform](https://img.shields.io/badge/Platform-Linux%20%7C%20macOS-lightgrey?style=for-the-badge)](https://github.com/KrishnaSSH/GopherTube)\n[![Last Commit](https://img.shields.io/github/last-commit/KrishnaSSH/GopherTube?style=for-the-badge)](https://github.com/KrishnaSSH/GopherTube/commits/main)\n[![Contributors](https://img.shields.io/github/contributors/KrishnaSSH/GopherTube?style=for-the-badge)](https://github.com/KrishnaSSH/GopherTube/graphs/contributors)\n[![Code Size](https://img.shields.io/github/languages/code-size/KrishnaSSH/GopherTube?style=for-the-badge)](https://github.com/KrishnaSSH/GopherTube)\n[![Issues](https://img.shields.io/github/issues/KrishnaSSH/GopherTube?style=for-the-badge)](https://github.com/KrishnaSSH/GopherTube/issues)\n[![PRs](https://img.shields.io/github/issues-pr/KrishnaSSH/GopherTube?style=for-the-badge)](https://github.com/KrishnaSSH/GopherTube/pulls)\n[![Stars](https://img.shields.io/github/stars/KrishnaSSH/GopherTube?style=for-the-badge)](https://github.com/KrishnaSSH/GopherTube/stargazers)\n\n[![Release](https://img.shields.io/github/v/release/KrishnaSSH/GopherTube?display_name=tag\u0026sort=semver\u0026style=for-the-badge)](https://github.com/KrishnaSSH/GopherTube/releases)\n[![Downloads](https://img.shields.io/github/downloads/KrishnaSSH/GopherTube/total?style=for-the-badge)](https://github.com/KrishnaSSH/GopherTube/releases)\n[![Go Report Card](https://goreportcard.com/badge/github.com/KrishnaSSH/GopherTube?style=for-the-badge)](https://goreportcard.com/report/github.com/KrishnaSSH/GopherTube)\n[![AUR](https://img.shields.io/aur/version/gophertube?style=for-the-badge\u0026label=AUR)](https://aur.archlinux.org/packages/gophertube)\n\n\u003c!-- Discord Button --\u003e\n\u003cp align=\"left\"\u003e\n  \u003ca href=\"https://discord.gg/TqYvzbGJzb\" target=\"_blank\"\u003e\n    \u003cimg src=\"https://invidget.switchblade.xyz/TqYvzbGJzb\" alt=\"Join our Discord\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nA simple terminal YouTube client for searching and watching videos using [yt-dlp](https://github.com/yt-dlp/yt-dlp) and [mpv](https://mpv.io/).\n\n\n---\n\n## Table of Contents\n\n- [Overview](#overview)\n- [Features](#features)\n- [Who is this Project for?](#who-is-this-project-for)\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n  - [Quick Install](#installation)\n  - [Manual Installation](#installation)\n- [Usage](#usage)\n  - [Keyboard Shortcuts](#keyboard-shortcuts)\n- [Configuration](#configuration)\n  - [Configuration Options](#configuration-options)\n- [Troubleshooting](#troubleshooting)\n- [FAQ](#faq)\n- [Roadmap](#roadmap)\n- [Star History](#star-history)\n- [Contributing](#contributing)\n\n## Overview\n\nGopherTube is a tui based youtube client. It scrapes and parses the youtube website to get the metadate and uses [mpv](https://mpv.io/) to play videos. The ui is built with bubbletea, and is keyboard driven.\n\n**Screenshots**\n\n\u003cp align=\"left\"\u003e\n  \u003cimg src=\".assets/demo1.png\" alt=\"Additional Demo 2\" style=\"width:100%;max-width:900px;min-width:300px;\" /\u003e\n  \u003cbr\u003e\u003cem\u003emain menu\u003c/em\u003e\n  \u003cimg src=\".assets/demo2.png\" alt=\"Additional Demo 2\" style=\"width:100%;max-width:900px;min-width:300px;\" /\u003e\n  \u003cbr\u003e\u003cem\u003esearching for videos\u003c/em\u003e\n  \u003cimg src=\".assets/demo3.png\" alt=\"Additional Demo 2\" style=\"width:100%;max-width:900px;min-width:300px;\" /\u003e\n  \u003cbr\u003e\u003cem\u003evideo plays in mpv\u003c/em\u003e\n\u003c/p\u003e\n\n**Demo Video**  \n[▶ Watch the demo video](https://github.com/user-attachments/assets/5b1a7f52-c5c3-405c-ae0a-7f113c3978b8)\n\n\n## Features\n\n- **Fast YouTube search** (scrapes YouTube directly, no API key needed)\n- Play videos with [mpv](https://mpv.io/)\n- Minimal terminal UI (fzf)\n- Keyboard navigation (arrows, Enter, Tab, Esc)\n- TOML config\n- **Download videos** with quality selection ([yt-dlp](https://github.com/yt-dlp/yt-dlp))\n- **Downloads menu**: browse and play downloaded videos\n- **Thumbnail preview** in downloads menu\n\n## Who is this Project for?\n- this project is for everyone who enjoys tuis,\n- 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.\n---\n\n## Prerequisites\n\n- [Go 1.21+](https://go.dev/dl/)\n- [mpv](https://mpv.io/) (media player)\n- [chafa](https://hpjansson.org/chafa/) (terminal image preview)\n- [yt-dlp](https://github.com/yt-dlp/yt-dlp) (YouTube downloader)\n\nInstall dependencies:\n\n```bash\n# Ubuntu/Debian\nsudo apt install mpv chafa\npip install -U yt-dlp\n\n# macOS\nbrew install mpv chafa yt-dlp\n\n# Arch Linux (Aur is having shasum issues install it from the script)\n\nyay -S gophertube\nor \nyay -S gophertube-bin # for direct binary downloads\n```\n\n---\n\n## Installation\n\n**Quick Install (One-liner):**\n```bash\ncurl -sSL https://raw.githubusercontent.com/KrishnaSSH/GopherTube/main/install.sh | bash\n```\n\n**Manual Installation:**\n```bash\ngit clone https://github.com/KrishnaSSH/GopherTube.git\ncd GopherTube\ngo build -o gophertube\n./gophertube\n```\n---\n\n## Usage\n\n- Start the app: `gophertube`\n- Select between Search Youtube, Search Downloads, Settings, Quit. and press enter.\n- Use ↑/↓ or j/k to move, Enter to play, Tab to load more, Esc to go back to search\n- mpv opens to play the selected video\n\n\n---\n\n## Configuration\n\nCreate `~/.config/gophertube/gophertube.toml`:\n\n```toml\nsearch_limit = 30\nquality = \"1080p\"           # default: 1080p (options: 1080p, 720p, 480p, 360p, Audio)\ndownloads_path = \"/home/$USER/Videos/GopherTube\"  # where to save downloads\ntheme = \"Minimal\"                                 # default: Minimal (options: Minimal, Gopher, Gruvbox, etc)\n```\n\n### Configuration Options\n\n| Key             | Type   | Default                                   | Description                                  |\n|------------------|--------|-------------------------------------------|----------------------------------------------|\n| search_limit     | int    | 30                                        | Max results to fetch per page/load more.     |\n| quality          | string | \"1080p\"                                   | Preferred quality or `Audio` for audio-only. |\n| downloads_path   | string | \"$HOME/Videos/GopherTube\"                | Directory to save downloads.                 |\n| theme            | string | \"Minimal\"                                 | Default application theme.                   |\n\n---\n\n## Troubleshooting\n\n- __mpv not launching__: verify mpv is installed and accessible from terminal.\n- __No thumbnails__: ensure `chafa` is installed; some terminals may not support images.\n- __yt-dlp errors__: update yt-dlp to the latest version.\n\n## FAQ\n\n- __Does this use the YouTube API?__ No, it scrapes the website. API key is not required.\n- __Can I play audio only?__ Yes. Choose \"Listen\" or set quality to `Audio`.\n- __Where are files downloaded?__ See `downloads_path` in config.\n\n## Roadmap\n\n- Configurable keybindings\n- thumbnail support in the bubbletea rewrite\n\n## Star History\n\n\u003ca href=\"https://www.star-history.com/#KrishnaSSH/GopherTube\u0026Timeline\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=KrishnaSSH/GopherTube\u0026type=Timeline\u0026theme=dark\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=KrishnaSSH/GopherTube\u0026type=Timeline\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=KrishnaSSH/GopherTube\u0026type=Timeline\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n---\n\n\u003c!-- Donation Box --\u003e\n\u003cdiv align=\"left\"\u003e\n  \u003ch3\u003e💖 Support GopherTube\u003c/h3\u003e\n  \u003cp\u003eIf you find this project useful, consider supporting its development with crypto:\u003c/p\u003e\n  \u003ctable\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"https://img.shields.io/badge/BTC-donate-orange?style=for-the-badge\u0026logo=bitcoin\u0026logoColor=white\" alt=\"BTC\" /\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003ebc1q78ymwmf33vr33ly8rpej7cqvr6cljjcdjf3g6p\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"https://img.shields.io/badge/LTC-donate-blue?style=for-the-badge\u0026logo=litecoin\u0026logoColor=white\" alt=\"LTC\" /\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003eltc1qsfp4mdwwk3nppj278ayphqmkyf90xvysxp3des\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n    \u003ctr\u003e\n      \u003ctd\u003e\u003cimg src=\"https://img.shields.io/badge/ETH-donate-purple?style=for-the-badge\u0026logo=ethereum\u0026logoColor=white\" alt=\"ETH\" /\u003e\u003c/td\u003e\n      \u003ctd\u003e\u003ccode\u003e0x6f786f482DDa360679791D90B7C8337655dC2199\u003c/code\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n\n## License\n\n[![GPL v3](https://www.gnu.org/graphics/gplv3-127x51.png)](LICENSE)\n\n\n---\n\n## Contributing\n\nPRs and issues welcome. \n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines. \n\n---\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrishnassh%2Fgophertube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkrishnassh%2Fgophertube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkrishnassh%2Fgophertube/lists"}