YouTube Translate

io.github.brianshin22Published by GitHub account brianshin22v0.2.1Updated Oct 29, 2026

Transcripts, translations, summaries, subtitles, and search for public YouTube videos.

VerifiedStreamable HTTPWeb executableKnowledge & MemoryMedia & Design

Overview

AI-generated overview

Hosted MCP server that lets an assistant pull transcripts, translations, subtitles, summaries and in-video search results from public YouTube videos.

What you can do
  • Queue a YouTube video for processing and check its job status
  • Fetch a transcript as plain text or timestamped segments
  • Translate a transcript into another language
  • Generate translated subtitles in SRT or VTT format
  • Produce short, medium or long summaries of a video
  • Search inside a video for passages with timestamps and positions
When to use it
Useful when you want an assistant to work with the spoken content of public YouTube videos: summarizing a talk, translating or subtitling a video, or locating a specific passage without watching it. Long videos may need retries because tool calls time out after about 75 seconds by default.
Requirements
A remote endpoint at api.youtubetranslate.com over streamable HTTP, with OAuth account linking (PKCE, short-lived tokens) or an account-owned API key sent as an X-API-Key header. A local stdio install instead needs Python 3.12+ and the YOUTUBE_TRANSLATE_API_KEY environment variable; Docker is optional.
Before you install
Requires an account and credentials: an OAuth-linked account or an API key in the X-API-Key header, or YOUTUBE_TRANSLATE_API_KEY locally. Video URLs and processing requests go to the third-party service. The README notes that the OAuth flow was not verified through ChatGPT's or Claude's own connection UI, and that paid credits cannot be sold in-chat.

Installation

In SourceWeft

  1. Open YouTube Translate in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.brianshin22%2Fyoutube-translate/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "youtube-translate": {
      "type": "http",
      "url": "https://api.youtubetranslate.com/mcp"
    }
  }
}

README

YouTube Translate MCP

[smithery badge]

A Model Context Protocol (MCP) server for accessing the YouTube Translate API, allowing you to obtain transcripts, translations, and summaries of YouTube videos.

Features

  • Get transcripts of YouTube videos
  • Translate transcripts to different languages
  • Generate subtitles in SRT or VTT format
  • Create summaries of video content
  • Search for specific content within videos

Hosted remote MCP

Production endpoint: https://api.youtubetranslate.com/mcp using streamable HTTP.

Preferred authentication is OAuth. The server returns a protected-resource discovery challenge, and the API provides public-client registration, S256 PKCE, owner consent, short-lived access tokens, refresh rotation, and revocation. Send Authorization: Bearer <access token> after linking your account.

For legacy clients, send an account-owned user key on every request:

text
X-API-Key: ut-user-...

For local stdio, YOUTUBE_TRANSLATE_API_KEY remains supported. Every hosted request is authenticated before tool discovery or invocation, and the transport is stateless. No shared administrative credential is used. The account page provides a disconnect action that revokes an assistant's token family.

Tools

  • start_video: queue a YouTube URL and return a job ID.
  • get_video_status: check processing state by job ID or YouTube ID.
  • get_transcript: return text or timestamped segments.
  • get_translation: request and return a translated transcript.
  • get_subtitles: generate and return translated SRT or VTT.
  • get_summary: generate short, medium, or long summaries.
  • search_video: find passages with global positions and timestamps.

High-level tools wait up to TOOL_TIMEOUT_SECONDS (75 by default). Longer videos return a processing message and should be retried by the agent.

Run remotely

bash
uv run youtube-translate-mcp --transport streamable-http --host 0.0.0.0 --port 8000

MCP_ALLOWED_HOSTS must include the public hostname used by the reverse proxy. Requests without X-API-Key are rejected.

ChatGPT and Claude

Use the hosted URL with OAuth where the client supports it. Account-owned API-key headers remain an alternative. The production OAuth flow and MCP invocation have been verified with an outside client, but not through ChatGPT's or Claude's own connection UI. Google account signup still needs this application's configured OIDC client. Public directory review and submission are not complete. Do not promise in-chat purchase: current ChatGPT plugin rules prohibit selling digital credits through the plugin.

