Multi-channel YouTube transcript archive — channels//transcripts/NN-
| channels | ||
| README.md | ||
YouTube Channel Transcripts
A multi-channel archive of YouTube transcripts. Each channel lives in its own folder under channels/ with timestamped transcripts of (typically) the first 20 videos.
Repository Structure
channels/
<channel-slug>/
README.md # channel description + index of videos
transcripts/
01-<video-title-slug>.md
02-<video-title-slug>.md
...
README.md # this file
Channels
| Channel | Folder | Videos |
|---|---|---|
| AI Engineer Europe | channels/ai-engineer-europe |
24 (with analysis notes) |
| Lenny's Podcast | channels/lennys-podcast |
19 (with notes) |
| Greg Isenberg | channels/greg-isenberg |
20 |
| My First Million | channels/my-first-million |
80 (with notes) |
Agent Instructions — Adding a New Channel
When asked to "transcribe the first N videos of ":
- Slugify the channel name → kebab-case (e.g.
Two Minute Papers→two-minute-papers). - Create the folder
channels/<slug>/transcripts/. - List the channel's videos (newest first by default unless the user specifies otherwise) and pick the first N (default 20).
- For each video, fetch a timestamped transcript using:
Save it topython3 ~/.hermes/skills/media/youtube-content/scripts/fetch_transcript.py \ "<VIDEO_URL>" --text-only --timestampschannels/<slug>/transcripts/<NN>-<video-title-slug>.mdwhereNNis a zero-padded index (01..20). - Each transcript file should start with a small frontmatter block:
# <Video Title> - **Channel:** <Channel Name> - **URL:** <Video URL> - **Published:** <YYYY-MM-DD> - **Duration:** <HH:MM:SS> --- <timestamped transcript here> - Write a
channels/<slug>/README.mdwith the channel name, URL, and a numbered index of the videos (title + link). - Update the "Channels" table in this root
README.md. - Commit with a message like
Add <channel-name>: <N> video transcriptsand push.
Conventions
- One commit per channel batch (not per video).
- Filenames: lowercase, kebab-case, ASCII only, max ~80 chars before the
.md. - If a video has no available transcript, write a stub file noting the reason and continue — don't fail the batch.
- Skip private/members-only/age-restricted videos and note them in the channel README.
Relevant Skills
media/youtube-content— transcript fetcher + channel listing helpersdevops/gitea-private-server— pushing to this Forgejo remote