graph TD
%% Node Definitions
URL([🔗 YouTube URL])
YTDL[📦 yt-dlp Engine]
CV2[🖼️ OpenCV Decoder]
FF[🔊 FFmpeg Engine]
RNDR{🎨 Render Mode}
BLK[▀ Block Mode]
ASC[🔡 ASCII Mode]
TERM[🖥️ Terminal Screen]
%% Connections
URL --> YTDL
YTDL -->|Video| CV2
YTDL -->|Audio| FF
CV2 --> RNDR
RNDR -->|High Res| BLK
RNDR -->|Classic| ASC
BLK --> TERM
ASC --> TERM
FF -->|Synced| TERM
%% Styling
style URL fill:#E1F5FE,stroke:#01579B,stroke-width:2px,color:#000
style YTDL fill:#ECEFF1,stroke:#455A64,color:#000
style CV2 fill:#E8EAF6,stroke:#3F51B5,color:#000
style FF fill:#F1F8E9,stroke:#558B2F,color:#000
style RNDR fill:#FFF9C4,stroke:#FBC02D,color:#000
style TERM fill:#263238,stroke:#00BCD4,stroke-width:3px,color:#fff
style BLK fill:#E0F7FA,stroke:#006064,color:#000
style ASC fill:#F5F5F5,stroke:#212121,color:#000
- 🎨 Block Mode (
▀): Utilizes half-blocks to achieve double the vertical resolution and incredible color accuracy. - 🚀 Stream Direct: No disk space? No problem. Stream directly from YouTube servers to your terminal.
- 🔊 Sonic Sync: Perfectly aligned background audio using multi-threaded FFmpeg processing.
- ⚡ Turbo Playback: Adjust playback speed on-the-fly from 0.25x to 3.0x with zero lag.
- 📐 Smart Scaling: Automatically detects and scales video frames to fit your terminal window.
Ensure you have Python 3.8+ and Pip installed.
git clone https://github.com/idusha-manaka/TubeASCII.git
cd TubeASCII
pip install -r requirements.txtDownload ffmpeg.exe and ffplay.exe from this link and place them in the project root folder.
python main.py| Command | Key | Action |
|---|---|---|
| Play / Pause | Space | Toggle video playback |
| Increase Speed | → | Speed up the stream (+0.25x) |
| Decrease Speed | ← | Slow down the stream (-0.25x) |
| Adjust Sync | [ ] | Manually fix Audio/Video delay |
| Abort | Q | Quit the player |
- Extraction:
yt-dlp(The world's best video downloader/extractor) - Vision:
OpenCV(High-performance frame processing) - Rendering:
Custom Python Engine(ANSI/VT100 Color virtualization) - Audio:
FFmpeg Essentials(The industry standard for media processing)
- High-Resolution Block Mode
- Dynamic Audio Synchronization
- Direct YouTube Playlist Support
- Cross-Platform Binary Support (.exe / .app)
If you find this project cool, give it a star! It helps more developers discover the magic.
Crafted with 💖 by Idusha Manaka