{"_id":"@danielres/mcp-youtube","name":"@danielres/mcp-youtube","dist-tags":{"latest":"0.9.6"},"versions":{"0.9.6":{"name":"@danielres/mcp-youtube","version":"0.9.6","type":"module","bin":{"mcp-youtube":"dist/index.js"},"description":"YouTube downloader for MCP","main":"dist/index.js","scripts":{"prepublish":"git clean -xdf dist && bun build --target node src/index.ts --outdir dist","build":"bun build --target node src/index.ts --outdir dist","test":"bun test","publish-bak":"npm run prepublish && npm publish --access public && docker build -t danielres/mcp-youtube . && docker push danielres/mcp-youtube","publish":"npm run prepublish && npm publish --access public"},"author":{"name":"danielres"},"license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^0.6.0","rimraf":"^6.0.1","spawn-rx":"^4.0.0"},"devDependencies":{"shx":"^0.3.4","bun-types":"latest"},"_id":"@danielres/mcp-youtube@0.9.6","gitHead":"201ae2b8cfca5d53ec2395ad88378c44de82ee9b","_nodeVersion":"23.11.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-JX0I5DnH0yq5mXm3mVHRlnH8HxbYt76QPfuemtz64HloeMW9vDqcBsGV67Jokcw1JCPN+0c+vabcu7alDKOr3w==","shasum":"05da69f056847299bc6706880e655b1d0b8991fb","tarball":"https://registry.npmjs.org/@danielres/mcp-youtube/-/mcp-youtube-0.9.6.tgz","fileCount":15,"unpackedSize":928323,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIC5zY2SrcfdhJ+4bpbjl8YZYkt0NxyND+DuEzTj6W6UWAiEAw+DK08J6f4S5wVVWd0YNmRIBYF+cJ7mMmx7j8wJaEKA="}]},"_npmUser":{"name":"danielres","email":"dannn.r@gmail.com","actor":{"name":"danielres","email":"dannn.r@gmail.com","type":"user"}},"directories":{},"maintainers":[{"name":"danielres","email":"dannn.r@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-youtube_0.9.6_1750973224091_0.0017973679986398317"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-26T21:27:03.998Z","0.9.6":"2025-06-26T21:27:04.342Z","modified":"2025-06-26T21:27:04.637Z"},"maintainers":[{"name":"danielres","email":"dannn.r@gmail.com"}],"description":"YouTube downloader for MCP","author":{"name":"danielres"},"license":"MIT","readme":"# YouTube MCP Server\n\nThis project connects YouTube video processing capabilities to Claude AI via the [Model Context Protocol](https://modelcontextprotocol.io/introduction). It uses `yt-dlp` for downloading subtitles and `ffmpeg` for screenshot extraction. Users can ask Claude to summarize YouTube videos by providing the URL.\n\n## System Architecture Diagram\n\n```mermaid\ngraph TD\n    A[User] --> B[Claude AI]\n    B --> D[mcp-youtube]\n    D --> E[yt-dlp Subtitles]\n    D --> F[ffmpeg Screenshots]\n    D --> G[Temporary Storage]\n    G --> H[Auto-Cleanup]\n\n    style A fill:#FFE4B5,stroke:#333\n    style B fill:#98FB98,stroke:#333\n    style D fill:#D0ECE7,stroke:#333\n    style E fill:#FFB6C1,stroke:#333\n    style F fill:#DDA0DD,stroke:#333\n    style G fill:#FFFACD,stroke:#333\n    style H fill:#FFD700,stroke:#333\n\n    subgraph MCP\n        D --> E\n        D --> F\n        D --> G\n    end\n\n    subgraph Temporary Storage\n        G --> H\n    end\n```\n\n## Getting Started\n\n### Prerequisites\n- `yt-dlp` and `ffmpeg` installed (via Homebrew, WinGet, or other package managers)\n- Node.js and npm installed\n\n```bash\nbrew install yt-dlp ffmpeg\n```\n\n### Installation\n\n#### Executable via Node.js (Recommended)\n1. Install the MCP server:\n   ```bash\n   brew install nvm\n   nvm install --lts\n   nvm use --lts\n   npm install -g @novemberde/mcp-youtube\n   ```\n\n2. Configure Claude to use the MCP server:\n\n   Add the following to your `claude_desktop_config.json`:\n   ```json\n   {\n     \"mcpServers\": {\n       \"mcp-youtube\": {\n         \"command\": \"npx\",\n         \"args\": [\"@novemberde/mcp-youtube\"]\n       }\n     }\n   }\n   ```\n\n#### Executable via Docker\n\nPrerequisites:\n- Docker installed\n\nConfigure Claude to use the Docker container:\n\n```json\n{\n  \"mcpServers\": {\n    \"mcp-youtube\": {\n      \"command\": \"docker\",\n      \"args\": [\"run\", \"-i\", \"--rm\", \"novemberde/mcp-youtube\"]\n    }\n  }\n}\n```\n\n\n\n## Available Tools\n\n### 1. `download_youtube_url`\nDownloads and extracts subtitles from a YouTube video.\n\n**Parameters:**\n- `url` (required): YouTube video URL\n\n**Example:**\n```json\n{\n  \"url\": \"https://www.youtube.com/watch?v=example\"\n}\n```\n\n### 2. `search_youtube_videos`\nSearches YouTube videos based on a query.\n\n**Parameters:**\n- `query` (required): Search term\n- `max_results` (optional, default=10): Maximum number of results\n\n**Example:**\n```json\n{\n  \"query\": \"how to make pizza\",\n  \"max_results\": 5\n}\n```\n\n**Returns:**\n- Video title, URL, description, duration, view count, uploader name\n\n### 3. `get_screenshots`\nCaptures screenshots from specific timestamps of a YouTube video.\n\n**Parameters:**\n- `url` (required): YouTube video URL\n- `timestamps` (required): Array of timestamps in `HH:MM:SS` format\n\n**Example:**\n```json\n{\n  \"url\": \"https://www.youtube.com/watch?v=example\",\n  \"timestamps\": [\"00:01:30\", \"00:05:45\"]\n}\n```\n\n**Returns:**\n- File paths to saved screenshots\n\n## Notes\n- Ensure `yt-dlp` and `ffmpeg` are installed globally.\n- The server uses temporary directories for processing, which are automatically cleaned up.\n- Error handling provides descriptive messages for troubleshooting.\n\n## Docker\n\n```bash\ndocker build -t novemberde/mcp-youtube .\ndocker run -d -p 3000:3000 novemberde/mcp-youtube\n```\n\n### Push to Docker Hub\n\n```bash\ndocker push novemberde/mcp-youtube\n```\n\n## Contributing\nContributions are welcome! Please:\n1. Fork the repository\n2. Create a feature branch (`git checkout -b feature/your-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin feature/your-feature`)\n5. Create a new Pull Request\n\n## License\nThis project is licensed under the MIT License - see the [COPYING](COPYING) file for details.\n","readmeFilename":"README.md","_rev":"1-a0f2a42bef9b68355aac33635d457e43"}