Creator Brain
Generates and maintains an Obsidian-compatible vault with creator, video, topic, and output notes that can be browsed in Obsidian, including graph views and linked topics.
Builds a searchable knowledge base from YouTube creators' channels by fetching uploads, captions/transcripts, top videos, and new uploads, then exposes verified claims and transcript passages with timestamp links.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Creator Brain make me a 4-day hypertrophy plan from Jeremy Ethier for a bad shoulder"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π§ 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.
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 + |
A video note: properties link the creator and topics; below come Key points (claim Β· timestamp Β· topic) and the transcript.
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 browserOpen the vault folder (~/CreatorBrain, or set CBRAIN_VAULT) in Obsidian to browse it.
Connect your AI (MCP)
Harness | Setup |
Claude Code |
|
Codex CLI |
|
Cursor / Windsurf | MCP settings β new server |
Gemini CLI |
|
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 |
| Build a brain; returns in seconds, work continues in the background |
| Verified claims + transcript passages, each with a timestamp URL |
| Everything on one subject; agreement / disagreement |
| Pull more videos from the All Videos catalog |
| Check for new uploads (also runs daily by itself) |
| The user's goals, level, injuries, equipment β for personal answers |
| Save plans/answers into the vault (they join the graph) |
| Find strong channels for a topic |
| Progress, health checks/repairs, live graph URL |
| Your agent reads the transcript and writes the claims; code verifies every quote (no API key needed) |
| 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):
Keep total volume moderate β even a high-volume 6-day plan in Jeremy's test was only "around 20 sets per muscle per week" (Why Almost Everyone Is Wasting Their Time In The Gym β 1:12).
Eat in a small deficit with high protein: "eating in a slight deficit of 2,300 calories per day" with at least 120 g protein in his 100-day case study (Giving A Stranger Fake Steroids For 100 Days β 7:15).
Add a chewy, solid food to meals β it "slows down your eating and that helps you just like get more full" (I Proved My 6-Pack Abs Diet Works For ANYONE β 4:02).
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 |
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, transcriptsBrain names look like jeremy-ethier Β· recent Β· updated 2026-10-29 Β· 278 videos.
Commands
Command | |
| create a brain |
| add catalog videos |
| check for new uploads |
| read |
| live animated graph ( |
| health |
| maintenance (pause first) |
| 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 |
| 0.30 / 10 | default brain scope |
| 12 | parallel fetch lanes (lane 0 = your IP) |
| 15 | pacing for your own IP |
| true / "" | proxy sources (yours are always tried first) |
| gpt-oss-120b / gpt-oss-20b, qwen3.8-27b | Groq models rotated for extraction |
| whisper-large-v3-turbo / en | audio fallback; language told to Whisper |
| 10 | top videos re-transcribed with Whisper for accuracy |
| false | use faster-whisper when Groq is missing |
| true | cut sponsor segments |
| 24 | automatic new-video check |
| 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 networkArchitecture and module contracts: SPEC.md. MIT licence.
Available Tools
19 toolsadd_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
Scored across 19 tools
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.
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.
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.
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
Related MCP Connectors
YouTube transcripts, search, channel/playlist listings and upload tracking for AI agents.
Turn your notes, links and conversations into a Living Brain your AI tools share and build on.
Your YouTube library in Claude, ChatGPT and Cursor: transcripts, breakdowns, summaries, search.
Your YouTube library in Claude, ChatGPT and Cursor: transcripts, breakdowns, summaries, search.
Related MCP Servers
- AlicenseBqualityDmaintenanceConnects 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.3512MIT
- AlicenseAqualityBmaintenanceEnables 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.954 npmMIT
- AlicenseAqualityCmaintenanceEnables 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.11MIT
- AlicenseAqualityCmaintenanceEnables building a local, searchable knowledge base from YouTube videos, with research, transcript retrieval, and timestamped citations.4MIT