A small, open-source CLI · v0.4.0
YouTube transcripts,
ready for your agent
Save a video’s captions as markdown. Search timestamped passages from your coding agent or terminal.
Local files. No API keys. No model downloads.
01 / Install
Choose how you want to start
Use your agent, or paste the terminal commands yourself. Both install the same CLI.
Ask your coding agent
Paste this into Pi, Codex, or Claude Code.
Install ytmd using https://gvkhosla.github.io/ytmd/llms.txt. Read the instructions and installer first. Check dependencies, ask before making system changes, and install the CLI and skill for my agent. Verify with ytmd doctor.
Already installed? Give your agent a YouTube URL and a task. No extra service or account is needed.
Use your terminal
The commands include the CLI and skills for all three agents.
macOS With Homebrew
brew install python yt-dlp
export PATH="$HOME/.local/bin:$PATH"
curl -fsSL https://raw.githubusercontent.com/gvkhosla/ytmd/v0.4.0/install.sh -o /tmp/install-ytmd.sh
sh /tmp/install-ytmd.sh --agent all
ytmd doctor
Linux With Python + pipx
First install Python 3.9+ with SQLite FTS5 and pipx using your package manager.
pipx install yt-dlp
export PATH="$HOME/.local/bin:$PATH"
curl -fsSL https://raw.githubusercontent.com/gvkhosla/ytmd/v0.4.0/install.sh -o /tmp/install-ytmd.sh
sh /tmp/install-ytmd.sh --agent all
ytmd doctor
The installer checks dependencies and release checksums. Add ~/.local/bin to your shell profile’s PATH if it isn’t there already. Install options ↗
02 / Use
Give it a video. Get useful context.
After installing, restart your agent so it discovers the skill. Then paste this prompt and replace the URL.
Save this YouTube video with ytmd. Find the passages relevant to this repository, cite their timestamps, and suggest how to apply them: [paste URL]
Or run the commands directly
These examples use a real video: Fireship’s JavaScript in 100 Seconds.
Save and read
Fetch once, keep it locally, and print the transcript.
ytmd get "https://youtu.be/DHjqpvDnNGE"See the outline
Metadata and chapters, without the full transcript.
ytmd info DHjqpvDnNGEFind a passage
Search your library and include nearby context.
ytmd search "javascript" --context 15 -n 3Read a time window
Get the relevant section, not the entire video.
ytmd show DHjqpvDnNGE --from 0:25 --to 0:45Use --json for structured output or get --plain for text without timestamps. Prefer info before dumping a long video. All commands ↗
03 / Reference
Readable by people.
Usable by agents.
The setup, commands, output format, and limits are in one plain-text file. No JavaScript or page scraping required.
Read llms.txt ↗- Storage
- SQLite is the source of truth. Markdown is a generated export. Set
YTMD_DIRto change the location. - Captions, not transcription
- Videos need available captions. Captions can contain mistakes; ytmd doesn’t transcribe audio.
- Local search, not AI answers
- Search matches words. Your agent interprets the results. No embeddings, summarizer, or paid API.
- Network access
- Fetching captions contacts YouTube. Saved content works offline. Browser cookies are only read if you explicitly request it.