# MCP Browser YouTube Transcript
A Docker-based MCP server that uses Puppeteer (Headless Chrome) to fetch YouTube transcripts directly from the video page UI. This approach bypasses the aggressive rate limiting (HTTP 429) often encountered with standard API endpoints or `youtube-dl`.
## Features
- `get_transcript`: Fetch the full plain text transcript.
- `get_timed_transcript`: Fetch the transcript with timestamps and deep links.
- `get_video_info`: Fetch video metadata using `youtube-dl-exec`.
## How it Works
1. **Browser Automation**: Launches a headless Chromium instance inside the Docker container.
2. **UI Scraping**: Navigates to the YouTube video URL, clicks "Show transcript", and parses the DOM elements.
3. **Efficiency**: Uses a global browser instance to avoid the overhead of launching a new browser for every request.
## Usage
### Docker (Recommended)
1. Build and run the server:
```bash
docker compose build
docker compose run --rm -i mcp-browser-youtube
```
2. Configure your MCP client (e.g., Claude Desktop, VS Code) to use the Docker command:
```json
{
"mcpServers": {
"youtube-browser": {
"command": "docker",
"args": ["compose", "-f", "/path/to/mcp-browser-youtube-transcript/docker-compose.yml", "run", "--rm", "-i", "mcp-browser-youtube"]
}
}
}
```
### Local Development
1. Install dependencies:
```bash
npm install
```
2. Run the server:
```bash
node index.js
```