whatisgithub

What is youthub?

helpfreedom/youthub — explained in plain English

Analysis updated 2026-05-18

55PythonAudience · developerComplexity · 4/5Setup · hard

In one sentence

YouHub is a terminal-based YouTube client that shows video thumbnails as images and streams video directly, without a web browser or yt-dlp.

Mindmap

A visual breakdown will appear here once this repo is fully enriched.

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Browse YouTube as a scrollable thumbnail grid entirely inside a terminal window.

USE CASE 2

Watch videos up to 1080p at 60 frames per second without opening a browser.

USE CASE 3

Automatically skip sponsor segments during playback using SponsorBlock integration.

USE CASE 4

Sign in with a TV-style pairing code so watch history and recommendations sync to a YouTube account.

What is it built with?

PythonJavaScriptFFmpegLinux

How does it compare?

helpfreedom/youthubbhartiyashesh/purelymailcalendarbiao994/docpaws
Stars555555
LanguagePythonPythonPython
Setup difficultyhardmoderatemoderate
Complexity4/54/53/5
Audiencedevelopergeneraldeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires compiling a patched FFmpeg-based player (ffplay-yt) from source.

No license is stated in the provided text.

So what is it?

YouHub is a YouTube client that runs entirely inside a terminal window, without a web browser. It displays a scrollable grid of video thumbnails using a feature of the kitty terminal emulator that lets terminal apps show images, and plays videos up to 1080p at 60 frames per second. The project is written in Python and JavaScript, runs on Linux, and was tested on Debian 11. Instead of using the popular yt-dlp tool to fetch videos, YouHub connects to YouTube's streaming protocol directly, through a method reverse-engineered from how the official YouTube site works. This approach requires generating a "proof of origin" token that YouTube expects from real browsers, which the project does using a JavaScript library running in a simulated browser environment, without launching an actual browser. To avoid YouTube's automated-traffic detection, the project rotates through 24 different network fingerprint strategies when fetching video data. Playback goes through a custom player called ffplay-yt, which is a modified version of the open-source FFplay tool with added features: a side panel showing video recommendations, playback speed control, and two-way communication with the rest of the application over a local socket. SponsorBlock integration automatically skips sponsor segments, with a visual indicator on the progress bar. Hovering over a thumbnail in the grid shows a four-frame preview slideshow after three seconds. Logging in uses a TV-style pairing code: the user opens a YouTube page in any browser, types a short code shown in the terminal, and the app stores the resulting token locally. Watch history is also attributed to the user's YouTube account, so recommendations update based on what was watched through the client. Installation requires building ffplay-yt from source, which involves downloading FFmpeg 4.3.9 source code, patching it with the project's modified player file, and compiling it. The README walks through each step, including installing Python dependencies, Node.js packages, and the system libraries needed to build the player.

Copy-paste prompts

Prompt 1
Explain how a 'proof of origin' token is generated without launching a real browser, as this project does.
Prompt 2
Walk me through building ffplay-yt by patching and compiling FFmpeg 4.3.9 from source on Debian 11.
Prompt 3
What is SponsorBlock and how does an app decide which video segments to skip?
Prompt 4
How does the kitty terminal's image protocol let a CLI app display video thumbnails?

Frequently asked questions

What is youthub?

YouHub is a terminal-based YouTube client that shows video thumbnails as images and streams video directly, without a web browser or yt-dlp.

What language is youthub written in?

Mainly Python. The stack also includes Python, JavaScript, FFmpeg.

What license does youthub use?

No license is stated in the provided text.

How hard is youthub to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is youthub for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.