Skip to main content
Glama

🧠 Creator Brain

Turn any YouTube creator into a living knowledge base your AI can actually use.

Transcripts β†’ verified claims with timestamps β†’ linked topics β†’ an Obsidian vault + an MCP server that Claude Code, Codex, Cursor and Gemini CLI can build, search and keep up to date.

Creator Brain demo Two brains growing in one vault: Jeremy Ethier (pink) and Jeff Nippard (blue), joined by shared topics (green). MP4 version


Why

You learn from a few creators you trust. Their best advice is spread over hundreds of videos. Creator Brain pulls it all into one place with receipts: every piece of advice links to the exact second in the video, and code (not the AI) checks that the quote really is in the transcript.

Related MCP server: vault-mcp

What you get

⚑ Fast, never stuck

Parallel fetch lanes (your IP, paced, + verified proxies). Captions β†’ Groq Whisper β†’ local Whisper. A durable queue resumes after any crash.

βœ… Accurate

Claims are extracted by an LLM, then verified by code against the transcript (numbers and "not" must match). Whisper is always told the language.

πŸ”— Linked

Video ↔ topics ↔ creators. Topics are shared across creators, so you see where experts agree or disagree.

πŸ”„ Self-updating

A cheap new-video check once a day; update notes list new advice and ⚠️ changed advice.

πŸ“š Whole channel on tap

Default brain = newest 30 % + top 10 winners. Every other upload sits in an All Videos table, one call away.

πŸ–₯️ See it

Obsidian graph view, and a live animated graph in your browser.

πŸ€– Any agent

MCP server + CLI + AGENTS.md in the vault + a ready-made agent skill (skills/creator-brain/SKILL.md).

A video note in Obsidian A video note: properties link the creator and topics; below come Key points (claim Β· timestamp Β· topic) and the transcript.

Live brain graph brain graph: the live view in your browser. New notes pop in as they arrive; Replay animates how the brain grew.

Quick start

git clone https://github.com/LikithMeruvu/creator-brain && cd creator-brain
uv venv && uv pip install -e .          # Python 3.11+
brain setup                              # optional: Groq key, proxy list, free proxies, local Whisper
brain add @JeremyEthier                  # newest 30% + top 10 winners  (add --full for every video)
brain status                             # progress per creator
brain search "how many sets per week for muscle growth"
brain graph                              # live animated graph in your browser

Open the vault folder (~/CreatorBrain, or set CBRAIN_VAULT) in Obsidian to browse it.

Connect your AI (MCP)

Harness

Setup

Claude Code

claude mcp add creator-brain --scope user -- brain-mcp

Codex CLI

~/.codex/config.toml β†’ [mcp_servers.creator-brain] command = "brain-mcp"

Cursor / Windsurf

MCP settings β†’ new server creator-brain, command brain-mcp

Gemini CLI

settings.json β†’ "mcpServers": {"creator-brain": {"command": "brain-mcp"}}

Give the agent the playbook too: copy skills/creator-brain/ into your skills folder (Claude Code: ~/.claude/skills/creator-brain/). It tells the agent how to plan, search, cite and maintain.

MCP tools

Tool

What it does

add_creator(handle, full=False)

Build a brain; returns in seconds, work continues in the background

search_brain(query, creators, limit)

Verified claims + transcript passages, each with a timestamp URL

get_topic(name) Β· compare_creators(topic, creators)

Everything on one subject; agreement / disagreement

add_videos(creator, match, video_ids, top, dry_run)

Pull more videos from the All Videos catalog

update_creators(creator)

Check for new uploads (also runs daily by itself)

my_profile(updates)

The user's goals, level, injuries, equipment β€” for personal answers

save_output(title, markdown, sources)

Save plans/answers into the vault (they join the graph)

suggest_creators(topic)

Find strong channels for a topic

brain_status Β· brain_doctor(fix) Β· brain_graph

Progress, health checks/repairs, live graph URL

next_video_to_analyse Β· submit_claims(video_id, claims)

Your agent reads the transcript and writes the claims; code verifies every quote (no API key needed)

list_topics Β· merge_topics(groups) Β· rebuild_brain Β· pause_brain / resume_brain

Your agent names, merges and restructures topics and notes

Example: a cited answer

You: I'm a beginner, 4 days a week, want to lose fat and keep muscle. What should I do?

