{"_id":"@bingyin/youtube-mcp","_rev":"6-cc63561ace02c8fbff92f10e1916038e","name":"@bingyin/youtube-mcp","dist-tags":{"latest":"1.0.4"},"versions":{"0.0.1":{"name":"@bingyin/youtube-mcp","version":"0.0.1","keywords":["mcp","subtitles","captions","youtube","yt-dlp","video","transcript","llm","claude"],"author":{"name":"Bingyin","email":"realbingyin@outlook.com"},"license":"MIT","_id":"@bingyin/youtube-mcp@0.0.1","maintainers":[{"name":"bingyin","email":"bingyintech@gmail.com"}],"homepage":"https://github.com/9bingyin/youtube-mcp#readme","bugs":{"url":"https://github.com/9bingyin/youtube-mcp/issues"},"bin":{"youtube-mcp":"lib/index.mjs"},"dist":{"shasum":"a87ce7f16182262f40783dcc887c38f241d388e4","tarball":"https://registry.npmjs.org/@bingyin/youtube-mcp/-/youtube-mcp-0.0.1.tgz","fileCount":15,"integrity":"sha512-buJ4Mc+Bhv4/kezURKeUZYiPMU1hEkns74E0ZnQR0IVLgs5g7ZD8hCubDb7GSVpWEi/GZmXOpkrtv0kzpCNyPg==","signatures":[{"sig":"MEQCIAr3HIDzco2bentAi4sHl+0GXzl1vq6sgyGKOsrXM2mVAiBmRa5PfcvPsMrd572LFMguoYbbl7iJa0pkUTUG4bWrHg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":40946},"main":"./lib/index.mjs","type":"module","exports":{".":{"import":"./lib/index.mjs"}},"gitHead":"40a1fccac646f3f96fec2fec0d11179bc41af8fc","scripts":{"test":"PYTHONPATH= PYTHONHOME= node --experimental-vm-modules node_modules/jest/bin/jest.js --detectOpenHandles --forceExit","prepare":"tsc && shx chmod +x ./lib/index.mjs"},"_npmUser":{"name":"bingyin","email":"bingyintech@gmail.com"},"repository":{"url":"git+https://github.com/9bingyin/youtube-mcp.git","type":"git"},"_npmVersion":"11.4.2","description":"A simplified MCP server for extracting subtitles from videos. Supports YouTube, Facebook, TikTok and other platforms via yt-dlp.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"rimraf":"^6.0.1","spawn-rx":"^4.0.0","@modelcontextprotocol/sdk":"0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.3","@types/jest":"^29.5.14","@jest/globals":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/youtube-mcp_0.0.1_1753259282863_0.4920733527771517","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@bingyin/youtube-mcp","version":"1.0.0","keywords":["mcp","subtitles","captions","youtube","yt-dlp","video","transcript","llm","claude"],"author":{"name":"Bingyin","email":"realbingyin@outlook.com"},"license":"MIT","_id":"@bingyin/youtube-mcp@1.0.0","maintainers":[{"name":"bingyin","email":"bingyintech@gmail.com"}],"homepage":"https://github.com/9bingyin/youtube-mcp#readme","bugs":{"url":"https://github.com/9bingyin/youtube-mcp/issues"},"bin":{"youtube-mcp":"lib/index.mjs"},"dist":{"shasum":"e054780024894911929ce0fb6ae985c41bb63f0d","tarball":"https://registry.npmjs.org/@bingyin/youtube-mcp/-/youtube-mcp-1.0.0.tgz","fileCount":15,"integrity":"sha512-GpdW2kC995NXjB20aT4wEuhRaI4TS43ycjKR1/G3Cv+9Thq+iH5rWcg1DD0lpBmCsQFDcVXHzNE9KDDCo1QKAw==","signatures":[{"sig":"MEUCIQD62t8zhORUPP//bymXQz/dQXs54yavdTnE0akiPEO1ewIgaUq99sFdAMu6mt3FjIT07yo1f1wRzLVjkMRAmu+BFrk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37569},"main":"./lib/index.mjs","type":"module","exports":{".":{"import":"./lib/index.mjs"}},"gitHead":"b21637dd1e2103970a80b7e5b12eed6a6e9339ea","scripts":{"test":"PYTHONPATH= PYTHONHOME= node --experimental-vm-modules node_modules/jest/bin/jest.js --detectOpenHandles --forceExit","prepare":"tsc && shx chmod +x ./lib/index.mjs"},"_npmUser":{"name":"bingyin","email":"bingyintech@gmail.com"},"repository":{"url":"git+https://github.com/9bingyin/youtube-mcp.git","type":"git"},"_npmVersion":"11.4.2","description":"A simplified MCP server for extracting subtitles from videos. Supports YouTube, Facebook, TikTok and other platforms via yt-dlp.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"rimraf":"^6.0.1","spawn-rx":"^4.0.0","@modelcontextprotocol/sdk":"0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.3","@types/jest":"^29.5.14","@jest/globals":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/youtube-mcp_1.0.0_1753260025161_0.02007156719862868","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@bingyin/youtube-mcp","version":"1.0.1","keywords":["mcp","subtitles","captions","youtube","yt-dlp","video","transcript","llm","claude"],"author":{"name":"Bingyin","email":"realbingyin@outlook.com"},"license":"MIT","_id":"@bingyin/youtube-mcp@1.0.1","maintainers":[{"name":"bingyin","email":"bingyintech@gmail.com"}],"homepage":"https://github.com/9bingyin/youtube-mcp#readme","bugs":{"url":"https://github.com/9bingyin/youtube-mcp/issues"},"bin":{"youtube-mcp":"lib/index.mjs"},"dist":{"shasum":"e15db12632444c31b7abf5a27cc7217b60da8635","tarball":"https://registry.npmjs.org/@bingyin/youtube-mcp/-/youtube-mcp-1.0.1.tgz","fileCount":15,"integrity":"sha512-YM+O2VkJPBEheQhvad8JpZhZaZ33X9PvaGW52Rx2QjvdOO7x1I5ZFLuUBjb7c5NRfOCF6JxQKFeRs9HpVuiKtw==","signatures":[{"sig":"MEUCIEeIe9h+R/bN5TCTJoABz/MmTJDAXhNYG2EyF4ubTTrVAiEA0IueAZIZiLhw+f7Y4uNINn2a5IrMilUrkp4svqxopB0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41010},"main":"./lib/index.mjs","type":"module","exports":{".":{"import":"./lib/index.mjs"}},"gitHead":"131501dc29c2ca40df77b2cda2ce653a084ed869","scripts":{"test":"PYTHONPATH= PYTHONHOME= node --experimental-vm-modules node_modules/jest/bin/jest.js --detectOpenHandles --forceExit","prepare":"tsc && shx chmod +x ./lib/index.mjs"},"_npmUser":{"name":"bingyin","email":"bingyintech@gmail.com"},"repository":{"url":"git+https://github.com/9bingyin/youtube-mcp.git","type":"git"},"_npmVersion":"11.4.2","description":"A simplified MCP server for extracting subtitles from videos. Supports YouTube, Facebook, TikTok and other platforms via yt-dlp.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"rimraf":"^6.0.1","spawn-rx":"^4.0.0","@modelcontextprotocol/sdk":"0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.3","@types/jest":"^29.5.14","@jest/globals":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/youtube-mcp_1.0.1_1753262336589_0.09760615312889365","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@bingyin/youtube-mcp","version":"1.0.2","keywords":["mcp","subtitles","captions","youtube","yt-dlp","video","transcript","llm","claude"],"author":{"name":"Bingyin","email":"realbingyin@outlook.com"},"license":"MIT","_id":"@bingyin/youtube-mcp@1.0.2","maintainers":[{"name":"bingyin","email":"bingyintech@gmail.com"}],"homepage":"https://github.com/9bingyin/youtube-mcp#readme","bugs":{"url":"https://github.com/9bingyin/youtube-mcp/issues"},"bin":{"youtube-mcp":"lib/index.mjs"},"dist":{"shasum":"3f4622d8b1abce426404e49204df8758c7296439","tarball":"https://registry.npmjs.org/@bingyin/youtube-mcp/-/youtube-mcp-1.0.2.tgz","fileCount":15,"integrity":"sha512-myXXmoTtOb0hrsI41owYh5ZyQtM5qRtzEw5A0/4mmXLz7zb1KwsfU70rM8Do0w/q5usdpJpS4dTofS7ysvFQsQ==","signatures":[{"sig":"MEUCICpXuc5Ke80t1jrjYXtV9cpZ3L91B0/MW+7aVg88n8XzAiEAxcraPLlL/azUulGfFY3c7v7gekYFtWsMB+BryT8XnWU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43712},"main":"./lib/index.mjs","type":"module","exports":{".":{"import":"./lib/index.mjs"}},"gitHead":"b1e1f816b42a40b1b4185b2f1ca15df0206b2ac6","scripts":{"test":"PYTHONPATH= PYTHONHOME= node --experimental-vm-modules node_modules/jest/bin/jest.js --detectOpenHandles --forceExit","prepare":"tsc && shx chmod +x ./lib/index.mjs"},"_npmUser":{"name":"bingyin","email":"bingyintech@gmail.com"},"repository":{"url":"git+https://github.com/9bingyin/youtube-mcp.git","type":"git"},"_npmVersion":"11.4.2","description":"A simplified MCP server for extracting subtitles from videos. Supports YouTube, Facebook, TikTok and other platforms via yt-dlp.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"rimraf":"^6.0.1","spawn-rx":"^4.0.0","@modelcontextprotocol/sdk":"0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.3","@types/jest":"^29.5.14","@jest/globals":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/youtube-mcp_1.0.2_1753263785864_0.678520131917711","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@bingyin/youtube-mcp","version":"1.0.3","keywords":["mcp","subtitles","captions","youtube","yt-dlp","video","transcript","llm","claude"],"author":{"name":"Bingyin","email":"realbingyin@outlook.com"},"license":"MIT","_id":"@bingyin/youtube-mcp@1.0.3","maintainers":[{"name":"bingyin","email":"bingyintech@gmail.com"}],"homepage":"https://github.com/9bingyin/youtube-mcp#readme","bugs":{"url":"https://github.com/9bingyin/youtube-mcp/issues"},"bin":{"youtube-mcp":"lib/index.mjs"},"dist":{"shasum":"2776f47c896739d4ff4ca09bdb85a181370b9d2a","tarball":"https://registry.npmjs.org/@bingyin/youtube-mcp/-/youtube-mcp-1.0.3.tgz","fileCount":15,"integrity":"sha512-RAFNogOYKqxHAwJwZRgb5nrPjWEdCOPZSletFTRDNI/BZaxOFMrjxV1Zt6iz/PVZVZQCqMVklHGVDk8fmqIGrQ==","signatures":[{"sig":"MEUCIQD/gf9746wrmUwMoTRl5STFBJn3Yi4gzLZ0bqZ1UscFGQIgalQvD2dfcpgs//IyzLdiMLmwrPcyHoHd9lXLuRm8Gxo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43748},"main":"./lib/index.mjs","type":"module","exports":{".":{"import":"./lib/index.mjs"}},"gitHead":"26322bf079dd8b27d924b376293266a51d218a7e","scripts":{"test":"PYTHONPATH= PYTHONHOME= node --experimental-vm-modules node_modules/jest/bin/jest.js --detectOpenHandles --forceExit","prepare":"tsc && shx chmod +x ./lib/index.mjs"},"_npmUser":{"name":"bingyin","email":"bingyintech@gmail.com"},"repository":{"url":"git+https://github.com/9bingyin/youtube-mcp.git","type":"git"},"_npmVersion":"11.4.2","description":"A simplified MCP server for extracting subtitles from videos. Supports YouTube, Facebook, TikTok and other platforms via yt-dlp.","directories":{},"_nodeVersion":"24.4.1","dependencies":{"rimraf":"^6.0.1","spawn-rx":"^4.0.0","@modelcontextprotocol/sdk":"0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"shx":"^0.3.4","jest":"^29.7.0","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.3","@types/jest":"^29.5.14","@jest/globals":"^29.7.0"},"_npmOperationalInternal":{"tmp":"tmp/youtube-mcp_1.0.3_1753266597274_0.5333680560718241","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@bingyin/youtube-mcp","version":"1.0.4","description":"A simplified MCP server for extracting subtitles from videos. Supports YouTube, Facebook, TikTok and other platforms via yt-dlp.","keywords":["mcp","subtitles","captions","youtube","yt-dlp","video","transcript","llm","claude"],"homepage":"https://github.com/9bingyin/youtube-mcp#readme","bugs":{"url":"https://github.com/9bingyin/youtube-mcp/issues"},"repository":{"type":"git","url":"git+https://github.com/9bingyin/youtube-mcp.git"},"bin":{"youtube-mcp":"lib/index.mjs"},"main":"./lib/index.mjs","scripts":{"prepare":"tsc && shx chmod +x ./lib/index.mjs","test":"PYTHONPATH= PYTHONHOME= node --experimental-vm-modules node_modules/jest/bin/jest.js --detectOpenHandles --forceExit"},"author":{"name":"Bingyin","email":"realbingyin@outlook.com"},"license":"MIT","type":"module","exports":{".":{"import":"./lib/index.mjs"}},"dependencies":{"@modelcontextprotocol/sdk":"0.7.0","rimraf":"^6.0.1","spawn-rx":"^4.0.0"},"devDependencies":{"@jest/globals":"^29.7.0","@types/jest":"^29.5.14","jest":"^29.7.0","shx":"^0.3.4","ts-jest":"^29.2.5","ts-node":"^10.9.2","typescript":"^5.6.3"},"_id":"@bingyin/youtube-mcp@1.0.4","gitHead":"1c5b94e28fd1a1ec4ff9afc43e36737ca4592dd5","_nodeVersion":"24.4.1","_npmVersion":"11.4.2","dist":{"integrity":"sha512-lAfnCKId2xSHEi2GmNoDK99M/ciphyOMfuBADOpAXwpMCK/YrOvd/5yabuPOM/RVg4ntI2dUJbRrbg/z3AREcg==","shasum":"cb72f0b2a794f7aa0e7a9fce2c482001f3e16f7e","tarball":"https://registry.npmjs.org/@bingyin/youtube-mcp/-/youtube-mcp-1.0.4.tgz","fileCount":15,"unpackedSize":51430,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC46s5HPDWzL4vJGpcRXtFYhiKceRpueFeVa/K7MnbtwgIgJMKDABvwbk4swqEHOpQG4S1tJYcgdo2RgX20TcVJ+wc="}]},"_npmUser":{"name":"bingyin","email":"bingyintech@gmail.com"},"directories":{},"maintainers":[{"name":"bingyin","email":"bingyintech@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/youtube-mcp_1.0.4_1753270846419_0.1859416567627199"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-23T08:28:02.807Z","modified":"2025-07-23T11:40:46.830Z","0.0.1":"2025-07-23T08:28:03.033Z","1.0.0":"2025-07-23T08:40:25.334Z","1.0.1":"2025-07-23T09:18:56.788Z","1.0.2":"2025-07-23T09:43:06.039Z","1.0.3":"2025-07-23T10:29:57.467Z","1.0.4":"2025-07-23T11:40:46.636Z"},"bugs":{"url":"https://github.com/9bingyin/youtube-mcp/issues"},"author":{"name":"Bingyin","email":"realbingyin@outlook.com"},"license":"MIT","homepage":"https://github.com/9bingyin/youtube-mcp#readme","keywords":["mcp","subtitles","captions","youtube","yt-dlp","video","transcript","llm","claude"],"repository":{"type":"git","url":"git+https://github.com/9bingyin/youtube-mcp.git"},"description":"A simplified MCP server for extracting subtitles from videos. Supports YouTube, Facebook, TikTok and other platforms via yt-dlp.","maintainers":[{"name":"bingyin","email":"bingyintech@gmail.com"}],"readme":"# youtube-mcp\n\nA simplified MCP (Model Context Protocol) server for extracting subtitles from videos. Supports YouTube, Facebook, TikTok and other platforms via yt-dlp.\n\n## Features\n\n* **Get Available Subtitles**: List all available subtitle languages for any video\n* **Extract Subtitles**: Download subtitles in original format (SRT/VTT) for any language\n* **Timestamp Control**: Optional `--without-timestamp` parameter to remove timestamps from subtitle output\n* **Multi-Platform Support**: Works with YouTube, Facebook, TikTok, and other yt-dlp supported platforms\n* **Auto-Generated Fallback**: Automatically falls back to machine-generated subtitles when manual ones aren't available\n* **MCP Integration**: Works seamlessly with Claude and other MCP-compatible LLMs\n\n## Installation\n\n### Prerequisites\n\nInstall `yt-dlp` based on your operating system:\n\n```bash\n# Windows\nwinget install yt-dlp\n\n# macOS\nbrew install yt-dlp\n\n# Linux\npip install yt-dlp\n```\n\n### With [Claude Desktop](https://claude.ai/desktop)\n\n1. Open Claude Desktop settings\n2. Add this MCP server configuration:\n\n**Default mode (with timestamps):**\n```json\n{\n  \"mcpServers\": {\n    \"youtube\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@bingyin/youtube-mcp\"\n      ]\n    }\n  }\n}\n```\n\n**Without timestamps:**\n```json\n{\n  \"mcpServers\": {\n    \"youtube\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@bingyin/youtube-mcp\",\n        \"--without-timestamp\"\n      ]\n    }\n  }\n}\n```\n\n3. Restart Claude Desktop\n\n### Manual Installation\n\n```bash\nnpm install -g @bingyin/youtube-mcp\n```\n\n## Available Tools\n\n### `get_available_subtitles`\nList available subtitle languages for a video.\n\n**Input:**\n- `url` (string, required): Video URL\n\n### `get_subtitles` \nDownload subtitle content for a specific language (returns SRT/VTT format).\n\n**Input:**\n- `url` (string, required): Video URL\n- `language` (string, optional): Language code (e.g., 'en', 'zh', 'ja'). Defaults to 'en'\n\n## Manual Start\n\n**With timestamps (default):**\n```bash\nnpx @bingyin/youtube-mcp\n```\n\n**Without timestamps:**\n```bash\nnpx @bingyin/youtube-mcp --without-timestamp\n```\n\n## Requirements\n\n* Node.js 20+\n* `yt-dlp` in system PATH\n* MCP-compatible LLM service\n\n## Supported Platforms\n\nThanks to yt-dlp, this tool supports subtitle extraction from:\n- YouTube\n- Facebook\n- TikTok  \n- Instagram\n- Twitter/X\n- And 1000+ other sites\n\n## Documentation\n\n- [API Reference](./docs/api.md)\n- [Configuration](./docs/configuration.md)\n- [Error Handling](./docs/error-handling.md)\n- [Contributing](./docs/contributing.md)\n\n## License\n\nMIT\n\n## Author\n\nDewei Yen\n\nBingyin\n\n## Acknowledgments\n\nThis project is based on [yt-dlp-mcp](https://github.com/kevinwatt/yt-dlp-mcp) by Dewei Yen, simplified to focus on subtitle extraction functionality.\n\n\n","readmeFilename":"README.md"}