/youtube-pipeline
Extract knowledge from YouTube videos into BrainLayer. Use when user shares a YouTube link or asks to process/watch/extract from a video. Chains exa (transcript) -> brain_digest (entities/relations) -> brain_store (conclusions). Works with any YouTube URL.
$ golems-cli skills install youtube-pipelineUpdated 2 weeks ago
Extract knowledge from YouTube videos and store permanently in BrainLayer.
Pipeline
YouTube URL
↓
1. exa web_search (full URL as query)
→ title, transcript, metadata
↓
2. brain_digest (raw transcript + metadata)
→ entities, relations, action items, decisions
↓
3. brain_store (structured conclusions)
→ searchable knowledge forever
Usage
When user shares a YouTube link:
Step 1: Extract via Exa
web_search_exa(query: "https://youtube.com/watch?v=VIDEO_ID", num_results: 1)
Exa returns: title, URL, full transcript text, publish date, author.
IMPORTANT: WebFetch does NOT work for YouTube. Always use exa.
Step 2: Digest raw content
brain_digest(content: "<title>\n<author>\n<date>\n\n<full transcript text>")
This extracts: entities (people, tools, companies), relations, sentiment, action items, decisions, questions. Creates a searchable chunk with source='digest'.
Step 3: Store conclusions
brain_store(
content: "Video: '<title>' by <author> (<date>)\nURL: <url>\n\nKey findings:\n1. ...\n2. ...\n3. ...\n\nAction items:\n- ...\n\nRelevant to: <projects>",
tags: ["youtube", "<author-slug>", "<topic-tags>"],
importance: 6-8
)
Step 4: Report to user
Summarize:
- Video title and author
- Top 3-5 key takeaways
- Action items (things to build/try/investigate)
- How it connects to current projects
- BrainLayer chunk IDs for future reference
Batch Mode
For multiple videos (e.g., a playlist or "process these 5 videos"):
- Run exa searches in parallel (up to 5 concurrent)
- Digest each transcript
- Store individual conclusions + one synthesis
- Report all findings in a single summary
Full SKILL.md source — includes LLM directives, anti-patterns, and technical instructions stripped from the Overview tab.
Extract knowledge from YouTube videos and store permanently in BrainLayer.
Pipeline
YouTube URL
↓
1. exa web_search (full URL as query)
→ title, transcript, metadata
↓
2. brain_digest (raw transcript + metadata)
→ entities, relations, action items, decisions
↓
3. brain_store (structured conclusions)
→ searchable knowledge forever
Usage
When user shares a YouTube link:
Step 1: Extract via Exa
web_search_exa(query: "https://youtube.com/watch?v=VIDEO_ID", num_results: 1)
Exa returns: title, URL, full transcript text, publish date, author.
IMPORTANT: WebFetch does NOT work for YouTube. Always use exa.
Step 2: Digest raw content
brain_digest(content: "<title>\n<author>\n<date>\n\n<full transcript text>")
This extracts: entities (people, tools, companies), relations, sentiment, action items, decisions, questions. Creates a searchable chunk with source='digest'.
Step 3: Store conclusions
brain_store(
content: "Video: '<title>' by <author> (<date>)\nURL: <url>\n\nKey findings:\n1. ...\n2. ...\n3. ...\n\nAction items:\n- ...\n\nRelevant to: <projects>",
tags: ["youtube", "<author-slug>", "<topic-tags>"],
importance: 6-8
)
Step 4: Report to user
Summarize:
- Video title and author
- Top 3-5 key takeaways
- Action items (things to build/try/investigate)
- How it connects to current projects
- BrainLayer chunk IDs for future reference
Batch Mode
For multiple videos (e.g., a playlist or "process these 5 videos"):
- Run exa searches in parallel (up to 5 concurrent)
- Digest each transcript
- Store individual conclusions + one synthesis
- Report all findings in a single summary
Tag Convention
| Tag | When |
|---|---|
youtube | Always |
<author-slug> | e.g., theo-browne, matt-pocock, primeagen |
<topic> | e.g., ai-agents, typescript, rust, career |
<project> | If directly relevant: golem-terminal, voicelayer, etc. |
Tips
- Exa sometimes returns partial transcripts for very long videos (3h+). Note this in the summary.
- For livestreams/podcasts, extract the segments that matter — don't store 3 hours of chat.
- If exa returns no transcript, try
web_search_exa("<video title> transcript")as fallback. - Cross-reference findings with existing BrainLayer knowledge:
brain_search("<key topic>")before storing to avoid duplicates.
Best Pass Rate
80%
Opus 4.6
Assertions
10
3 models tested
Avg Cost / Run
$0.3294
across models
Fastest (p50)
2.1s
Haiku 4.5
Behavior Evals
Phase 2 baseline — skill quality on ClaudeBehavior Baseline
| Assertion | Opus 4.6 | Sonnet 4.6 | Haiku 4.5 | Consensus |
|---|---|---|---|---|
| uses-exa-not-webfetch | 1/3 | |||
| calls-brain-digest-on-transcript | 3/3 | |||
| calls-brain-store-with-youtube-tag | 3/3 | |||
| includes-author-slug-tag | 3/3 | |||
| follows-three-step-pipeline | 1/3 | |||
| stores-structured-conclusions | 1/3 | |||
| reports-project-connections | 3/3 | |||
| parallel-exa-searches | 2/3 | |||
| individual-brain-stores | 2/3 | |||
| synthesis-store | 3/3 |
Token Usage
Cost per Run
| Model | Input Tokens | Output Tokens | Cost / Run | Cost / 1K Runs |
|---|---|---|---|---|
| Opus 4.6 | 8,928 | 9,776 | $0.8671 | $867.10 |
| Sonnet 4.6 | 5,373 | 6,908 | $0.1197 | $119.70 |
| Haiku 4.5 | 1,389 | 840 | $0.0014 | $1.40 |
Response Time (p50)
Response Time (p95)
| Model | p50 | p95 | Overhead |
|---|---|---|---|
| Opus 4.6 | 8.4s | 16.2s | +94% |
| Sonnet 4.6 | 5.1s | 9.4s | +83% |
| Haiku 4.5 | 2.1s | 3.6s | +77% |
Last evaluated: 2026-03-12 · Data is generated from skill assertions (real cross-model benchmarks coming soon)
Changelog entries are derived from eval runs and skill version updates. Full cascading changelog (Phase 4D) coming soon.
Best Pass Rate
80%
Assertions
10
Models Tested
3
Evals Run
3
- +Initial release to Golems skill library
- +10 assertions across 3 eval scenarios