Discordに投稿したYouTube動画URLをBotが検知し、Antigravityで要約とMarkdown保存を自動化する仕組みを解説します。Webhookの仕様制限からBot作成、特権インテントの有効化、定期巡回の常駐化手順までを整理しました。
はじめに
スマートフォンやPCのDiscordチャンネルへYouTubeのURLを投稿するだけで、自動的に文字起こしと内容要約を行い、構造化されたMarkdownファイルとして保存する仕組みを構築できます。ナレッジの蓄積と整理を人手を介さずに行えるため、情報収集の効率が大幅に向上します。
この仕組みを実現するには、送信専用であるWebhookの制約を理解し、メッセージ読み取り権限を持つDiscord Botを作成する必要があります。本記事では、Botの作成手順から必要な権限設定、定期巡回の運用方式までを順を追って解説します。
Discordを活用した自動要約システムの構造
Discordを情報収集の受信箱として機能させる場合、WebhookとBotの技術仕様の違いを把握することが不可欠です。
Webhookは外部サービスからDiscordへメッセージを投稿する送信専用のインターフェースです。チャンネル内の投稿内容を取得する権限を持たないため、ユーザーが投稿したURLを読み取ることができません。
これに対し、Discord BotはGateway APIを経由してチャンネル内の投稿をリアルタイムまたは定期的に取得できます。メッセージの本文を解析し、外部スクリプトと連携して要約処理やファイル送信を実行できます。
| 機能項目 | Webhook | Discord Bot |
|---|---|---|
| 通信方向 | 送信(書き込み)専用 | 双方向(読み取りおよび送信) |
| 認証方式 | Webhook URL | Bot Token |
| メッセージ本文の取得 | 不可 | 可能(特権インテントが必要) |
| ファイル添付送信 | 可能 | 可能 |
| リアクションの追加 | 不可 | 可能 |
| 主な用途 | 処理完了通知 | チャンネル監視および対話処理 |
処理パイプラインは、Discordチャンネルの監視、YouTube動画の文字起こしと要約、Markdownファイルへの永続化、Discordへの通知という4つの段階で構成されます。
Discord Botの作成と初期設定
Discordチャンネル内の投稿を取得するために、Discord Developer Portalから専用のBotを作成します。
手順1: アプリケーションとBotの作成
- Discord Developer Portalへブラウザからアクセスします。
- 画面右上にある「New Application」を選択します。
- アプリケーション名を入力し、利用規約を確認して作成ボタンを押します。
- 左側メニューの「Bot」を選択します。
- 「Reset Token」を実行し、表示されたBot Tokenを控えます。
手順2: 特権インテントの有効化
Botがメッセージのテキスト本文を読み取るためには、特権インテントの許可が必要です。
- Bot設定画面内の「Privileged Gateway Intents」セクションまでスクロールします。
- 「Message Content Intent」のスイッチを有効(緑色)にします。
- 画面下部に表示される「Save Changes」を選択して設定を保存します。
手順3: 権限の付与とサーバーへの招待
Botがメッセージの読み取り、返信、リアクション付与を行えるように権限を設定した招待URLを生成します。
- 左側メニューの「OAuth2」から「URL Generator」を開きます。
- SCOPES一覧から「bot」を選択します。
- BOT PERMISSIONS一覧から必要な権限を選択します。
- 生成されたURLをブラウザの別タブで開き、導入先のサーバーを選択して認証します。
| 権限名 | 用途 |
|---|---|
| Read Messages/View Channels | チャンネルの閲覧とメッセージ受信 |
| Read Message History | チャンネル内の過去メッセージの巡回取得 |
| Send Messages | 要約サマリーのテキスト返信 |
| Attach Files | 要約Markdownファイルの添付返信 |
| Add Reactions | 処理完了を示すチェックスタンプの付与 |
個人運用のサーバーで権限管理を簡素化したい場合は、管理者権限(Administrator)を付与することで上記すべての権限をまとめて適用できます。
自動処理パイプラインのデータフロー
Botが取得した動画情報は、自動分類およびフォーマット正規化を経て永続化されます。
自動化スクリプトが実行する処理フローは以下の通りです。
- 監視対象のDiscordチャンネルから未処理のメッセージを取得します。
- メッセージ内のYouTube動画URLを抽出します。
- 動画の文字起こしデータとメタ情報を取得し、要約サマリーとファクトチェック項目を生成します。
- 内容のジャンルに応じてGoogleドライブ内の適切なMarkdownファイルへタイムスタンプ付きで追記します。
- 目次ファイル(INDEX.md)の更新およびタイムスタンプ表記の正規化スクリプトを実行します。
- 対象のDiscordメッセージへ完了リアクションを付与し、要約サマリーとMarkdownファイルを添付してスレッド返信します。
定期巡回実行の常駐化方式
Discordのチャンネルを定期的にチェックして自動処理を実行させる方式には、OS標準のデーモンを利用する方法と、作業セッション内のスケジューラを利用する方法の2種類が存在します。
| 方式 | 実行基盤 | 長所 | 短所 |
|---|---|---|---|
| launchd常駐 | macOSバックグラウンド | アプリ終了時やPC再起動後も自動で常駐動作する | 設定ファイルの登録作業が必要となる |
| セッション内タイマー | チャット・実行環境内部 | チャット上からの指示のみで開始や停止ができる | 実行元の環境が起動している間のみ動作する |
常時起動している端末が存在する場合はlaunchdによる自動常駐が適しています。作業中のみ並行して巡回させたい場合は、環境内の定期実行コマンドを活用することで柔軟な運用が可能です。
関連コンテンツ

コメント