🚀 MCP動画・音声テキスト抽出サーバー
様々な動画プラットフォームや音声ファイルからテキストを抽出する機能を提供するMCPサーバーです。このサーバーは、Model Context Protocol (MCP) を実装し、音声文字起こしサービスへの標準化されたアクセスを提供します。
🚀 クイックスタート
このサーバーは、様々な動画プラットフォームや音声ファイルからテキストを抽出する機能を提供します。以下のセクションで、サポートされているプラットフォーム、コア技術、機能、インストール方法、使用方法などについて詳しく説明します。
✨ 主な機能
- Whisperに基づく高品質な音声認識
- 多言語のテキスト認識
- 様々な音声形式(mp3、wav、m4aなど)のサポート
- MCP準拠のツールインターフェース
- 大きなファイルの非同期処理
📦 インストール
uvを使用する場合(推奨)
uvを使用する場合は、特別なインストールは必要ありません。uvxを使用して動画抽出サーバーを直接実行します。
curl -LsSf https://astral.sh/uv/install.sh | sh
FFmpegのインストール
音声処理にはFFmpegが必要です。以下の方法でインストールできます。
sudo apt update && sudo apt install ffmpeg
sudo pacman -S ffmpeg
brew install ffmpeg
choco install ffmpeg
scoop install ffmpeg
💻 使用例
基本的な使用法
Claude/Cursorの設定
Claude/Cursorの設定に以下を追加します。
"mcpServers": {
"video-extraction": {
"command": "uvx",
"args": ["mcp-video-extraction"]
}
}
高度な使用法
利用可能なMCPツール
- 動画ダウンロード: サポートされているプラットフォームから動画をダウンロードします。
- 音声ダウンロード: サポートされているプラットフォームの動画から音声を抽出します。
- 動画テキスト抽出: 動画からテキストを抽出します(ダウンロードと文字起こし)。
- 音声ファイルテキスト抽出: 音声ファイルからテキストを抽出します。
📚 ドキュメント
サポートされているプラットフォーム
このサービスは、様々なプラットフォームから動画をダウンロードし、音声を抽出することができます。以下は一部の例ですが、これに限定されません。
- YouTube
- Bilibili
- TikTok
- Instagram
- Twitter/X
- Facebook
- Vimeo
- Dailymotion
- SoundCloud
サポートされているプラットフォームの完全なリストについては、yt-dlp supported sites を参照してください。
コア技術
このプロジェクトは、MCPツールを通じてOpenAIのWhisperモデルを使用して音声をテキストに変換します。サーバーは4つの主要なツールを公開しています。
- 動画ダウンロード: サポートされているプラットフォームから動画をダウンロードします。
- 音声ダウンロード: サポートされているプラットフォームの動画から音声を抽出します。
- 動画テキスト抽出: 動画からテキストを抽出します(ダウンロードと文字起こし)。
- 音声ファイルテキスト抽出: 音声ファイルからテキストを抽出します。
MCP統合
このサーバーは、Model Context Protocolを使用して構築されており、以下の機能を提供します。
- ツールをLLMに公開する標準化された方法
- 動画コンテンツと音声ファイルへの安全なアクセス
- Claude DesktopなどのMCPクライアントとの統合
技術スタック
- Python 3.10+
- Model Context Protocol (MCP) Python SDK
- yt-dlp (YouTube動画ダウンロード)
- openai-whisper (コアの音声テキスト変換エンジン)
- pydantic
システム要件
- FFmpeg (音声処理に必要)
- 最低8GBのRAM
- 推奨GPUアクセラレーション (NVIDIA GPU + CUDA)
- 十分なディスク容量 (モデルダウンロードと一時ファイル用)
初回実行時の重要な注意事項
重要: 初回実行時に、システムは自動的にWhisperモデルファイル(約1GB)をダウンロードします。このプロセスは、ネットワーク状況によって数分から数十分かかる場合があります。モデルファイルはローカルにキャッシュされ、以降の実行では再度ダウンロードする必要はありません。
設定
このサービスは、環境変数を通じて設定することができます。
Whisperの設定
WHISPER_MODEL
: Whisperモデルのサイズ(tiny/base/small/medium/large)、デフォルト: 'base'
WHISPER_LANGUAGE
: 文字起こしの言語設定、デフォルト: 'auto'
YouTubeダウンロードの設定
YOUTUBE_FORMAT
: ダウンロードする動画の形式、デフォルト: 'bestaudio'
AUDIO_FORMAT
: 抽出する音声の形式、デフォルト: 'mp3'
AUDIO_QUALITY
: 音声の品質設定、デフォルト: '192'
ストレージの設定
TEMP_DIR
: 一時ファイルの保存場所、デフォルト: '/tmp/mcp-video'
ダウンロード設定
DOWNLOAD_RETRIES
: ダウンロードのリトライ回数、デフォルト: 10
FRAGMENT_RETRIES
: フラグメントダウンロードのリトライ回数、デフォルト: 10
SOCKET_TIMEOUT
: ソケットのタイムアウト時間(秒)、デフォルト: 30
パフォーマンス最適化のヒント
- GPUアクセラレーション:
- CUDAとcuDNNをインストールします。
- PyTorchのGPUバージョンがインストールされていることを確認します。
- モデルサイズの調整:
- tiny: 最速だが精度が低い
- base: 速度と精度のバランスが取れている
- large: 最高の精度だが、より多くのリソースを必要とする
- 一時ファイルにSSDストレージを使用して、I/Oパフォーマンスを向上させます。
注意事項
- 初回実行時にWhisperモデル(約1GB)をダウンロードする必要があります。
- 一時的な音声ファイルのために十分なディスク容量が必要です。
- YouTube動画のダウンロードには安定したネットワーク接続が必要です。
- 高速な音声処理にはGPUが推奨されます。
- 長い動画の処理にはかなりの時間がかかる場合があります。
MCP統合ガイド
このサーバーは、Claude Desktop、カスタムMCPクライアント、その他のMCP対応アプリケーションなど、任意のMCP互換クライアントと共に使用できます。
MCPに関する詳細情報については、Model Context Protocol を参照してください。
ドキュメントの日本語版
このドキュメントの中国語版については、README_zh.md を参照してください。
🔧 技術詳細
システム要件
プロパティ |
詳細 |
モデルタイプ |
OpenAIのWhisperモデル |
トレーニングデータ |
未記載 |
技術スタック |
Python 3.10+、Model Context Protocol (MCP) Python SDK、yt-dlp、openai-whisper、pydantic |
初回実行時の重要な注意事項
⚠️ 重要な注意
初回実行時に、システムは自動的にWhisperモデルファイル(約1GB)をダウンロードします。このプロセスは、ネットワーク状況によって数分から数十分かかる場合があります。モデルファイルはローカルにキャッシュされ、以降の実行では再度ダウンロードする必要はありません。
パフォーマンス最適化のヒント
💡 使用上のヒント
- GPUアクセラレーションを使用することで、音声処理を高速化できます。CUDAとcuDNNをインストールし、PyTorchのGPUバージョンを使用してください。
- モデルサイズを調整することで、速度と精度のバランスを取ることができます。tinyは最速だが精度が低く、largeは最高の精度だがより多くのリソースを必要とします。
- 一時ファイルにSSDストレージを使用することで、I/Oパフォーマンスを向上させることができます。
📄 ライセンス
MIT