mcpField
T
Transcriptor MCP

Transcriptor MCP

リモート
transcriptor-mcp.orgメディア・デザイン242 週間前に更新
リポジトリ公式サイト

Transcriptor MCP について

Transcriptor MCPは、YouTubeなど11の動画プラットフォームから文字起こし、字幕、チャプター、メタデータ、単一フレームを取得し、動画の分析や検索に利用できます。ホスト型エンドポイントとセルフホストに対応し、長文は分割して返します。

主な機能

  1. 01文字起こしと字幕の取得
  2. 02字幕トラックとチャプターの参照
  3. 03動画メタデータとフレームの取得
  4. 04プレイリストの文字起こし取得
  5. 05YouTube動画の検索

活用シーン

  1. 01動画内容の要約
  2. 02指定言語の字幕の書き出し
  3. 03動画内の特定場面の検索
  4. 04プレイリストのテキスト取得

MCP 対応

動画の文字起こし、字幕、チャプター、メタデータ、フレーム、YouTube検索のツールをMCPクライアントに提供します。ホスト型エンドポイントまたはDockerで利用でき、Streamable HTTPとstdioに対応します。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://transcriptor.gateway.mcpal.io/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
ocidocker.io/artsamsonov/transcriptor-mcp:1.5.21

ツール

詳細

Transcriptor MCP

🎬 AI アシスタントが動画を視聴できるようになりました!

サーバーを1つ接続するだけで、Claude、ChatGPT などに動画について質問できます。文字起こし、チャプター、メタデータ、または特定のフレームについて質問できます。YouTube だけでなく、11 のプラットフォームで利用できます。

ウェブサイト ChatGPT MCP Registry Docker MCP Apps ライセンス

接続方法 · 質問できること · ウィジェット · プラットフォーム · セルフホスト


⚡ 30秒で接続

ホストされたエンドポイントはこちらです。

https://transcriptor.gateway.mcpal.io/mcp
🖱️ ワンクリック

Cursor に追加 VS Code にインストール LM Studio に追加

⌨️ Claude Code 用のコマンド1つ
claude mcp add --transport http transcriptor https://transcriptor.gateway.mcpal.io/mcp

次に /mcp を実行し、ブラウザーでサインインを承認します。これで、claude mcp list に ✔ Connected と表示されます。

🧭 ターミナル不要
クライアント操作
Claude(ウェブとデスクトップ)Settings → Customize → Connectors を開きます。Add → Add custom connector を選択し、https://transcriptor.gateway.mcpal.io/mcp を貼り付けて、Add を選択します。
ChatGPTChatGPT プラグインディレクトリの Transcriptor を開き、Install plugin を選択します。求められたらサインインしてください。または、ChatGPT で Plugins を開き、Transcriptor を検索して、Install plugin を選択します。その後、チャットで @Transcriptor と入力します。
Codex同じディレクトリからインストールするだけです。ChatGPT と Codex で共有されています。Codex のタスクでは Sources → Use plugins → Transcriptor を開きます。CLI では /plugins を実行します。
🧩 その他の MCP クライアント

お使いのクライアントが上記にない場合は、次の設定でサーバーを追加してください。

{
  "mcpServers": {
    "transcriptor": {
      "url": "https://transcriptor.gateway.mcpal.io/mcp"
    }
  }
}

サーバーを自分で実行する場合は、セルフホストをご覧ください。ツールは同じで、アカウントは不要です。


🧰 依頼できること

依頼内容ツール
「この動画を要約して」get_transcript
「字幕をSRTファイルでください」get_raw_subtitles
「この動画にはドイツ語の字幕がありますか?」get_available_subtitles
「誰が公開した動画で、再生回数はいくつですか?」get_video_info
「価格についての部分に移動して」get_video_chapters
「4:12の画面を見せて」get_video_frame
「このプレイリストの最初の5本の動画の英語の文字起こしを取得して」get_playlist_transcripts
「Xに関する最近の動画を探して」search_videos(YouTube)

長い文字起こしは複数のパートに分けて返されます。各レスポンスには次のパートを取得するためのカーソルが含まれるため、テキストが失われることはありません。

ツールの全リファレンス(入力と構造化レスポンス)

動画を受け取る各ツールでは、url を指定できます。これは対応プラットフォームへのリンク、またはYouTube IDです。各ツールは content(チャット用のテキスト)と structuredContent(コード用の型付きJSON)を返します。

get_transcript

タイムスタンプ、HTML、話者名を含まない、整形済みのプレーンテキストです。lang を指定しない場合、ツールは動画の元の言語のトラックを返します。YouTube以外の多くのプラットフォームでは、動画の言語が示されません。ツールがどのトラックかを判断できない場合は、トラックの一覧を返すため、type と lang を指定して再度呼び出します。入力項目は get_raw_subtitles と同じです。

