【YouTube要約アプリ開発】第3回:Geminiに動画内容を理解させて要約しよう! Gemini API入門

AI

【YouTube要約アプリ開発】第1回ではAPIの基本とAIプログラミングの第一歩を踏み出し、第2回ではYouTube Data APIを使ってYouTube動画を検索し、その情報(タイトルやURLなど)を取得できるようになりました。

第3回となる今回は、このシリーズのタイトルにもなっている「要約」機能に挑戦します!

ここでは高性能AIである「Gemini」のAPIを使用します。

AIをプログラムに組み込んで、YouTube動画の内容を要約してもらいましょう!

第2回の振り返り:YouTube動画をプログラムで見つけられた!

前回の第2回では、以下のことを学びました。

  • YouTube Data API: プログラムからYouTubeの動画情報を取得するためのAPI。
  • APIキーの取得: YouTube Data APIを使うために、Google Cloud Platform (GCP) でAPIキーを取得する手順を学びました。APIキーは大切に扱う必要がありました。
  • 動画検索の実践: AIと一緒に、キーワードでYouTube動画を検索し、そのタイトルやURLを取得するプログラムを作成・実行しました。
  • 検索条件の指定: パラメータを使って、投稿日や並び順などで検索結果を絞り込めることを学びました。

これで、プログラムは「YouTube動画を見つける」ことができるようになりました!

次は、その見つけた動画の「内容」をプログラムに理解させ、要約するステップです。

YouTube要約アプリ開発のシリーズ展開

このシリーズでは、YouTube動画の検索と要約アプリを完成させるために、以下のステップで進めていきます。

AIをプログラムに組み込む! Gemini APIとは?

今回使うのは、Googleが開発した高性能AI「Gemini」をプログラムから利用するためのGemini APIです。

Gemini APIを使うと、あなたのプログラムにGeminiの持つ様々なAI能力を組み込むことができます。

  • テキスト生成: 様々なスタイルの文章を作成、メールやブログ記事の下書き、物語の生成など。
  • 要約: 長い文章を短くまとめる。
  • 翻訳: 異なる言語間でテキストを翻訳する。
  • 質問応答: 質問に対して適切な回答を生成する。
  • アイデア出し: 特定のテーマについてブレインストーミングやアイデア出しを行う。
  • マルチモーダル能力: テキストだけでなく、画像の内容を理解するなど、複数の種類の情報を同時に扱う。

などなど、まさにAIの「知性」をプログラムで使えるようになるイメージです。

そして、今回の目標である「動画の要約」は、Gemini APIが非常に得意とするタスクの一つです!

Gemini APIを使う準備:APIキーを取得しよう!

Gemini APIを使うためにも、APIキーが必要です。

YouTube Data APIの時と同様に、「鍵」となるAPIキーを取得する手続きを行いましょう。

Gemini APIのAPIキーは、Google AI Studioというところから取得するのが、一番手軽です。

APIキー取得の手順

Google AI Studioにアクセスする

ウェブブラウザで https://aistudio.google.com/ にアクセスし、Googleアカウントでログインします。

APIキーを作成する

上部の「 Get API key」をクリックします。

「APIキーを作成」をクリックします。

Google Cloud プロジェクトを選択、または新規に作成します。

第2回の記事で、YopuTube Data API のAPIキーを作成している場合は既にプロジェクトがあるはずなので、それを選択し、「既存のプロジェクトでAPIキーを作成」をクリックします。

まだ、プロジェクトを作成していない場合は「新しいプロジェクトでAPIキーを作成」をクリックします。

API キーが作成され画面に表示されます。

コピーして大切に保管してください。

【重要!】取得したAPIキーは大切に扱って!

YouTube Data APIキーと同様に、Gemini APIキーもあなたの「鍵」です。

絶対に他の人に見せたり、インターネット上に公開したりしないでください!

安全な場所にメモしておきましょう。

AIと実践! 動画内容を要約するプログラムを作ろう!

開発の準備

今回も、VS CodeGemini Code Assistで開発を進めます。

VS Codeを起動し、前回の作業フォルダを開いてください。

前回作成したPythonファイル(youtube_search.py)などがあると思います。

今回はステップ1、ステップ2でそれぞれ、別のPythonファイルを作成していきます。

VS CodeGemini Code Assistの詳細については以下をご覧ください。

【要約の仕組みについて】

ここで、YouTube動画の要約をどう実現するのか確認しておきましょう。

GeminiのWebアプリにYouTube動画のURLを渡して要約をお願いすると適切に要約してくれます。

しかし、Gemini APIに同様にURLを渡した場合、意図しない他の動画の要約を返してしまう場合があります。

そのため、今回は動画そのものを渡すのではなく、動画の「文字情報」をGeminiに渡して要約してもらうという方法をとります。

この方法では、以下の2つのステップを踏みます。

  • まず、動画の文字情報を取得します。
  • 次に、取得した文字情報をGemini APIに渡して要約を生成してもらいます。

ステップ1:YouTube動画の文字情報を取得

まずは、要約のもとになる文字情報を準備しましょう。

ここでは字幕(キャプション)を取得していきます。

字幕はYouTubeの投稿者が付けるものや、自動的に付けられるものがあります。

なお、動画の音声が不明瞭などの場合は字幕が無い場合もあります。

字幕取得には、youtube_transcript_api という便利なライブラリを使用できます。

Gemini Code Assistに、文字情報を取得する処理を生成してもらいましょう。

プロンプトの例

