Connect YouTube to Claude Desktop
Claude cannot watch a video. One block in your config file lets it read one — and cite the moment it got the answer from.
The short answer
Add one block to claude_desktop_config.json and restart the app:
{
"mcpServers": {
"vidwords": {
"type": "http",
"url": "https://vidwords.com/mcp",
"headers": { "Authorization": "Basic YOUR_API_TOKEN" }
}
}
}
The file lives at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS and %APPDATA%\Claude\claude_desktop_config.json on Windows. If it does not exist yet, create it with exactly the content above.
Get a token first
Create a free account and copy the API token from your profile. Two things to know before the first call:
- Verify your email. Until you click the verification link every call returns
403with{"error":"email_unverified"}— the most common first-call failure on a new account. - The scheme is
Basic, notBearer, and the token goes in as-is. You are not base64-encoding auser:passpair.
Restarting actually matters
Claude Desktop reads this file at launch. Closing the window is not enough on macOS — quit the application properly (⌘Q) and reopen it, or the old configuration stays loaded and you will conclude the config is wrong when it is merely stale.
Once it restarts, the tools appear in the tool menu in the message composer. If the server failed to start, Claude Desktop reports it there rather than silently omitting the tools.
Merging with servers you already have
If mcpServers already exists, add vidwords as another key inside it rather than pasting a second mcpServers block — a duplicate key makes the file invalid JSON, and an invalid config usually presents as every server disappearing at once, not just the one you edited. A trailing comma does the same thing. When everything vanishes after an edit, check the JSON before you check anything else.
What it is good for
Claude Desktop is where most people do reading and research rather than coding, and video is the format that research workflows handle worst — you cannot skim it, quote it, or search it without watching it.
- "What does this 90-minute interview say about hiring? Give me the timestamps." —
search_transcriptreturns the relevant stretches with clickable deep links, so you can verify each claim in a second rather than trusting a summary. - "Compare what these three videos say about the same product." — a batch through
get_transcript, then ordinary analysis. - "The chart at the end of this talk — what were the actual numbers?" —
analyze_videoreads frames, so on-screen figures that are never spoken aloud are available.ask_videothen answers with citations that are checked against the recorded frames, and says the evidence is insufficient rather than guessing when nothing matches.
The nine tools
| Tool | What it does | Cost |
|---|---|---|
search_transcript | Find where a video discusses something; returns timestamps and deep links. | 1 credit |
get_transcript | Full text for up to 25 videos at once. | 1 credit each |
list_channel_videos | Recent uploads for a channel. | Free · Starter and up |
list_watchlists · watchlist_activity | Radar monitoring — channels you track and what they published. | Free |
account | Plan and remaining credits. | Free |
analyze_video | Frame-level analysis — slides, charts, demos, on-screen text. | Watch minutes |
get_analysis | Read a finished analysis. | Free |
ask_video | Ask against a finished analysis; citations verified or dropped. | 1 Watch question |
Prefer search_transcript when you have a question. get_transcript costs the same but returns everything, and a long transcript crowds out the rest of your conversation.
If the tools do not appear
- Nothing changed after editing. The app was not fully quit, or the file is not the one being read — check the path for your OS above.
- All servers vanished. Invalid JSON: a duplicate
mcpServerskey, a trailing comma, or a smart quote pasted from a web page. - 403 on every call. Unverified email.
- Windows path escaping. Backslashes inside JSON strings need doubling.