レスポンス:videoId、url(サーバーが解決した動画ページ)、type、lang、text、is_truncated、total_length、start_offset、end_offset。さらにテキストがある場合、レスポンスには next_cursor も含まれます。

get_raw_subtitles

分割された、SRTまたはVTT形式の生のコンテンツです。

入力:

  • type — official または auto。lang を指定しない場合、ツールはこのタイプのトラックを選択します
  • lang — 言語コードまたはトラック名。get_available_subtitles に表示されるものを指定します。指定しない場合は、get_transcript と同様に動画の元の言語が選択されます
  • response_limit — デフォルトは 50000、最小値は 1000、最大値は 200000 です
  • next_cursor — 前回のレスポンスのカーソル

レスポンス:get_transcript の各フィールドに加え、format(srt または vtt)と content が含まれます。

get_available_subtitles

レスポンス:official と auto。各フィールドには、ソート済みの言語コード一覧が含まれます。このツールを最初に使用し、その後、上記のツールに type と lang を指定してください。

get_video_info

yt-dlpから取得した拡張メタデータです。

  • 識別情報 — videoId、title、description、webpageUrl
  • 投稿者 — uploader、uploaderId、channel、channelId、channelUrl
  • 数値 — duration、uploadDate、viewCount、likeCount、commentCount
  • 分類情報 — tags、categories、liveStatus、isLive、wasLive、availability
  • 画像 — thumbnail、thumbnails
get_video_chapters

レスポンス:chapters。各項目には startTime、endTime、title が含まれます。動画にチャプターがない場合、リストは空です。

get_video_frame

入力:

  • timecode — "MM:SS" または "HH:MM:SS.mmm"
  • seconds — timecode の代わりに指定します。どちらか一方を指定し、両方は指定しないでください
  • format — jpeg(デフォルト)または png
  • width — デフォルトは 1280、最大値は 1920 です。ソースより大きい値は指定できません
  • quality — 2~31。jpeg形式のみ

レスポンス:画像ブロックに加え、url、timestampSeconds、timestamp、mimeType、sizeBytes、width が含まれます。このツールには ffmpeg が必要です。Dockerイメージには同梱されています。

get_playlist_transcripts

入力:

  • url — プレイリストURL、または list= を含む視聴URL
  • type、lang、format — get_raw_subtitles と同じですが、lang は必須です。元の言語が選択されるのは、一度に1本の動画のみです
  • playlistItems — 1:5、1,3,7、-1 などのyt-dlpの -I 値
  • maxItems — 動画の最大数

レスポンス:results。各項目には videoId と text が含まれます。

#### `search_videos`

入力:

  • query — 検索テキスト
  • limit — デフォルトは10、最大50
  • offset — スキップする検索結果の数
  • uploadDateFilter — hour、today、week、month、またはyear
  • response_format — json(デフォルト)またはmarkdown

レスポンス:results。各項目にはvideoId、title、url、duration、uploader、viewCount、thumbnailが含まれます。


📺 ウィジェット

4つのツール(get_transcript、get_video_info、get_video_frame、search_videos)にはインタラクティブなインターフェースがあります。MCP AppsとChatGPT Apps SDKに対応したクライアントでは、このインターフェースがチャットに表示されます。それ以外のクライアントでは、同じデータがテキストとJSONで表示されます。

search_videosウィジェット:サムネイル、再生時間、視聴回数を表示する検索結果カードのカルーセル

search_videos · 「model context protocol MCP server production」

get_video_frameウィジェット:ステップ操作とタイムコード欄を備えたキャプチャフレーム1枚

get_video_frame · 3:30時点のアーキテクチャスライド

get_transcriptウィジェット:検索可能なタイムスタンプ付き字幕リストの上に動画カードを表示

get_transcript · 3分間のMCP解説動画、公式字幕

get_video_infoウィジェット:サムネイル、チャンネル、視聴回数、高評価数、説明、字幕言語の選択欄

get_video_info · チャンネル、視聴回数、高評価数、169の字幕言語


🌍 プラットフォーム

YouTube · Twitter/X · Instagram · TikTok · Twitch · Vimeo · Facebook · Bilibili · VK · Dailymotion · Reddit

動画を受け取る各ツールは、これら11のプラットフォームのリンクに対応しています。search_videosツールは、yt-dlp ytsearchを通じてYouTubeのみを対象に動作します。

このサーバーは動画ファイルや音声ファイルをダウンロードしません。テキスト、メタデータ、単一フレームを返します。


🐳 セルフホスト

ツールはホスト型エンドポイントと同じです。アカウントは必要ありません。

Docker でサーバーを実行します。イメージはポート 4200 で Streamable HTTP を提供します。

docker run --rm -p 4200:4200 artsamsonov/transcriptor-mcp:latest

次に、クライアントの接続先を http://localhost:4200/mcp に設定します。

stdio の場合は、イメージに明示的なコマンドを指定します。