Installation

Installing via Smithery

To install youtube-translate-mcp for Claude Desktop automatically via Smithery:

bash
npx -y @smithery/cli install @brianshin22/youtube-translate-mcp --client claude

Installing Manually

This package requires Python 3.12 or higher:

bash
# Using uv (recommended)uv pip install youtube-translate-mcp
# Using pippip install youtube-translate-mcp

Or install from source:

bash
# Clone the repositorygit clone https://github.com/yourusername/youtube-translate-mcp.gitcd youtube-translate-mcp
# Using uv (recommended)uv pip install -e .
# Using pippip install -e .

Usage

To run the server:

bash
# Using stdio transport (default)YOUTUBE_TRANSLATE_API_KEY=your_api_key youtube-translate-mcp
# Using SSE transportYOUTUBE_TRANSLATE_API_KEY=your_api_key youtube-translate-mcp --transport sse --port 8000

Docker

You can also run the server using Docker:

bash
# Build the Docker imagedocker build -t youtube-translate-mcp .
# Run with stdio transportdocker run -e YOUTUBE_TRANSLATE_API_KEY=your_api_key youtube-translate-mcp
# Run with SSE transportdocker run -p 8000:8000 -e YOUTUBE_TRANSLATE_API_KEY=your_api_key youtube-translate-mcp --transport sse

Environment Variables

  • YOUTUBE_TRANSLATE_API_KEY: Required. Your API key for accessing the YouTube Translate API.

Deployment with Smithery

This package includes a smithery.yaml file for easy deployment with Smithery.

To deploy, set the YOUTUBE_TRANSLATE_API_KEY configuration parameter to your YouTube Translate API key.

Development

Prerequisites

  • Python 3.12+
  • Docker (optional)

Setup

bash
# Create and activate a virtual environment using uv (recommended)uv venvsource .venv/bin/activate  # On Windows: .venv\Scripts\activate
# Install dependencies using uvuv pip install -e .
# Alternatively, with standard toolspython -m venv .venvsource .venv/bin/activate  # On Windows: .venv\Scripts\activatepip install -e .

Testing with Claude Desktop

To test with Claude Desktop (macOS/Windows only), you'll need to add your server to the Claude Desktop configuration file located at ~/Library/Application Support/Claude/claude_desktop_config.json.

Method 1: Local Development

Use this method if you want to test your local development version:

json
{    "mcpServers": {        "youtube-translate": {            "command": "uv",            "args": [                "--directory",                "/ABSOLUTE/PATH/TO/youtube-translate-mcp",                "run",                "-m", "youtube_translate_mcp"            ],            "env": {              "YOUTUBE_TRANSLATE_API_KEY": "YOUR_API_KEY"            }        }    }}

Make sure to replace /ABSOLUTE/PATH/TO/youtube-translate-mcp with the actual path to your project directory.

Method 2: Docker-based Testing

If you prefer to test using Docker (recommended for more reproducible testing):

json
{  "mcpServers": {    "youtube-translate": {      "command": "docker",      "args": [        "run",        "-i",        "--rm",        "-e",        "YOUTUBE_TRANSLATE_API_KEY",        "youtube-translate-mcp"      ],      "env": {        "YOUTUBE_TRANSLATE_API_KEY": "YOUR_API_KEY"      }    }  }}

Replace YOUR_API_KEY with your actual YouTube Translate API key.

For more information on using MCP servers with Claude Desktop, see the MCP documentation.

Debugging

  • The normal MCP Inspector has a built in timeout for MCP tool calls, which is generally too short for these video processing calls (as of March 13, 2025). Better to use Claude Desktop and look at the MCP logs from Claude at ~/Library/Logs/Claude/mcp-server-{asfasf}.log.
  • Can do tail -f {log-file}.log to follow as you interact with Claude.

Directory submissions and launch learnings

See submission/README.md for the ChatGPT review status, Claude preparation, exact findings and fixes, evidence, and remaining steps. The cross-product submission playbook captures reusable requirements and failure modes for future services.

License

MIT

Source: README.md at commit 75ca25b

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v0.2.1LatestOct 29, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts