bama
BAMA: 모든 Mac 앱을 만들 수 있습니다
키 없는 MCP 서버와 기능: 모든 언어 검색, 중요한 초만 읽기, 실제 프레임 보기, 타임스탬프로 모든 주장 인용
Keyless MCP server + skill: search in every language, read only the seconds that matter, see real frames, cite every claim with a timestamp.
스킬TypeScriptGitHub @jindratilk온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Keyless YouTube MCP server + research skill for AI agents: multi-language search with transcript highlights, transcript ranges, real video frames, comments and channel outliers. Claude Code & Codex plugin.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A keyless YouTube MCP server and research skill for AI agents. Multi-language YouTube search with transcript highlights, transcripts by time range, chapter or query, real video frames, comments and channel outlier scores, in Claude Code, Codex and any MCP client.
Website · Install · Tools · The skill · FAQ
Ask your agent things like:
"List 20 hooks from this year's top AI productivity videos, with hook type, what's on screen, and a link to the second."
"Which of @channel's videos broke out this year, and what do they have in common?"
"What do creators say is the biggest mistake with AI note-taking? Quote them."
…and get back a table with verbatim quotes, ?t= timestamp links and a coverage line (what was searched, reviewed and skipped). No YouTube Data API key, no OAuth, no cookies.
Most YouTube MCP servers expose one call per video and dump whole transcripts into context. That falls apart when an agent has to look at 50 videos. This one follows the pattern that works for web-search agents: few tools, results that are already useful, and the research method in a skill.
hl/gl), merged and de-duplicated. Videos found by several queries rank higher.start: 0, end: 30 for hooks), by chapter, or only the passages matching a query. Up to 25 videos per call.YT_PROXY for big sweeps.Paste this into Claude Code, Codex, Cursor or any agent that can run commands:
Install YouTube Research MCP for me from https://github.com/jindratilk/youtube-research-mcp. Follow the "Install instructions for AI agents" in its README for the client you are running in: the plugin (MCP server + research skill) in Claude Code or Codex, otherwise the MCP server config. Then run youtube_doctor and tell me whether everything works, and if I need to restart anything.
claude plugin marketplace add jindratilk/youtube-research-mcp
claude plugin install youtube-research@youtube-research
codex plugin marketplace add jindratilk/youtube-research-mcp
codex plugin add youtube-research@youtube-research
{
"mcpServers": {
"youtube": {
"command": "npx",
"args": ["-y", "github:jindratilk/youtube-research-mcp"]
}
}
}
The skill is optional outside the plugins: copy skills/youtube-research into your agent's skills folder.
git clone https://github.com/jindratilk/youtube-research-mcp && cd youtube-research-mcp && npm install && npm run build
claude mcp add youtube -- node "$PWD/dist/index.js"
Requirements: Node.js 20+. dist/index.js is one bundled file with no runtime dependencies. For video frames also install yt-dlp and ffmpeg (brew install yt-dlp ffmpeg); yt-dlp also serves as a transcript fallback.
If a user asked you to install YouTube Research MCP, follow these steps exactly.
node --version must be 20 or newer. If it is older or missing, stop and tell the user.claude CLI exists): run claude plugin marketplace add jindratilk/youtube-research-mcp, then claude plugin install youtube-research@youtube-research. This installs the youtube MCP server and the youtube-research skill.codex CLI exists): run codex plugin marketplace add jindratilk/youtube-research-mcp, then codex plugin add youtube-research@youtube-research."youtube": { "command": "npx", "args": ["-y", "github:jindratilk/youtube-research-mcp"] }. Common config files: Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows); Cursor ~/.cursor/mcp.json; Windsurf ~/.codeium/windsurf/mcp_config.json; VS Code .vscode/mcp.json (uses a servers key instead of mcpServers). If the client supports skills, copy skills/youtube-research into its skills folder.npx -y github:jindratilk/youtube-research-mcp --doctor. Every line should start with ✓. yt-dlp and ffmpeg are optional (needed only for video frames); if they are missing, offer to install them (brew install yt-dlp ffmpeg on macOS) but do not install without asking. A [rate_limited] transcript line means YouTube is throttling this IP for a while; everything else still works.| Tool | What it does |
|---|---|
youtube_search | Multi-query search with filters and transcript highlights |
youtube_fetch | Batch read: transcript slices, real frames, details, chapters, comments, thumbnail |
youtube_channel | A channel's videos with ×median outlier scores |
youtube_doctor | Checks every YouTube path from your machine, with timings |
youtube_search{
"queries": [
"AI productivity workflow",
"how I use AI to save 10 hours a week",
{ "query": "productividad con IA", "hl": "es", "gl": "ES" }
],
"uploaded": "year",
"minViews": 10000,
"highlights": 5
}
| Parameter | Meaning |
|---|---|
queries | 1–12 strings or {query, hl, gl} objects, run in parallel and merged |
limit | Results per query before merging (default 10, max 50) |
uploaded | hour · today · week · month · year (server-side) |
publishedAfter / publishedBefore | YYYY-MM[-DD], applied after search, approximate |
duration | short (<4 min) · medium (4–20) · long (>20) |
minDurationSec / maxDurationSec / minViews | Post-filters |
shorts | exclude (default) · include · only |
captionsOnly | Only videos with subtitles/CC |
sort | relevance · views · date |
highlights / highlightsPerVideo | How many top results get transcript passages (default 5) and how many each (default 3) |
highlightQuery | Highlight something other than the search topic, e.g. ["biggest mistake"] |
transcriptLangs | Preferred caption languages; default is the video's original language |
youtube_fetch{
"videos": ["https://youtu.be/TL8V41Ea6oM", "htZRCE2GgIs"],
"parts": ["details", "transcript", "frames"],
"start": 0,
"end": 30,
"frames": 4
}
| Parameter | Meaning |
|---|---|
videos | 1–25 URLs or IDs (a ?t= in a URL is used as the start) |
parts | details · transcript · chapters · comments · thumbnail · frames |
start / end | Range for transcript and frames, in seconds or m:ss |
chapter | Limit to the chapter whose title contains this text |
query / matches | Return only matching transcript passages instead of the full text |
timestamps | paragraph (~30 s blocks, default) · segment · none |
maxCharacters | Transcript budget per video (default 12000); truncation says where to resume |
frames / frameAt / frameWidth | N evenly spaced frames, or exact seconds; width up to 1280 px |
commentsLimit | Comments to show per video (default 20, max 200) |
commentsQuery / commentsMatch | Search inside the top comments (accent-insensitive, matches word forms); any (default) or all terms |
commentsMinLikes / commentsAuthor | Keep only comments with enough likes, or from an author |
commentsScan | How many top comments to read before filtering (default 300 when filtering, max 1000) |
commentsSort | top (YouTube order) or likes (most liked first among the scanned) |
commentsReplies | Also load up to N replies under each shown comment (max 20) |
youtube_channel{ "channel": "@aliabdaal", "limit": 60, "minOutlier": 2 }
Videos, Shorts or streams; latest · popular · oldest; up to 300 videos; subscriber and video counts; publishedAfter; minOutlier to keep only breakouts.
youtube_doctorNo parameters. Checks search, video details, transcripts, watch page, channels, yt-dlp and ffmpeg, and shows an active rate-limit pause.
skills/youtube-research turns a request into a supervised sweep:
videos_reviewed: N / skipped: ….References: searching · hooks (10-type taxonomy) · quotes & claims · creators & outliers · synthesis.
productivity matches productive), weights rare terms higher and rewards passages that hit several concepts.| Env var | Default | Meaning |
|---|---|---|
YT_MCP_TOOLS | all | Comma-separated tools to expose |
YT_MAX_CONCURRENCY / YT_MIN_GAP_MS | 4 / 120 | API request queue |
YT_CAPTION_CONCURRENCY / YT_CAPTION_GAP_MS | 2 / 350 | Caption download queue |
YT_CAPTION_COOLDOWN_MS | 60000 | First pause after a caption 429 (doubles per repeat, max 15 min) |
YT_PROXY | none | HTTP(S) proxy for all YouTube requests, yt-dlp and ffmpeg |
YT_TIMEOUT_MS | 15000 | Per-request timeout |
YT_CACHE_TTL_MS | 900000 | In-memory cache lifetime |
YT_FRAME_MAX_HEIGHT / YT_FRAME_CONCURRENCY | 720 / 3 | Stream quality for frames; parallel ffmpeg processes |
YT_DLP / YT_DLP_PATH / FFMPEG_PATH | on / yt-dlp / ffmpeg | Disable or locate the helpers |
YT_DEBUG | off | Log every YouTube request (status, queue wait, latency) to stderr |
YT_WEB_CLIENT_VERSION, YT_ANDROID_CLIENT_VERSION, YT_IOS_CLIENT_VERSION | built in | Override Innertube client versions if YouTube starts rejecting them |
get_transcript endpoint is closed to anonymous clients, so there is no second keyless source. The server pauses and tells the agent when to retry; for sweeps of hundreds of videos use YT_PROXY.youtube_fetch returns the exact publish date.sort: "date" re-sorts fetched results, so pair it with uploaded.Does it need a YouTube API key? No. No API key, OAuth or cookies.
Which clients does it work with? Any MCP client over stdio: Claude Code, Codex, Claude Desktop, Cursor, Windsurf, VS Code, Zed and more. Claude Code and Codex get the plugin with the skill.
Does it download videos? No. Transcripts come from caption files; frames are decoded from small byte ranges of the stream.
Does it work for non-English content? Yes: per-query language and region, original-language transcripts by default, and accent-aware highlights.
Researching Instagram Reels too? See the sibling project Reels Research MCP.
Is it affiliated with YouTube or Google? No. It is an independent open-source project. Use it in line with YouTube's terms and respect creators' rights.
npm test # offline unit tests: parsing, highlights, filters, frame spacing
npm run smoke # end-to-end against live YouTube through a real MCP client
npm run dev # run from source
npm run build # typecheck + bundle to dist/index.js
Layout: src/innertube.ts (HTTP, queues, errors) · src/youtube.ts (search, player, transcripts, watch page, comments, channels) · src/highlights.ts · src/frames.ts · src/tools/* (MCP tools) · skills/ · docs/ (website).
MIT. Not affiliated with YouTube or Google. YouTube is a trademark of Google LLC.
Keywords: YouTube MCP server, YouTube transcript MCP, YouTube search for AI agents, Model Context Protocol, Claude Code plugin, Codex plugin, YouTube without API key, YouTube hooks research, video frames for LLMs, agent skill.