🎦

YouTubeの投稿をDiscordに通知するツールを作ってみた

2025/01/17に公開

こんにちは、たーけです。
今回は、YouTubeの動画やライブ配信のお知らせを、Discordに通知するツールを作ったので紹介します!
スプレッドシートとGASで製作しました。

利点

  • お知らせの文を自由に変更できる
  • 簡単な設定

が強みかなと思っています。

導入方法

  1. 以下のリンクからスプレッドシートをコピーします。
    https://docs.google.com/spreadsheets/d/143wMT-w0DcDb0CbNPCkxCN2d-ab1T26AhupzUb9otD8/copy

  2. 「説明」シート内にある「初期設定」ボタンを押します。

  3. 「認証が必要です」と出るので、画像の通りに認証をします。
    「認証」
    Googleの警告
    警告が出てきますが、無視して問題ありません。(コードの内容はできれば確認しておくことをおすすめします)
    警告を回避するには
    「Googleにログイン」で認証

  4. 完了メッセージが出たら作業は終了です!
    完了のメッセージボックス

メニュー

作成したスプレッドシートには、このようなメニューバーが追加されています。
メニュー一覧

操作 説明
トリガー再設定 動画確認用のトリガーを登録します。「初期設定」ボタンと同じ動作です。
Webhook通知確認 指定したWebhookでテストメッセージを送信します。
手動で動画確認 動画の更新を確認します。5分に1回自動で行われているため、基本的には不要です。

設定をしよう!

導入できたら、設定を行います。settingシートを見てください。
設定例

これは設定例です。オレンジ色の部分を書いていきましょう!

基本設定

  • チャンネル表示名(任意)… 使わないので書かなくていいです。

  • チャンネルID … 取得したいチャンネルのIDを入力します。
    チャンネルIDの取得方法

  • 通常動画用WebhookURL・ライブ配信用WebhookURL
    写真の順に操作して、DiscordのWebhookを作成して、URLを入力してください。
    Webhookの取得方法1
    Webhookの取得方法2
    Webhookの取得方法3

通知設定

イベントが起きた時に通知する文章を設定できます!
空白の場合は通知されません。

{link}と入力すると該当のYoutubeリンクになるなど、いくつかのテンプレートがあります。
以下のテンプレートが使えます。

タイトル 対応状況 説明
videoId 共通 動画ID
link 共通 動画のリンク(通常形式)
thumbnailUrl 共通 サムネイルのURL
description 共通 動画の説明
publishedDate 共通※ 動画の公開日時
updatedDate-r 共通 動画の最終更新日(未フォーマット)
duration 動画のみ 動画時間(例:1:06:23)
startedDate ライブ配信のみ※ ライブ配信の開始日時
scheduledDate ライブ配信のみ※ ライブ配信の予定日時

※のついているものは、timestampと未フォーマットにも対応しています。
例:publishedDate-ts:タイムスタンプ
publishedDate-r:未フォーマット(ISO 8601で返るはずです)

使用技術

GASを使って定期的に実行しています。
Youtubeのフィードから情報を取得し、(以下は例)
https://www.youtube.com/feeds/videos.xml?channel_id=UClAqqdpFsNUFwCTsSodHV5A

動画の更新が見つかったらYouTube Data APIを用いて詳しい情報を取得しています。
https://developers.google.com/youtube/v3/getting-started?hl=ja

スプレッドシートに記録しておくことで履歴を貯めています。

クレジット

原作: @tatsumin39 さん
https://github.com/tatsumin39/youtube-to-discord-notifier
MITライセンスで公開されていたものを大幅に改変しました。
本当にありがとうございます!

また、私たーけの変更部分もMITライセンスで利用可能です。

最後まで読んでいただきありがとうございました!
要望があれば、コードの説明もしたいと思います。

Discussion