Project 02 Python · TUI · Whisper

Fun language learning without distractions.

A terminal YouTube client for only the channels you follow: no recommendations, no autoplay. Hebrew videos get word-by-word English subtitles.

Year2026
LanguagesHebrew → English
Speech modelivrit-ai Whisper large-v3 turbo
InterfaceTextual TUI · Python
(01) Why

YouTube is too good at keeping you there. Moving it into the terminal (an explicit channel list, explicit picks, explicit downloads) means the platform stops choosing for you. Add on-demand subtitle translation and every session becomes intentional, and doubles as language practice.

The app
01 — Browse

Only the channels you chose.

Your subscriptions are a short list in main.py, nothing recommended and nothing extra. The Textual interface shows channels on the left, the latest 30 videos in the middle (titles translated to English) and a thumbnail with info on the right.

Pick a video, or paste any YouTube link, and it is queued: downloaded with yt-dlp, transcribed, translated and saved. A live preview of the subtitles appears at the bottom while it works.

jk move ⏎ download + translate D download only u paste a link p play s settings t light / dark
(02) The pipeline

Six steps, all cached.

  1. 01

    Download

    yt-dlp pulls the video from a channel pick or a pasted link.

  2. 02

    Whisper

    faster-whisper runs locally on the GPU with ivrit-ai's Hebrew fine-tune, giving a timestamp for every word. Falls back to the CPU.

  3. 03

    Translate

    Batched Google Translate for each line, plus optional OpenAI for context-aware glosses of every word.

  4. 04

    Subs

    Hand-laid-out ASS subtitles, rendered by libass, that build up word by word.

  5. 05

    Save

    An .mkv with soft, toggleable subs and no re-encode, or burned into an .mp4.

  6. 06

    Cloud

    One key pushes the finished video to iCloud with rclone, ready on the phone.

Transcripts and translations are cached per video, so switching subtitle settings re-renders in seconds without running Whisper again.

Every word,
as it's spoken.

when allkeshekal
pooraniyim
in the worldba'olam
notlo
I will reachaspiko
werehayu
doosim
Subtitle preview
02 — Subtitles that teach

Meaning on top, sound underneath.

Like YouTube captions, but each Hebrew word becomes its own column that appears the moment it is spoken, left to right. The English meaning sits on top, how it sounds sits underneath, and the word being spoken glows gold.

The pronunciation comes from Dicta Nakdan vowel points, so מוח reads moach, not "much". The Hebrew letters, vowel points, a full-sentence line and right-to-left order can all be switched on in the settings.

(03) Stack

Python. yt-dlp. faster-whisper.
Textual. FFmpeg. libass.

Source

The full code lives on GitHub.