https://github.com/zemse/yt
CLI for YouTube transcripts, downloads, and metadata — for humans and AI agents
https://github.com/zemse/yt
Last synced: 18 days ago
JSON representation
CLI for YouTube transcripts, downloads, and metadata — for humans and AI agents
- Host: GitHub
- URL: https://github.com/zemse/yt
- Owner: zemse
- License: mit
- Created: 2026-05-29T19:26:31.000Z (28 days ago)
- Default Branch: main
- Last Pushed: 2026-05-29T20:56:08.000Z (28 days ago)
- Last Synced: 2026-05-29T22:13:31.006Z (28 days ago)
- Language: Rust
- Size: 57.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# yt
A small command-line tool to get a **YouTube video's transcript** — no API key, no OAuth. Also does metadata, downloads, and an LLM-analysis bundle (see `yt help`).
## Install
```sh
cargo install yt
```
## Get a transcript
```sh
yt transcript "https://www.youtube.com/watch?v=mqbyysExjfU"
```
```
[0:01] Good evening, YouTube. This is Ramesh
[0:03] Sheriff with another video log.
[0:05] Okay, guys. After
...
```
Accepts a full URL, a `youtu.be/…` link, or a bare video ID. Timestamps are shown by default — add `--no-timestamps` for plain text.
A few handy variants:
```sh
yt transcript "" --no-timestamps # plain text, no timestamps
yt transcript "" --format srt > subs.srt # subtitle file
yt transcript "" --format json # machine-readable (start/duration per line)
yt transcript "" --lang es # pick a caption language
```
> Tip: always quote the URL (the `?`/`&` confuse the shell otherwise).
## Other features
`yt` can also fetch metadata, download video/audio, extract frames, and build an LLM-ready bundle. Run:
```sh
yt help
yt help transcript # detailed flags for any subcommand
```
Quick tour: `yt info` (metadata), `yt download` / `yt audio` (needs [yt-dlp](https://github.com/yt-dlp/yt-dlp) + ffmpeg), `yt analyze` (transcript + metadata as JSON), `yt search` / `comments` / `channel` / `playlist` (need a YouTube Data API key via `yt config set api-key `).
Every command supports `--format json` (result on stdout, errors on stderr) for scripting and agents.
## License
[MIT](LICENSE)