【要約】yt-dlp × Gemini APIでYouTube動画を要約するCLIツールを作ってみた [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者は、英語の長尺動画を効率的に理解したいと考えていた。趣味のFPSゲーム上達のため、海外のコーチング動画を視聴する際、以下の課題に直面した。
- ・会話が英語であり、内容の理解に多大な時間を要する。
- ・動画が長尺であるため、重要なポイントの特定が困難である。
- ・視聴、翻訳、要約という一連の作業を自動化する手段がなかった。
// Approach
開発者は、字幕抽出から要約までを自動化するCLIツールを構築した。WSL/Ubuntu環境において、以下の技術スタックを用いてパイプラインを実装した。
- ・yt-dlpを用いて、動画から字幕データ(.vtt)を抽出する。
- ・sedコマンドにより、タイムスタンプや制御文字を削除する。
- ・PythonとGemini APIを用い、整形済みテキストを要約・翻訳する。
- ・プロンプトを外部ファイル化し、指示の調整を容易にした。
- ・pipxを採用し、UbuntuのPython環境管理制約を回避した。
// Result
開発者は、要約結果をMarkdown形式で出力する仕組みを完成させた。このツールにより、動画URLを指定するだけで以下のプロセスが完結する。
- ・字幕の抽出、テキスト整形、翻訳、要約の一括実行。
- ・APIのレートリミット発生時に、ログを残すエラーハンドリング。
- ・今後はGemini 3.5 Transcribeを用いた精度比較を予定している。
Senior Engineer Insight
> 本ツールは、LLMへの入力精度を高める前処理が適切に設計されている。実戦的な観点から、以下の3点を評価する。
- ・sedによるノイズ除去は、トークン節約と精度向上に極めて有効だ。
- ・プロンプトの外部化は、指示の微調整を容易にし、開発体験を向上させる。
- ・ただし、字幕の質が要約精度を左右する点は、運用上のリスクである。
- ・商用利用には、音声からの直接文字起こしとの併用を検討すべきだ。