【要約】YouTube動画を映像ごとAIに読ませるCLIを作った(Gemini API、Python標準ライブラリのみ) [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者が技術解説動画をAIに読み込ませようとした際、字幕テキストだけでは視覚情報が欠落する問題に直面した。動画内の図解やデモコードは、話者が言葉にしない限り、従来のテキストベースの解析では取得できない。
- ・字幕取得系ツール(yt-dlp等)は、発話テキストのみを抽出する。
- ・音声認識系ツール(Whisper等)も、音声情報のみを対象とする。
- ・映像解析を自前で行うには、フレーム切り出しや音声同期の実装コストが膨大になる。
// Approach
開発者は、Gemini APIの
file_data機能を利用し、YouTubeのURLを直接渡して解析させる手法を採用した。これにより、動画のダウンロードや複雑な前処理を回避し、Google側のインフラで映像と音声を同時に処理させている。- ・Python標準ライブラリのみを用い、依存関係のない軽量なCLIツールを構築した。
- ・著作権保護による出力拒否(RECITATION)に対し、要約形式へ自動切替するフォールバックを実装した。
- ・AIエージェントが利用しやすいよう、標準出力と標準エラーの出し分けを徹底した。
// Result
このツールにより、動画の内容を「概要」「映像内容」「文字起こし」の3構成でMarkdown化することに成功した。
- ・Fireshipの動画検証では、話者が読み上げないコードやテロップも正確に抽出した。
- ・19分の動画を、エラー処理を含めて約110秒で処理することに成功した。
- ・AIエージェントが動画内容を自律的に参照できる、実用的なワークフローを実現した。
Senior Engineer Insight
> APIの機能を最大限に活用し、実装コストを極限まで抑えた極めて合理的な設計である。特に、モデルの世代交代やエラーへのフォールバックを組み込んだ点は、実戦的な判断と言える。ただし、無料枠でのデータ利用規約や、サンプリングによる情報の取りこぼしリスクには注意が必要だ。業務利用では、機密情報の扱いに留意し、有料枠の活用を検討すべきである。