Your agent (searching the Jeremy Ethier + Jeff Nippard brains):

Saved to outputs/My Fitness Plan.md Β· based on 278 Jeremy + 147 Jeff videos.

Every quote above was checked by code against the transcript before it entered the brain.

Use cases

  • Personal coach β€” "Make me a 4-day hypertrophy plan from Jeremy Ethier. I have a bad shoulder." The agent reads your profile, searches volume, frequency, exercise picks and shoulder-safe swaps, cites every choice, and saves the plan to outputs/.

  • Expert panel β€” add Jeff Nippard and a nutrition channel; "Where do they disagree on protein?" Shared topic notes put each creator's view side by side.

  • Study a field β€” brain add @SomeLecturer --full, then ask questions with second-level citations.

  • Content research β€” the All Videos table shows every upload with views; add the winners and ask what hooks, formats and claims they share.

How it works

flowchart LR
  A[brain add @creator] --> B[List uploads<br/>yt-dlp, ~10 s / 300 videos]
  B --> C[Pick: newest 30% + top 10<br/>others β†’ All Videos table]
  C --> D[Fetch lanes in parallel<br/>captions β†’ Groq Whisper β†’ local Whisper]
  D --> E[Video notes + search index]
  E --> F[Claims extracted by LLM<br/>quotes verified by code]
  F --> G[Topic notes, related topics,<br/>changed-advice alerts]
  G --> H[Obsidian vault Β· MCP Β· CLI]

Part

Detail

Transcripts