docker run --rm -i artsamsonov/transcriptor-mcp:latest npm run start:mcp
{
  "mcpServers": {
    "transcriptor": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "artsamsonov/transcriptor-mcp:latest", "npm", "run", "start:mcp"]
    }
  }
}

サーバーは環境変数を指定せずに起動します。以下の各変数は任意です。

変数デフォルト機能
MCP_PORT と MCP_HOST4200 と 0.0.0.0HTTP リスナー
COOKIES_FILE_PATH—アカウントが必要な動画用の Netscape cookies ファイルです。cookies.example.txt を参照してください
WHISPER_MODEoff動画に字幕がない場合に音声を書き起こすには、local または api を設定します。次に WHISPER_BASE_URL または WHISPER_API_KEY を設定します。WHISPER_MAX_DURATION_SECONDS は、指定した長さを超える動画とライブ配信をスキップします。プラットフォームから長さが報告されない動画は、音声のダウンロード後に ffprobe で測定されます
CACHE_MODEoff字幕とメタデータをキャッシュするには、redis と CACHE_REDIS_URL を設定します
YT_DLP_MAX_CONCURRENCY4同時に実行できる yt-dlp/ffmpeg プロセスの数です。YT_DLP_MAX_QUEUE(8)は、待機できる呼び出しの数です。これを超えると、呼び出しは「server busy」としてただちに拒否されます。1 回の呼び出しで最大約 40 MiB を使用するため、この上限はメモリではなく、プラットフォームによるスロットリングとレイテンシを抑えます
SUBTITLES_RATE_LIMIT_HOLD_MS600000字幕のダウンロードに対してプラットフォームが 429 を返した後、サーバーはこの時間、そのプラットフォームへの字幕リクエストを停止し、ただちに rate_limited を返します。繰り返し発生するたびに待機時間は 2 倍になり、最大 1 時間です。ダウンロードに成功すると解除されます。メタデータは保留されません
CANARY_INTERVAL_MS900000HTTP サーバーが経路の動作を確認するために、トランスクリプトを 1 つ取得する間隔です。0 にすると無効になります。動画は CANARY_URL で指定します
YT_DLP_*—タイムアウト、プロキシ、JS ランタイムです。.env.example を参照してください

同じポートで GET /health と GET /metrics も提供します。メトリクスは Prometheus 形式で、mcp_* カウンターを含みます。

トランスポート、REST API、開発

トランスポート。 サーバーが受け付けるのは POST /mcp のみです。GET と DELETE は 405 を返します。サーバーはステートレスで、Mcp-Session-Id を送信しません。

Node プロセスはベアラートークンをチェックしません。認証と TLS のために、リバースプロキシまたはゲートウェイを前段に配置してください。ホスト型エンドポイントも同じ方式で動作します。

REST API。 もう 1 つのイメージで、同じ抽出機能をプレーン HTTP 経由で利用できます。

docker run --rm -p 3000:3000 artsamsonov/transcriptor-mcp-api:latest

Swagger インターフェースは http://localhost:3000/docs にあります。API と MCP サーバーを含む完全なスタックについては、docker-compose.example.yml をお読みください。

開発。

npm ci
npm run build
npm run start:mcp        # stdio
npm run start:mcp:http   # Streamable HTTP on port 4200
npm test

Node.js 22 以降(20 も引き続き動作しますが、2026 年 4 月にサポートが終了しました)と、PATH に設定された yt-dlp が必要です。フレームのキャプチャには ffmpeg が、WHISPER_MAX_DURATION_SECONDS には ffprobe が必要です(どちらも同じパッケージと Docker イメージに含まれています)。その他のスクリプト:lint、type-check、format、test:coverage、test:e2e:api、test:e2e:mcp。

リリース。 リリースはメンテナーが作成します。手順は .claude/skills/release/SKILL.md に記載されています。バージョンは実行時に package.json から src/version.ts を通じて取得されます。v* タグをプッシュすると、CI が両方のイメージをビルドし、server.json から MCP Registry のエントリーを公開します。

構成。 src/mcp.ts(stdio エントリーポイント)、src/mcp-http.ts(Streamable HTTP)、src/mcp-core.ts(ツール、プロンプト、ウィジェット)、src/youtube.ts(yt-dlp)、src/whisper.ts、src/cache.ts、src/index.ts(REST API)、load/(k6)、src/e2e/(Docker スモークテスト)。


🤝 コントリビューション

プルリクエストを歓迎します。まず CONTRIBUTING.md をお読みください。人とコーディングエージェントの両方を対象に、Issue からレビューまでのサイクルについて説明しています。

⚖️ 法的事項

ホスト型エンドポイント transcriptor.gateway.mcpal.io には、利用規約 とプライバシーポリシーが適用されます。

ご自身でホストするサーバーには、これらの文書は適用されません。MIT ライセンスのみが適用されます。

📄 ライセンス

MIT © 2026 samson-art。LICENSE をお読みください。

💬 サポート

イシュー · GitHub プロフィール · LinkedIn

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。