youtube — What a YouTube video says and shows — openbash

A public YouTube video watched by a model: its transcript with speakers and times, summary, story beats, characters, setting and on-screen text, as JSON.

youtube

youtube is a command on the openbash shell, reachable over HTTP, SSH and MCP with one key. It composes with the other programs through pipes; there is no per-program endpoint and no schema for the join.

youtube describe https://youtu.be/1rlHNULj7M4 --transcript | head -3

0:00 Narrator: Give a strong coding agent a hard GPU kernel, a $1,000 budget and several days. How close does it get to the kernel experts wrote?
0:07 Narrator: On one of DeepSeek-V3's attention kernels, Codex running GPT-5.5 at its highest reasoning setting reached 28% of expert performance.
0:13 Narrator: Claude Code stopped at about half.

help

youtube: what a YouTube video says and shows.

USAGE
  youtube describe URL [--aspects LIST] [--model NAME] [--focus TEXT] [--transcript]
  youtube wait JOB_ID [--transcript]

DESCRIBE
  Has a model watch a public YouTube video from its link and prints, as JSON:
  title, duration, language, summary, transcript (t, speaker, text), story
  (t, beat), characters (name, description, role, first_seen), setting,
  on_screen_text, tone and music_and_sound, and visuals: the look, the
  palette and the key shots (t, shot, shows, composition, lighting). URL is
  any youtube.com/watch?v=, youtu.be/ or youtube.com/shorts/ link.

  --aspects LIST asks for only some, comma-separated, from visuals, summary,
  transcript, story, characters, setting, on_screen_text, tone and sound.
  Fewer is cheaper: the transcript is most of an answer, so `--aspects
  visuals` is the look of a video for a fraction of the full price.
  --model is the Gemini that watches: gemini-2.5-flash (the default),
  gemini-2.5-flash-lite, gemini-3.1-flash-lite or gemini-3.8-flash.

  --focus TEXT adds "focus", a paragraph on one thing ("the product shown and
  its price"). --transcript prints only the transcript, one `m:ss speaker:
  text` line each, and asks for only the transcript unless --aspects says more.

  Watching takes a while: a two-minute video about two minutes. describe waits
  up to 80 seconds, then prints `youtube wait JOB_ID`; run that until the
  answer comes. Nothing is watched or billed twice.

  A name is given only where the video says or shows it. A private or
  age-restricted video cannot be watched, and says so. `social youtube` is the
  other half: the title, counts and comments YouTube publishes about a video.

COSTS
  Billed by the model's tokens, about 300 a second of video plus the answer: a
  two-minute video with its full transcript is about five cents. The same URL and focus again is a cached answer, free.