The terminal toolkit for YouTube.
Download originals in any quality with zero re-encoding, extract MP3s, and pull clean transcripts. Terminal or desktop app.
Everything the download sites do, minus the download sites.
Nothing gets re-encoded
krosztube grabs the exact streams YouTube serves and merges them with an ffmpeg stream copy. What the uploader encoded is what lands on your disk.
MP3 in one flag
krosztube audio -b 320 takes the best audio stream and hands you a clean MP3.
Streams to mpv or VLC
krosztube play opens any video instantly, full quality, no file saved. Add --audio for radio mode.
Video, but make it ANSI
play --ascii renders the actual video as truecolor half-blocks in your terminal.
Binaries handled for you
First run downloads a checksum-verified yt-dlp and a static ffmpeg for your OS. When YouTube breaks things, krosztube update fixes them.
The whole script, as text.
Transcripts come from YouTube's own captions: free, instant, no API keys. Auto-caption noise is deduplicated and reflowed into readable paragraphs.
Me at the zoo
Channel: jawed · Duration: 00:19
All right, so here we are, in front of the elephants. The cool thing about these guys is that they have really, really long trunks, and that is pretty much all there is to say.
Also a typed library.
Every command is a plain async function with progress callbacks, AbortSignal support and typed errors. The CLI is just its first consumer.
import { download, getTranscript, renderTranscript } from 'krosztube';
const { files } = await download('https://youtu.be/jNQXAC9IVRw', {
quality: 1080,
container: 'original',
onProgress: (e) => console.log(e.phase, e.percent),
});
const transcript = await getTranscript('https://youtu.be/jNQXAC9IVRw');
console.log(renderTranscript(transcript, 'md'));Eight commands, no menus.
download
Videos or playlists at any quality, stream-copied
clip
Grab a section, cropped to 9:16 or 16:9 for editing
audio
MP3 extraction from 64 to 320 kbit/s
transcript
Captions as clean txt, markdown, SRT or VTT
play
Stream via mpv or VLC, radio mode, ASCII mode
info
Title, channel, duration, views, JSON output
formats
Every available stream in one table
update
Refresh yt-dlp when YouTube changes things
doctor
Check binaries, players and the cache dir
Prefer a window?
The desktop app does everything the CLI does: paste a link, see what it is, pick a quality, and go. Downloads run on your machine, same as the terminal version.
The Windows installer sets the app up for your account, so it needs no administrator rights. Nothing here is code signed, so SmartScreen and Gatekeeper warn the first time: on Windows choose More info, then Run anyway.
Free, and staying that way.
No accounts, no paywalls, no ads. If krosztube saves you time and you feel like it, a tip keeps independent tools like this maintained.
Sponsor on GitHubOne install away.
Node 20+, Windows, macOS and Linux.