JSPM

@emit-ia/youtube-transcript-mcp

1.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 18
  • Score
    100M100P100Q70091F
  • License MIT

MCP server for YouTube transcript extraction

Package Exports

  • @emit-ia/youtube-transcript-mcp
  • @emit-ia/youtube-transcript-mcp/build/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@emit-ia/youtube-transcript-mcp) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

YouTube Transcript MCP Server

An MCP (Model Context Protocol) server for extracting and processing YouTube video transcripts.

Features

  • Extract transcripts from YouTube videos
  • Search within transcripts for specific content
  • Batch processing of multiple videos
  • Multiple output formats (JSON, text, SRT, VTT)
  • Context-aware search with configurable windows

Installation

npx @emit-ia/youtube-transcript-mcp

Local Development

git clone https://github.com/emit-ia/youtube-transcript-mcp.git
cd youtube-transcript-mcp
npm install
npm run build

Usage

As MCP Server

Option 1: Via NPX

Add to your Claude Desktop configuration:

{
  "mcpServers": {
    "youtube-transcript": {
      "command": "npx",
      "args": ["@emit-ia/youtube-transcript-mcp"]
    }
  }
}

Option 2: Local Installation

Add to your Claude Desktop configuration:

{
  "mcpServers": {
    "youtube-transcript": {
      "command": "node",
      "args": ["/path/to/youtube-transcript-mcp/build/index.js"]
    }
  }
}

Available Tools

youtube_get_transcript

Extract transcript from a YouTube video.

Parameters:

  • url (required): YouTube video URL
  • language (optional): Language code (default: "en")
  • format (optional): Output format - "json", "text", "srt", "vtt" (default: "json")

youtube_search_transcript

Search for specific text within a transcript.

Parameters:

  • url (required): YouTube video URL
  • query (required): Text to search for
  • contextWindow (optional): Seconds of context (default: 30)
  • caseSensitive (optional): Case sensitive search (default: false)
  • language (optional): Language code (default: "en")

youtube_batch_transcripts

Process multiple videos simultaneously.

Parameters:

  • urls (required): Array of YouTube video URLs
  • language (optional): Language code (default: "en")
  • maxConcurrent (optional): Max concurrent requests (default: 3)

youtube_transcript_summary

Get formatted summary of transcript content.

Parameters:

  • url (required): YouTube video URL
  • summaryType (optional): "brief", "detailed", "topics", "timestamps" (default: "brief")
  • language (optional): Language code (default: "en")

Example Usage

// Get basic transcript
const transcript = await youtube_get_transcript({
  url: "https://youtube.com/watch?v=dQw4w9WgXcQ",
  format: "json"
});

// Search within transcript
const searchResults = await youtube_search_transcript({
  url: "https://youtube.com/watch?v=dQw4w9WgXcQ",
  query: "important topic",
  contextWindow: 30
});

Requirements

  • Node.js 18+
  • No API keys required (uses public transcript data)

Limitations

  • Only works with videos that have public transcripts
  • Rate limiting may apply for high-volume usage
  • Transcript availability depends on YouTube's availability

License

MIT