Media Ingest logo

Media Ingest

CommunityPopular
garrytan
media-ingest

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.

Overview

Publishergarrytan
Repositorygbrain
Skill namemedia-ingest
Stars
30.1K
Forks
4.5K
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by garrytan on GitHub. Read the source before you install it.

Installation

Install the Media Ingest AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/garrytan/gbrain.git /tmp/gbrain
mkdir -p .claude/skills
cp -r /tmp/gbrain/plugin-variants/gbrain-daily/skills/media-ingest .claude/skills/media-ingest
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Media Ingest in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Media Ingest on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Media Ingest is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Media Ingest Skill

Ingest video, audio, PDF, book, screenshot, and GitHub repo content into the brain.

Filing rule: Read skills/_brain-filing-rules.md before creating any new page.

Input

ParameterRequiredDescription
sourceyesURL, file path, or uploaded file reference
titlenoOverride title (auto-detected if omitted)
target_slugnoOverride page slug (auto-generated if omitted)

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 source files preserved via gbrain files upload-raw
  • Filing by primary subject, not by media format

Convention: See skills/conventions/quality.md 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

FormatAction
YouTube/video URLFetch transcript (Whisper, transcription service, or captions)
Audio fileTranscribe with available STT service
PDFExtract text (OCR if needed)
Book PDFExtract text, identify chapters/sections
Screenshot/imageOCR via vision model, extract text and entities
GitHub repoClone, read README + key files, summarize architecture

Phase 2: Upload raw source

Save the original file for provenance: gbrain files upload-raw <file> --page <slug>

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
  2. Create/enrich if needed (delegate to enrich skill)
  3. Add back-link from entity page to this media page
  4. Add timeline entry on entity page

A media item is NOT fully ingested until entity propagation is complete.

Phase 5: Sync

gbrain sync to update the index.

Output Format

Brain page created with summary, highlights, and entity cross-links. Report to user: "Ingested {title}: {N} entities detected, {N} pages updated."

Error Handling

  • Transcription failure: If STT or captions are unavailable, note [transcript unavailable] in the page and proceed with whatever metadata is available. Do NOT fabricate content.
  • Duplicate detection: Before creating a page, search the brain for the source URL or file hash. If found, ask the user whether to update the existing page or skip.
  • Partial OCR / audio: Mark unclear segments with [inaudible] or [illegible]. Never guess at proper nouns.
  • Large content (books > 500 pages): Summarize by chapter; do not attempt to inline the full text. Link to the raw upload.
  • Retry policy: On transient API failures (network, timeout), retry once. On auth failures, abort immediately.

Known Pitfalls

  1. YouTube auto-captions misidentify proper nouns. Always cross-reference entity names against existing brain pages before creating new ones. A caption that garbles a name (e.g. "Alise" when the speakers are discussing alice-example) should match the existing alice-example page, not create a new one.
  2. Re-running ingest on same source creates duplicates. Always check brain for existing source URL match before Phase 3.
  3. Book OCR quality varies wildly. Scanned PDFs often have garbled text. If OCR quality is <80% readable, flag to user rather than ingesting garbage.
  4. Video transcript without speaker diarization is low-value. If multiple speakers are present but no diarization is available, note this limitation prominently rather than attributing all speech to one person.
  5. Large audio files (>2hr) can timeout transcription services. Split into chunks before transcription if needed.

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

Frequently asked questions

What does the Media Ingest AI skill do?

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.

Why use Media Ingest on TypingMind?

Because you install it once and use it with any model. Media Ingest is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Media Ingest in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/garrytan/gbrain/tree/master/plugin-variants/gbrain-daily/skills/media-ingest. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Media Ingest?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Media Ingest?

As many as you like. As long as a model supports skills, you can use Media Ingest with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Media Ingest AI skill free?

Yes. It is published on GitHub by garrytan under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