Transcriptor MCP について
Transcriptor MCPは、YouTubeなど11の動画プラットフォームから文字起こし、字幕、チャプター、メタデータ、単一フレームを取得し、動画の分析や検索に利用できます。ホスト型エンドポイントとセルフホストに対応し、長文は分割して返します。
主な機能
- 01文字起こしと字幕の取得
- 02字幕トラックとチャプターの参照
- 03動画メタデータとフレームの取得
- 04プレイリストの文字起こし取得
- 05YouTube動画の検索
活用シーン
- 01動画内容の要約
- 02指定言語の字幕の書き出し
- 03動画内の特定場面の検索
- 04プレイリストのテキスト取得
MCP 対応
動画の文字起こし、字幕、チャプター、メタデータ、フレーム、YouTube検索のツールをMCPクライアントに提供します。ホスト型エンドポイントまたはDockerで利用でき、Streamable HTTPとstdioに対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://transcriptor.gateway.mcpal.io/mcpclaude mcp add --transport http samson-art-transcriptor https://transcriptor.gateway.mcpal.io/mcp{"mcpServers":{"samson-art-transcriptor":{"type":"http","url":"https://transcriptor.gateway.mcpal.io/mcp"}}}Cursor で開く{"servers":{"samson-art-transcriptor":{"type":"http","url":"https://transcriptor.gateway.mcpal.io/mcp"}}}VS Code で開く{"mcpServers":{"samson-art-transcriptor":{"type":"http","url":"https://transcriptor.gateway.mcpal.io/mcp"}}}{"mcpServers":{"samson-art-transcriptor":{"serverUrl":"https://transcriptor.gateway.mcpal.io/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
🎬 AI アシスタントが動画を視聴できるようになりました!
サーバーを1つ接続するだけで、Claude、ChatGPT などに動画について質問できます。文字起こし、チャプター、メタデータ、または特定のフレームについて質問できます。YouTube だけでなく、11 のプラットフォームで利用できます。
⚡ 30秒で接続
ホストされたエンドポイントはこちらです。
https://transcriptor.gateway.mcpal.io/mcp
🖱️ ワンクリック
⌨️ 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 を選択します。 |
| ChatGPT | ChatGPT プラグインディレクトリの 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(デフォルト)またはpngwidth— デフォルトは1280、最大値は1920です。ソースより大きい値は指定できませんquality—2~31。jpeg形式のみ
レスポンス:画像ブロックに加え、url、timestampSeconds、timestamp、mimeType、sizeBytes、width が含まれます。このツールには ffmpeg が必要です。Dockerイメージには同梱されています。
get_playlist_transcripts
入力:
url— プレイリストURL、またはlist=を含む視聴URLtype、lang、format—get_raw_subtitlesと同じですが、langは必須です。元の言語が選択されるのは、一度に1本の動画のみですplaylistItems—1:5、1,3,7、-1などのyt-dlpの-I値maxItems— 動画の最大数
レスポンス:results。各項目には videoId と text が含まれます。
入力:
query— 検索テキストlimit— デフォルトは10、最大50offset— スキップする検索結果の数uploadDateFilter—hour、today、week、month、またはyearresponse_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で表示されます。
|
|
|
|
🌍 プラットフォーム
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_HOST | 4200 と 0.0.0.0 | HTTP リスナー |
COOKIES_FILE_PATH | — | アカウントが必要な動画用の Netscape cookies ファイルです。cookies.example.txt を参照してください |
WHISPER_MODE | off | 動画に字幕がない場合に音声を書き起こすには、local または api を設定します。次に WHISPER_BASE_URL または WHISPER_API_KEY を設定します。WHISPER_MAX_DURATION_SECONDS は、指定した長さを超える動画とライブ配信をスキップします。プラットフォームから長さが報告されない動画は、音声のダウンロード後に ffprobe で測定されます |
CACHE_MODE | off | 字幕とメタデータをキャッシュするには、redis と CACHE_REDIS_URL を設定します |
YT_DLP_MAX_CONCURRENCY | 4 | 同時に実行できる yt-dlp/ffmpeg プロセスの数です。YT_DLP_MAX_QUEUE(8)は、待機できる呼び出しの数です。これを超えると、呼び出しは「server busy」としてただちに拒否されます。1 回の呼び出しで最大約 40 MiB を使用するため、この上限はメモリではなく、プラットフォームによるスロットリングとレイテンシを抑えます |
SUBTITLES_RATE_LIMIT_HOLD_MS | 600000 | 字幕のダウンロードに対してプラットフォームが 429 を返した後、サーバーはこの時間、そのプラットフォームへの字幕リクエストを停止し、ただちに rate_limited を返します。繰り返し発生するたびに待機時間は 2 倍になり、最大 1 時間です。ダウンロードに成功すると解除されます。メタデータは保留されません |
CANARY_INTERVAL_MS | 900000 | HTTP サーバーが経路の動作を確認するために、トランスクリプトを 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 をお読みください。
💬 サポート
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。