douyin-video-summary について
Douyin 動画から音声を抽出し、whisper.cpp でローカル文字起こしを行って構造化された要約を作るワークフロースキルです。動画の要約が必要な場合に使え、設定済みなら Feishu 文書への同期もできます。
主な機能
- 01ブラウザー経由で音声 URL を抽出
- 02ffmpeg による WAV 変換
- 03whisper.cpp によるローカル文字起こし
- 04構造化された動画要約の生成
- 05要約の Feishu への追記(任意)
活用シーン
- 01Douyin 動画のテキスト要約を作成
- 02中国語動画の音声をローカルで文字起こし
- 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.mdscripts/transcribe.shdownload_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 をインターセプトします:
- ブラウザーで Douyin の動画ページを開きます
- ページ遷移の前に、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);
};
- 動画ページに移動し、再生をクリックして音声の読み込みを開始します
- インターセプトした URL を取得します:
window.__audioUrls - 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 が発生する場合があります
コメント
Markdown 対応