mcpField
D
douyin-video-summary

douyin-video-summary

github.com/liu-wei-ai生産性21.8k 回インストール37 週間前に更新
リポジトリ

douyin-video-summary について

Douyin 動画から音声を抽出し、whisper.cpp でローカル文字起こしを行って構造化された要約を作るワークフロースキルです。動画の要約が必要な場合に使え、設定済みなら Feishu 文書への同期もできます。

主な機能

  1. 01ブラウザー経由で音声 URL を抽出
  2. 02ffmpeg による WAV 変換
  3. 03whisper.cpp によるローカル文字起こし
  4. 04構造化された動画要約の生成
  5. 05要約の Feishu への追記(任意)

活用シーン

  1. 01Douyin 動画のテキスト要約を作成
  2. 02中国語動画の音声をローカルで文字起こし
  3. 03動画要約を Feishu 文書に追記

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/liu-wei-ai/douyin-video-summary --skill douyin-video-summary

インストール後、Claude Code で/douyin-video-summaryを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
feishu-sync.md
scripts/
transcribe.sh
download_audio.sh

詳細

Douyin 動画の要約

Douyin 動画を要約します:音声を抽出 → ローカルで文字起こし → AI による要約。

前提条件

以下のツールをインストールします(macOS の例):

brew install whisper-cpp ffmpeg
# Download whisper.cpp GGML model (small recommended for speed/quality balance)
curl -L -o models/ggml-small.bin "https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-small.bin"

ワークフロー

Douyin のリンクを受け取った場合:

ステップ 1:動画 ID の抽出

Douyin の URL を解析して動画 ID を取得します。Douyin の共有リンクには次の 2 つの形式があります:

  • 短縮リンク:https://v.douyin.com/xxxxx/ → リダイレクト先から動画 ID を取得します
  • 直接リンク:https://www.douyin.com/video/7604713801732365681
# Follow redirect to get final URL, extract numeric video ID
curl -sL -o /dev/null -w '%{url_effective}' 'https://v.douyin.com/xxxxx/' | grep -oE '[0-9]{15,}'
ステップ 2:ブラウザー経由で音声を取得

Douyin は直接ダウンロードをブロックするため、yt-dlp や aria2c では 403 が返されます。ブラウザーを使って音声 URL をインターセプトします:

  1. ブラウザーで Douyin の動画ページを開きます
  2. ページ遷移の前に、JS を挿入してネットワークリクエストをインターセプトします:
window.__audioUrls = [];
const origOpen = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function(method, url) {
  if (url && (url.includes('.mp3') || url.includes('.m4a') || url.includes('mime_type=audio'))) {
    window.__audioUrls.push(url);
  }
  return origOpen.apply(this, arguments);
};
  1. 動画ページに移動し、再生をクリックして音声の読み込みを開始します
  2. インターセプトした URL を取得します:window.__audioUrls
  3. curl でダウンロードします(Referer ヘッダーが必要です):
curl -H "Referer: https://www.douyin.com/" -o audio.mp4 "<audio_url>"

重要: Douyin CDN の URL では aria2c を使うと 403 が返されます。必ず Referer ヘッダーを付けて curl を使用してください。

ステップ 3:WAV に変換
ffmpeg -i audio.mp4 -ar 16000 -ac 1 -c:a pcm_s16le audio.wav
ステップ 4:whisper.cpp で文字起こし
whisper-cli -m /path/to/ggml-small.bin -l zh -f audio.wav -otxt -of output
  • 中国語のコンテンツには -l zh を使用します(不明な場合は自動検出)
  • Apple Silicon の GPU アクセラレーションは自動的に有効になります(Metal)
  • パフォーマンス:M4 では 5 分の音声を約 20 秒で処理します
ステップ 5:要約を生成

文字起こしテキストを読み、構造化された要約を作成します:

📹 **[Video Title] | [Author]**
时长:X分X秒 | 发布:YYYY-MM-DD

🎯 **核心观点:[one-line core message]**

**1. [Point 1 title]**
• [detail]
• [detail]

**2. [Point 2 title]**
• [detail]

💬 **一句话总结:[concise takeaway]**
ステップ 6(任意):Feishu ドキュメントに同期

Feishu 連携が設定されている場合は、Feishu Open API を使用して要約を Feishu ドキュメントに追記します。API の詳細については、references/feishu-sync.md を参照してください。

ヒント

  • 短い動画(1 分未満)では、要約が非常に短くなる場合がありますが、問題ありません
  • ブラウザーでのインターセプトに失敗した場合は、もう一度試してください。Douyin のページは再読み込みが必要なことがあります
  • ディスク容量を節約するため、処理後にダウンロードした音声ファイルや WAV ファイルを削除してください
  • whisper.cpp の small モデルは速度と品質のバランスが最適です。medium はメモリが 8 GB のマシンでは OOM が発生する場合があります

コメント