Ingest video, audio, PDF, book, screenshot, and GitHub repo content into the brain.
Multi-format handling with entity extraction and backlink propagation. Covers
video-ingest, youtube-ingest, and book-ingest subtypes.
Installs into .claude/skills of the current project.
Are you the author of Media Ingest?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/timurgaleev-media-ingest)
---
name: media-ingest
version: 1.0.0
description: |
Ingest video, audio, PDF, book, screenshot, and GitHub repo content into the brain.
Multi-format handling with entity extraction and backlink propagation. Covers
video-ingest, youtube-ingest, and book-ingest subtypes.
triggers:
- "watch this video"
- "process this YouTube link"
- "ingest this PDF"
- "save this podcast"
- "process this book"
- "PDF book"
- "summarize this book"
- "ingest it into my brain"
- "what's in this screenshot"
- "check out this repo"
tools:
- search
- query
- page_get
- page_put
- link
- add_timeline_event
- put_raw_data
mutating: true
writes_pages: true
writes_to:
- concepts/
- people/
- companies/
- sources/
---
# Media Ingest Skill
Ingest video, audio, PDF, book, screenshot, and GitHub repo content into the brain.
> **Filing rule:** Read `skills/_brain-filing-rules.md` (via `get_skill _brain-filing-rules`) before creating any new page.
## Contract
This skill guarantees:
- Every ingested media item has a brain page with analysis (not just a transcript dump)
- Transcripts (video/audio) saved in raw and human-readable formats
- Entity extraction: every person and company mentioned gets back-linked
- Raw sources preserved via the `put_raw_data` tool
- Filing by primary subject, not by media format
> **Convention:** See `conventions/quality.md` (via `get_skill conventions/quality`) for Iron Law back-linking.
Every mention of a person or company with a brain page MUST create a back-link.
## Phases
### Phase 1: Identify format and fetch
| Format | Action |
|--------|--------|
| YouTube/video URL | Fetch transcript (Whisper, transcription service, or captions) |
| Audio file | Transcribe with available STT service |
| PDF | Extract text (OCR if needed) |
| Book PDF | Extract text, identify chapters/sections |
| Screenshot/image | OCR via vision model, extract text and entities |
| GitHub repo | Clone, read README + key files, summarize architecture (optionally `memrain index` the checkout for code-graph queries) |
### Phase 2: Preserve raw source
Store the extracted text or transcript for provenance with `put_raw_data`,
keyed to the page slug. Binaries themselves are not stored in the brain —
record the original URL or file path on the page's `**Source:**` line.
### Phase 3: Create brain page
File by primary subject (not format). Use this template:
```markdown
# {Title}
**Source:** {URL or file path}
**Format:** {video/audio/PDF/book/screenshot/repo}
**Created:** {date}
## Summary
{Key points, not a transcript dump}
## Key Segments / Highlights
{For video/audio: timestamped highlights. For books: chapter summaries.}
## People Mentioned
{List with links to brain pages}
## Companies Mentioned
{List with links to brain pages}
```
### Phase 4: Entity extraction and propagation
For every person and company mentioned:
1. Check brain for existing page (`search`)
2. Create/enrich if needed (delegate to enrich skill)
3. Add back-link from entity page to this media page (`link`)
4. Add timeline entry on entity page (`add_timeline_event`)
A media item is NOT fully ingested until entity propagation is complete.
### Phase 5: Index
Pages written via `page_put` are indexed by the server automatically; nothing
further is needed. After a large batch, `memrain reindex` refreshes everything
at once.
## Output Format
Brain page created with summary, highlights, and entity cross-links. Report to user:
"Ingested {title}: {N} entities detected, {N} pages updated."
## Anti-Patterns
- Dumping raw transcripts without analysis
- Skipping entity extraction ("I'll do that separately")
- Filing **raw ingest** by format (all videos in `media/videos/`) instead of by subject. Note: format-prefixed paths under `media/<format>/<slug>` ARE sanctioned for **synthesized one-of-one output** like book-mirror's `media/books/<slug>-personalized.md`. The anti-pattern is for raw ingest, not for sui generis synthesis. See `skills/_brain-filing-rules.md` "Sanctioned exception: synthesis output is sui generis."
- Not preserving raw source files
- Creating stub pages without meaningful content