[Dify] Youtube動画の文字起こしと要約をしてみた
DifyでYouTube 動画の文字起こしとまとめを行う
LLM(大規模言語モデル)は、自然言語処理の能力を活用して、多くのタスクを効率化する強力なツールです。中でも、YouTube動画の文字起こしの整理は、その実用性が顕著に現れる分野の一つです。動画の文字起こしを取得して整理する作業は時間と労力を要しますが、LLMを活用することで、テキストデータを迅速かつわかりやすく整理することができます。
本記事では、Dify を使った文字起こしの取得から整理までの基本的な流れや、具体的な活用例について解説します。例えば、文字起こしツールを使ってYouTube動画の音声をテキスト化し、その後要点の整理や内容の簡略化をLLMに任せることで、大幅な効率化を図ることができます。また、テンプレートを活用してフォーマットを自動生成したり、さらに内容をわかりやすく整理する方法もご紹介します。
DifyでYouTube 動画の文字起こしとまとめを行う流れ
- YouTube動画の文字起こしデータを取得する
- 取得した文字起こしデータに対して、LLMで整理や要約を行う
前準備
このワークフローの作成には、Dify に標準でビルドインされている SearchApi YouTube Transcripts ツールを利用します。事前に、SearchApi ツールの認証を済ませてください。
文字起こしとまとめを行うワークフローを作成する
スタジオを開き「最初から作成」をクリックして始めます。
アプリの種類は、ワークフローを選択。
アプリのアイコンと名前、説明を入力してください。
例:
アプリの名前:
YouTube動画まとめワークフロー
説明:
YouTube動画の内容を、整理・要約します
アプリが作成されると、開始ノードのみが存在するワークフローの編集画面が表示されます。
ここから、YouTube 動画の文字起こしデータを行なって、LLMで文字起こしを行うワークフローを作成していきます。
開始ノードでYouTube動画のidを受け取りを設定する
開始ノードでは、入力フィールドとして、ワークフローで使用できる入力を設定することができます。開始ノードをクリックすると、設定画面が表示されます。
対象となるYouTube動画を特定するために、idを取得します。YouTube動画のidは、URLのwatch?v=
の後ろに続く文字列です。
入力フィールドの右側にある + ボタンをクリックすると、新しい入力を追加できます。
フィールドタイプは短文
変数名(任意の名前)とラベル名には、idとつけました。
今回は、YouTube動画のまとめを作成することが目的であり、YouTube動画のidは必須なので、必須にチェック。
これで保存します。
これでYouTube動画のidの受け取りの設定が完了しました。開始ノードで行うことがわかりやすいように、説明に、「YouTube動画のidを入力として受け取る」と入力しておきましょう。説明に入力した内容は、ノードの下部に表示されます。
次に、受け取った YouTube 動画のidを用いて、文字起こしデータを取得します。
画面下の、+ ボタンをクリックし、ブロック・ツールの追加ウインドウを開きます。
今回は、Difyに標準でビルドインされている Search Api YouTube Transcripts ツールを用いて、YouTube動画の文字起こしテキストを取得します。
YouTube Transcripts API
ツールを見つけてクリックし、開始ノードと、YouTube Transcripts API ノードを連結しましょう。これで、開始ノードの出力 ( 今回はYouTube動画のid ) が、YouTube Transscripts API ノードの入力で利用できるようになります。ます。
次に、YouTube Transcripts API
ノードをクリックして設定画面を開きます。
ここで必要な入力変数は、video_id ( YouTube動画のid)と、langage (言語) の2つです。
※ “/” を入力すると、変数が選択でき、”開始/{x}id”を選ぶことができます
video_id には、先ほど開始ノードで入力されたidを選択します。
langageには今回は、日本語を設定します ( ja ) 。
ノードの説明には、「YouTubeの文字起こしデータを取得する」としておきます。
一旦テストしてみる
ここまでの流れが動作するかテストしてみましょう
上部の実行ボタンを押します。すると、Test Runというテスト用のウインドウが開きます。YouTube動画のidとして JZ1tyHRqowI
を入力して、”実行を開始”をクリック
https://www.youtube.com/watch?v=JZ1tyHRqowI
数秒で完了します。
トレースタブを開くと、各ノードの入力、出力を確認できます。
トレースタブの、YouTube Transcripts API を開くと、出力のtext プロパティに、文字起こしテキストが出力されていることが確認できます。
文字起こしのテキストをまとめるまとめる
次に、文字起こしされたテキストを、整理・要約します。スタジオ下部の + ボタンをクリックし、LLMブロックを追加し、YouTube Transcripts ノードに連結します。
LLMノードをクリックし、LLMノードの設定を進めます。
利用するモデルには、OpenAIのo1-miniを選択しました ( 実際の利用では、求められる品質、精度に応じて、より高品質なモデルを選択してください )。
次にコンテキストとして、LLMが用いる知識をインポートします。
利用できる変数の中から、YouTube Transcripts API の x{text}を選択します。これで、LLMに渡すプロンプトの中で、YouTube Transcripts API ノードが取得した文字起こしデータ ( テキスト ) を利用できます。
次に、LLMに渡すプロンプトを入力します。
コンテキストで選択した変数を利用するには、/
を入力するか、右上の {x}
ボタンを押すことで、目的の変数を挿入できます。
例
以下はYouTube動画の文字起こしデータです。内容を、
[ サマリー ]
[ 各トピックの説明 ]
の順序で。また、[ 各トピックの説明 ] は、
[ トピックの簡潔なタイトル ]
[ トピックの説明 100字程度 ]
の構成で、書いてください。YouTube動画の文字起こしデータ:
{x}YouTubeTranscripts…/{x}text
LLMノードの説明には、文字起こしテキストから整理・まとめを作成する、としましょう
終了ノードの追加とアプリの公開
以上で、YouTube動画の文字起こし取得、そして文字起こしテキストからの整理・まとめが行えました。最後に、終了ノードを追加します。スタジオのブロック追加ボタンから、終了ノードをクリックし、先ほどのLLMノードと連結します。
終了ノードでは、このワークフローが最終的に出力する内容を設定します。
変数として、先ほど作成したLLMのtextプロパティを選択します。
ノードの説明には、LLMのノードの出力内容を、終了ノードの出力とする、としておきます。
これで開始から終了までのワークフローが完成しました。再び実行してみましょう。
結果、タブに最終的に生成された整理・まとめが表示されます。
まとめ
本記事では、Difyを活用してYouTube動画の内容を要約する方法について解説しました。主なポイントは以下の通りです:
- 音声データの文字起こしからLLMによる要約まで、一貫したワークフローを構築できる
- YouTubeの文字起こしAPIを使用することで、動画の内容を簡単にテキストに変換可能
- LLMを活用することで、文字起こしされたテキストから重要なポイントを抽出し、整理された要約を自動生成できる
このような自動化されたワークフローを導入することで、動画内容の要約にかかる時間と労力を大幅に削減できます。また、一度構築したワークフローは繰り返し利用できるため、長期的な業務効率の向上にも貢献します。
今後は、より高度なモデルの活用や、カスタマイズされたプロンプトの作成など、さらなる改善の余地があります。ぜひ、ご自身の用途に合わせてワークフローをカスタマイズし、より効率的な動画コンテンツの要約を実現してください。
Discussion