Lane 0 = your IP, paced (~240 videos/h, under YouTube's ~300/h guest limit). More lanes through proxies (your own list, or verified free ones). Sponsor segments cut via SponsorBlock.

Queue

One SQLite job per video; leases, retries with back-off, parked with a reason after 3 failures.

Extraction

Your own agent (via next_video_to_analyse β†’ submit_claims), plus optional Groq in the background: models rotated, each with its own free quota; follows Groq's rate-limit headers; daily caps defer jobs instead of failing them. No Groq key? Your own agent extracts from .brain/pending_extraction/.

Accuracy

Exact-quote check with one tolerance (a single mis-heard word) β€” never for numbers or negations. Wrong-language transcripts are redone.

Many agents

One writer lock per vault; any number of readers.

The vault

CreatorBrain/
β”œβ”€β”€ AGENTS.md          rules every agent reads
β”œβ”€β”€ Home.md            dashboard: creators, % built, top topics
β”œβ”€β”€ Me.md              your profile (goal, level, injuries, equipment…)
β”œβ”€β”€ creators/
β”‚   └── Jeremy Ethier/
β”‚       β”œβ”€β”€ Jeremy Ethier.md                 brain label, stats, top topics & videos
β”‚       β”œβ”€β”€ Jeremy Ethier - All Videos.md    every upload: βœ… in brain Β· ⏳ queued Β· βž• not added
β”‚       β”œβ”€β”€ videos/<Title>.md                properties Β· Key points Β· Transcript
β”‚       └── updates/Jeremy Ethier - Update 2026-10-29.md
β”œβ”€β”€ topics/<Topic>.md  per-creator claims (newest first), agree/disagree, related topics
β”œβ”€β”€ outputs/           plans and answers you saved
└── .brain/            engine room: queue, search index, claims.jsonl, transcripts

Brain names look like jeremy-ethier Β· recent Β· updated 2026-10-29 Β· 278 videos.

Commands

Command

brain add <handle> [--full] [--shorts]

create a brain

brain more <creator> --match "words" | --top N | --ids a,b [--dry-run]

add catalog videos

brain update [creator]

check for new uploads

brain status Β· brain search <q> Β· brain topic <name> Β· brain compare <topic> --creator A --creator B

read

brain graph

live animated graph (?still in the URL for screenshots)

brain doctor [--fix] Β· brain retry Β· brain pause / resume

health

brain rebuild Β· brain merge-topics [--dry-run] Β· brain dates

maintenance (pause first)

brain setup Β· brain mcp Β· brain worker

setup / run

Settings

brain setup writes .brain/config.json; every key can be overridden with CBRAIN_<KEY>. API keys live in ~/.cbrain/secrets.json or GROQ_API_KEY, never in the vault.

Key

Default

Meaning

recent_fraction / top_winners

0.30 / 10

default brain scope

lanes

12

parallel fetch lanes (lane 0 = your IP)

own_ip_interval_seconds

15

pacing for your own IP

use_free_proxies / proxy_file

true / ""

proxy sources (yours are always tried first)

extract_model / extract_fallback_models

gpt-oss-120b / gpt-oss-20b, qwen3.8-27b

Groq models rotated for extraction

asr_model / default_language

whisper-large-v3-turbo / en

audio fallback; language told to Whisper

whisper_upgrade_top

10

top videos re-transcribed with Whisper for accuracy

local_whisper

false

use faster-whisper when Groq is missing

sponsorblock

true

cut sponsor segments

daily_check_hours

24

automatic new-video check

cost_confirm_usd

1.0

ask before a big paid extraction

Honest limits

  • Free proxies are unreliable (~1 % of public lists fetch captions); a paid proxy list makes big channels fast.

  • Groq's free tier caps tokens per minute and requests per day; big channels finish over hours, in the background.

  • The quote check proves the words exist in the transcript β€” not that the advice is right.

  • Transcripts stay on your machine. Don't redistribute creators' content.

Responsible use

  • Creator Brain fetches public captions for your personal knowledge base. Transcripts, notes and claims stay on your machine β€” do not republish creators' content or share vaults built from it.

  • Respect YouTube's Terms of Service and your local law. Keep the default pacing; proxies are optional and your responsibility.

  • Always credit and link the creator (every claim links back to the exact second of their video).

  • Advice in a brain is what a creator said, not medical, financial or legal advice.

Develop

uv pip install -e ".[dev]" && .venv/Scripts/python -m pytest -q     # 357 tests, no network

Architecture and module contracts: SPEC.md. MIT licence.

Available Tools

19 tools
add_creatorA

Add a YouTube creator (handle like @JeremyEthier, or channel URL) to the brain and start building it. Returns quickly: the video list is queued and transcripts download in the background, so you can search what is ready right away. full=True fetches every video instead of the newest 30% plus the top winners. Tell the user the returned brain label and that more material keeps arriving.

Inputs: handle (required), full. Returns: object

add_videosA

Add more of a creator's videos to their brain. By default a brain holds the newest 30% plus top winners; every other upload is listed in the creator's ' - All Videos' note. Pick by title words (match= 'protein diet'), explicit video_ids, or top=N most-viewed. Use dry_run=True first to show the user the matches, then call again to add them. They download and get analysed in the background.

Inputs: creator (required), top, match, dry_run, +1 more. Returns: object

brain_doctorA

Check the vault for problems (broken links, missing notes, failed videos, stale creators) and, with fix=True, repair what is safe. Run it if search looks wrong or status shows failures.

Inputs: fix. Returns: object

brain_graphA

Start the live, animated graph of the brain on localhost and return its URL. Give the user the link: nodes pop in as videos and topics are added, and Replay animates how the brain was built.

Inputs: no named parameters. Returns: object

brain_statusA

How complete is the brain? Returns the brain label, percent built (searchable) and analysed, whether the background worker is running, failures with reasons and a rough ETA. Use it to tell the user how much of a creator is ready before relying on search results.

Inputs: creator. Returns: object

compare_creatorsB

Compare what several creators say about a topic: per creator, their claims (with quotes and timestamp URLs) plus matching transcript passages. Use it to show where creators agree or disagree, and cite both sides.

Inputs: topic (required), creators (required). Returns: object

get_topicA

Everything the brain has verified about one topic (e.g. 'Protein Intake') across all creators: claims with exact quotes and timestamp URLs, newest first. Names and synonyms are matched loosely. Cite the timestamp URLs when you use a claim.

Inputs: name (required). Returns: object

list_topicsA

All topics with claim counts and creators. Use it to plan clean topic names and merges.

Inputs: no named parameters. Returns: object

merge_topicsA

Rename/merge topics: {"Protein Intake": ["Daily Protein", "Protein Timing"], ...}. Only existing names are used; claims, topic notes, video links and search are rewritten, old names stay as aliases. Pause first.

Inputs: groups (required). Returns: object

my_profileA

Read the user's profile (Me.md): goal, level, age, weight, injuries, equipment, days_per_week, diet, notes. Read it before giving advice so the answer is personalised, and ask the user for fields that are empty. Pass updates={'goal': 'build muscle', 'days_per_week': 4} to save new facts the user tells you.

Inputs: updates. Returns: object

next_video_to_analyseA

YOU are the brain's reader. Returns one video's transcript (with [mm:ss] markers), the known topics and the rules for writing knowledge cards. Read it, write the claims yourself, then call submit_claims. Repeat to build the brain without any external AI key. Returns video=None when nothing is left.

Inputs: creator. Returns: object

pause_brainA

Pause background downloading/analysis (needed before merge_topics or rebuild_brain).

Inputs: no named parameters. Returns: object

rebuild_brainA

Re-render every note (clean names, key points, topic + related links, dashboards). Pause first.

Inputs: no named parameters. Returns: object

resume_brainB

Resume background work after maintenance.

Inputs: no named parameters. Returns: object

save_outputA

Save a finished plan, summary or answer into the vault (outputs/) so the user can open it in Obsidian. Always save plans with this tool. Put the timestamp URLs / video titles you relied on in sources.

Inputs: title (required), markdown (required), sources. Returns: object

search_brainA

Search creators' transcripts and verified claims (call this BEFORE answering from memory). Returns short snippets, each with a timestamp URL: cite the video title and that URL for every point. Includes brain_completeness per creator: if it is below 100%, tell the user results may be missing videos. Use plain words, e.g. 'protein per day for muscle gain'; narrow with creators=['jeremy-ethier'].

Inputs: query (required), limit, creators. Returns: object

submit_claimsA

Add your knowledge cards for a video. Each item: {"claim": one plain sentence, "quote": 6-40 words copied EXACTLY from the transcript, "t": "mm:ss", "topic": short Title Case topic (reuse known topics), "kind": advice|fact|protocol|warning|opinion}. Code checks every quote against the transcript and drops any that don't match word for word; the result says how many were kept.

Inputs: claims (required), video_id (required). Returns: object

suggest_creatorsA

Find YouTube channels worth adding for a topic (ranked by views in search results, excluding creators already in the brain). Show the list to the user and call add_creator only for the ones they choose.

Inputs: topic (required). Returns: object

update_creatorsA

Check one creator (or all of them) for new videos and queue anything new. Cheap and quick; it also runs automatically about once a day. New material appears in search as it finishes processing.

Inputs: creator. Returns: object

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.9/5.0

    Scored across 19 tools

    Disambiguation4/5

    Most tools occupy clearly distinct pipeline stages (add, analyse, submit, search, maintain), and descriptions disambiguate well. The weakest boundaries are add_videos vs. update_creators (both queue downloads) and search_brain vs. get_topic vs. compare_creators, which an agent could occasionally pick wrong.

    Naming Consistency4/5

    Everything is snake_case and mostly verb_noun (add_creator, search_brain, merge_topics, save_output). A handful of noun-prefixed forms (brain_status, brain_doctor, brain_graph, my_profile) and the awkward next_video_to_analyse deviate from the dominant pattern but remain readable.

    Tool Count4/5

    19 tools is on the heavy side, but each maps to a real stage: ingestion, analysis, topic curation, maintenance, discovery, and output. A few (pause_brain/resume_brain, rebuild_brain) could be folded together, keeping it just short of ideal.

    Completeness5/5

    Covers the full lifecycle: add creators/videos, background ingest, claim submission, topic listing/merging, rebuild, status, search, topic lookup, cross-creator comparison, profile, output saving, discovery, and repair. No obvious dead ends beyond optional destructive operations like removing a creator or correcting a bad claim.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Connects AI assistants directly to Obsidian vaults with intelligent note creation using templates, semantic search, smart tagging to avoid duplicates, and specialized agent roles (Guardian, Researcher, Connection Weaver) for managing knowledge bases.
      35
      12
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables coding agents to use an Obsidian vault as long-term memory, with search, reading, and writing of notes, plus automatic capture of learnings that are propagated to MOCs, daily notes, and the knowledge index with git commits.
      9
      54 npm
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables AI agents to use Obsidian vaults as persistent, bidirectional knowledge workspaces with wikilink/backlink resolution, structured frontmatter/tag indexing, task aggregation, and Obsidian Headless Sync.
      11
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables building a local, searchable knowledge base from YouTube videos, with research, transcript retrieval, and timestamped citations.
      4
      MIT