Pythonで、youtube_transcript_apiライブラリを使用して、指定されたYouTube動画IDの文字起こしを取得する関数 get_transcript を作成してください。
関数は video_id (文字列) を引数に取ります。
日本語または英語の文字起こしを優先して取得するようにしてください。
文字起こしが見つからない場合やエラーが発生した場合は、適切なメッセージを表示し、Noneを返すようにしてください。
取得した文字起こしは、各項目のテキスト部分を結合して一つの文字列として返してください。
コードには、各行の処理内容を説明するコメントを含めてください。
ファイル名は youtube_transcript.py とし、フォルダ直下に作成してください。
また、このファイルが単体で実行された場合に get_transcript 関数を呼び出す if __name__ == "__main__": ブロックを含めてください。

すると、コードを作成してくれました。

「Ctrl + S」キーを押して「youtube_transcript.py」というファイル名で保存しておきます。
※AIは学習状況やタイミングにもより、生成してくれるコードは異なります。

youtube_transcript_apiを使用してYouTube動画の文字情報を取得するコード

コードを実行しよう!

生成したコードにYouTube IDを設定する

「if __name__ == “__main__”:」ブロックの中に、おそらくYouTube動画IDを設定している箇所があります。

その個所を、実際に文字データを取得したいYouTube動画のIDに置き換えます。

YouTube動画IDは動画のURLの「v=」に続く文字列です。

以下は「https://www.youtube.com/watch?v=3Ghk_9FsrBk」の動画IDを設定した例です。

if __name__ == "__main__":
    # --- テスト実行 ---
    # テストに使用するYouTube動画のIDを設定します。
    test_video_id = "3Ghk_9FsrBk"

必要なライブラリをインストールします

VS Code のメニューから「表示」>「ターミナル」を選択します。
または「Ctrl + @」キーを押します。

ターミナルで以下のコマンドを実行します。

pip install youtube_transcript_api

Pythonコードを実行する

次のコマンドでPythonコードを実行します。

python youtube_transcript.py

いかがでしょうか。動画の文字データが表示されたら成功です。

もしエラーが出た場合は、そのエラーメッセージをそのまま、Gemini Code Assistに聞いてみると、解決策を提案してくれます。

何回か会話して解決していきましょう。

ステップ2:文字情報をGemini APIに渡して要約してもらう

では次に、文字情報をGemini APIに渡して要約してもらうコードを生成してもらいましょう。

この時に要約後のおおよその文字数を指定できるようにします。

そして、要約した文章はMarkdownという形式で、見出しなどを付けて見やすくしてもらいます。

AIモデルはGoogle AI Studioで使用可能なものを使います。

プロンプトの例

Pythonで、指定されたテキストと希望する要約の文字数を受け取り、requestsライブラリを使用してGemini APIを使って要約する関数 summarize_text を作成してください。
関数は text_to_summarize (文字列) と max_chars (整数) を引数に取ります。
APIキーはconfig.jsonファイルから読み込むと想定します。
使用モデルは gemini-2.5-flash-preview-04-17 です。
要約のプロンプトには max_chars を含め、指定文字数前後で、Markdown形式で見出しなどを付けて見やすく整形するように指示してください。
関数は要約されたテキスト(Markdown形式)を文字列として返します。
コードにコメントを含めてください。
ファイル名は gemini_summarize.py とし、フォルダ直下に作成してください。
また、このファイルが単体で実行された場合に summarize_text 関数を呼び出す if __name__ == "__main__": ブロックを含めてください。

コードをせいせいしてくれたら、「gemini_summarize.py」というファイル名で保存します。

Gemini APIを使用して文字情報を要約するコード

コードを実行しよう!

Gemini APIキーを設定する

config.jsonにGemini API キーを設定します。第2回でYouTube Data API のキーを設定している場合、config.jsonは既に存在しているはずです。

config.json

{
  "youtube_api_key": "Google Cloud Consoleで作成したAPIキー",
  "gemini_api_key": "Google AI Studioで作成したAPIキー"
}

Pythonコードを実行する

今回は、ステップ1で取得した動画の文字情報は使わず、if __name__ == “__main__”:ブロックでテスト用の文章を設定しています。

ステップ1とステップ2のコードの組み合わせは次回の第4回で行います。

次のコマンドでPythonコードを実行します。

python gemini_summarize.py

if __name__ == “__main__”:でテスト用に設定したテキストの要約が表示されたでしょうか?

もし、エラーが発生する場合は、Gemini Code Assistに聞いてみてください。

また、Google AI Studioで使用可能なモデルが設定されているかも確認してください。

モデル設定の例

    # 使用するモデル
    model = "gemini-2.5-flash-preview-04-17"

今回のまとめ:AIに動画内容を理解させて要約できた!

【YouTube要約アプリ開発】第3回、お疲れ様でした!

今回は、Gemini APIを使って、プログラムからAIを利用する方法を学びました。

  • Gemini APIを使うためGoogle AI StudioのAPIキーの取得方法を説明しました。
  • YouTube動画の「文字情報」の取得方法を学びました。
  • AIと協力して、テキストをGemini APIに送って要約結果を受け取るプログラムの関数を作成することができました。

これで、「動画内容を要約する」という、AIを使った最も面白い機能の一つを実装できるようになりました! 第2回で学んだ「動画検索」機能と組み合わせる準備が整いましたね!

次のステップへ:アプリを完成させよう!

これまでの学びをすべて組み合わせて、「YouTube動画を検索して、選んだ動画を要約してくれる」という最終的なアプリを完成させます!

第2回で作った検索機能と、第3回で作った要約機能を「呼び出して」使うようにプログラムを組み立てます。

API連携、AIの活用、そして複数の機能を組み合わせるという、アプリ開発の醍醐味を味わえる最終回です!

ぜひ楽しみにしていてください!

コメント

タイトルとURLをコピーしました