Chrome Extensions
yt-transcript-grabber
What It Does
Section titled “What It Does”You open a YouTube video. You click one button. The whole transcript, with timestamps next to each line, lands on your clipboard. Paste it anywhere — a note, a blog draft, a search prompt. The extension auto-opens YouTube’s transcript panel if it is not already open, reads it, and writes the formatted text to the clipboard. It survives YouTube’s frequent DOM changes because it does not depend on a single fragile selector chain.
When To Use
Section titled “When To Use”- Repurposing a video into writing — blog posts, social captions, summaries.
- Searching what was said in a long video without scrubbing — paste into a doc and Ctrl-F.
- Feeding a transcript to an AI for analysis, quote-pulling, or rewriting.
- Pulling your own video’s transcript to clean up captions or create chapters.
How To Install And Invoke
Section titled “How To Install And Invoke”chrome://extensions→ Developer mode on → Load unpacked.- Pick apps → yt-transcript-grabber → extension (the inner folder).
- Pin the icon to the toolbar.
- On any YouTube video, click the icon → choose format (timestamps / plain / table) → Copy Transcript.
Prerequisites
Section titled “Prerequisites”| Requirement | Where |
|---|---|
| Captions available on the video | YouTube — most videos with auto-captions work |
chrome-log-receiver running on the Mac | launchd: com.cc.chrome-log-receiver |
How It Works (Quick)
Section titled “How It Works (Quick)”The popup runs a script in the YouTube tab that:
- Finds the transcript panel via
[target-id*="transcript"](modern YT) with the oldytd-transcript-*selectors as fallbacks. - Reads
panel.innerTextand parses both layouts:- Modern — three lines per segment: timestamp / “X minutes, Y seconds” a11y label / transcript text. The a11y label is filtered by a token-only check.
- Inline —
M:SS some texton a single line (older YT builds).
- Formats per your choice and writes to the clipboard.
Every step logs to ~/apps/cc/logs/yt-transcript-grabber.log via the chrome-log-receiver, so when YouTube changes their DOM again, Claude sees exactly where the parser missed.
Format Options
Section titled “Format Options”[0:00] With timestamps—[time] textper segment, blank line between.- Plain text only — segments joined with blank lines, no timestamps.
- Table format (for Sheets) — tab-separated
Timestamp\tText, one row per segment.
~/apps/yt-transcript-grabber. Build system is the standard bump-build.sh per the Chrome Extension SOP. Manifest description carries Build N - summary and renders in the popup header as the build tag.