whatisgithub

What is termtube?

anshupriyan/termtube — explained in plain English

Analysis updated 2026-05-18

16PythonAudience · developerComplexity · 2/5LicenseSetup · easy

In one sentence

A command line tool that plays YouTube videos as colored ASCII or half block art directly in your terminal with synced audio.

Mindmap

mindmap
  root((TermTube))
    What it does
      Streams YouTube in terminal
      Renders video as text art
      Syncs audio playback
    Tech stack
      Python
      FFmpeg
      yt-dlp
    Use cases
      Watch videos over SSH
      Play videos without a GUI
      Experiment with terminal art
    Audience
      Developers
      Terminal enthusiasts
    Rendering styles
      Halfblock truecolor
      ASCII density art

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

Watch a YouTube video over an SSH session with no graphical interface.

USE CASE 2

Play videos as retro looking ASCII art in a terminal for fun or demos.

USE CASE 3

Test terminal rendering performance across different font sizes and column counts.

USE CASE 4

Run a lightweight video player on a machine without a desktop environment.

What is it built with?

PythonFFmpegyt-dlpffplay

How does it compare?

anshupriyan/termtube920linjerry-stack/capital-studioadya84/ha-world-cup-2026
Stars161616
LanguagePythonPythonPython
Setup difficultyeasyeasyeasy
Complexity2/53/52/5
Audiencedeveloperresearchergeneral

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

How do you get it running?

Difficulty · easy Time to first run · 5min

The quick start script downloads Python and FFmpeg automatically, the pip install path requires ffmpeg and ffplay already on your PATH.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

So what is it?

TermTube is a command line tool that lets you watch YouTube videos directly inside your terminal, with the video rendered as colored characters and the audio playing in sync. It works on Windows, Linux, and macOS. There are two rendering styles. The halfblock style uses Unicode half block characters to pack two vertical pixels into each terminal cell, giving a high density, full color result. The ascii style converts each video frame into colored ASCII art using a configurable set of characters ordered from light to dark, so it still preserves the original colors while looking more like classic text art. Audio is streamed alongside the video and kept synchronized using a clock based system that tracks and corrects drift over time. The tool automatically detects your terminal size to fit as much detail as possible without wrapping or scrolling, and it automatically reconnects if YouTube briefly throttles or drops the stream. Since video is rendered using terminal character cells rather than actual pixels, image quality depends heavily on your terminal's font size: a smaller font gives more cells and a sharper picture, while a larger font gives fewer cells and a blockier one. You can also override the automatic sizing with a column count option. Getting started requires no manual installation. You download or clone the project and run a provided script, play.bat on Windows or play.sh on Linux and macOS, which automatically downloads and configures Python, FFmpeg, and other dependencies on first launch. After that you simply paste a YouTube URL and pick a rendering style. There is also a standard installable command line version using pip, which requires FFmpeg and ffplay to already be available on your system. Command line options let you control the output width in columns, target frame rate, rendering style, and the ASCII density ramp used for the ascii mode. Under the hood it relies on yt-dlp to fetch the video, FFmpeg to stream it, and ffplay for audio. TermTube is released under the MIT license.

Copy-paste prompts

Prompt 1
Run play.sh from TermTube to automatically set up Python, FFmpeg, and dependencies, then play a YouTube video.
Prompt 2
Install TermTube as a CLI with pip and play a YouTube URL using the halfblock rendering style.
Prompt 3
Explain how TermTube keeps audio synchronized with the rendered video frames.
Prompt 4
Show me how to tune TermTube's --cols and --fps options for smoother playback on a slow terminal.

Frequently asked questions

What is termtube?

A command line tool that plays YouTube videos as colored ASCII or half block art directly in your terminal with synced audio.

What language is termtube written in?

Mainly Python. The stack also includes Python, FFmpeg, yt-dlp.

What license does termtube use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice.

How hard is termtube to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is termtube for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.