youtube-transcript
YouTube Transcript
When To Activate
Instructions
Step 1: Check yt-dlp
<check_dep>
yt-dlp must exist at /tmp/yt-dlp or on PATH.
If missing, install it:
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_macos -o /tmp/yt-dlp && chmod +x /tmp/yt-dlp
</check_dep>
Step 2: Extract Transcript
Run the extraction script:
node <skill-path>/scripts/fetch-transcript.mjs "<youtube-url>"
The script outputs JSON with:
title,channel,url,duration,uploadDate,descriptionsegments— individual timestamped linesparagraphs— segments merged into ~30-second blocks for readability
Step 3: Save Output
<output_format> Create a folder and markdown file:
Folder: transcripts/ in the current working directory (create if needed)
Filename: YYYY-MM-DD-kebab-case-title.md
---
type: transcript
source: youtube
video_id: <id>
channel: <channel>
duration: <duration>
date_published: <upload-date>
date_extracted: <today>
url: <url>
---
# <Title>
**Channel:** <channel>
**Duration:** <duration>
**Published:** <upload-date>
**URL:** <url>
---
## Summary
<2-3 sentence overview of what this video covers and why it matters>
---
## Key Takeaways
### 1. <First key theme>
- Bullet points summarising the core argument
- Include specific claims, frameworks, or advice given
- Attribute to the speaker where relevant
### 2. <Second key theme>
...repeat for each major theme (typically 3-7 themes for a 30-60 min video)
---
## Full Transcript
[0:00] <Brief topic label>. First paragraph of merged text...
[4:30] <Brief topic label>. Second paragraph continues...
The transcript section should be the full paragraph-merged output from the script, with each timestamp block prefixed by a short topic label (2-5 words) for scannability. </output_format>
Step 4: Summarise
- Summary — 2-3 sentences on what the video covers
- Key Takeaways — grouped by theme, with specific claims and quotes
- Full Transcript — paragraph-merged with topic labels (kept as reference/source)
The summary and takeaways should be written in clean, scannable prose. Extract the actual insights — not just "they discussed X" but what they specifically said about X. If the video is relevant to a specific context (e.g., interview prep), add a relevance table mapping insights to actions.
Integration with Boulot Vault
When used inside the Boulot vault for job research:
- Save to
{user}/active/{company}/research/transcripts/if the video relates to an active application - Add a link to the transcript in the company's
research.md - Tag with relevant company/role context in frontmatter
NEVER
- Download the video itself — subtitles only
- Fabricate or hallucinate transcript content
- Skip saving to file — always persist the transcript
- Run without checking yt-dlp exists first
ALWAYS
- Use kebab-case lowercase filenames
- Include full YAML frontmatter
- Use the paragraph-merged format for readability (not raw segments)
- Include timestamps at paragraph boundaries
- Provide a content summary after extraction