YouTubeの配信通知をSlackに流すbotです。
次の場合に通知されます。
- 配信枠が作成されたとき
- 配信1時間前
- 配信情報が変更されたとき
- 配信枠が削除されたとき
Slack上でbotに対してリプライを送ることで、設定を変更できます。
@bot list
@bot add https://www.youtube.com/channel/...
@bot delete https://www.youtube.com/channel/...
https://pre-commit.com/ の手順に従って pre-commit
をインストールします。
これにより、.pre-commit-config.yamlの設定に基づいて、コミット時にクレデンシャルが含まれていないかの検査が行われるようになります。
- Google Cloud Platform API Key (YouTube Data API v3)
- Slack API Token
- Twitter API
-
AWS CLIをインストールします。
-
実行に必要なパッケージをインストールします。
npm install
-
スタックのデプロイで使用するS3バケットを作成します。
cdk bootstrap
-
AWSコンソールのSecret Manager上で次のSecretを作成します。
- メインで使用するリージョン
youtube_streaming_watcher_slack
: 配信通知関連 (Slack)slack_bot_token
: Slackのbotトークンslack_signing_secret
: SlackのSigning Secretslack_channel
: 通知先のチャンネル名
youtube_streaming_watcher_slack_alert
: Lambda関数のアラート関連 (Slack)workspace_id
: 通知先のワークスペースIDchannel_id
: 通知先のチャンネルID
youtube_streaming_watcher_twitter
: 配信通知関連 (Twitter)twitter_bearer_token
: ベアラートークン
youtube_streaming_watcher_youtube
: 配信通知関連 (YouTube)youtube_api_key
: YouTube Data API用のAPIキー
youtube_streaming_watcher_email
: コスト通知関連 (メール)email
: コスト通知用メールアドレス
us-east-1
youtube_streaming_watcher_email
: コスト通知関連 (メール)email
: コスト通知用メールアドレス
- メインで使用するリージョン
-
スタックをデプロイします。
なお、リポジトリがdev-hato/youtube_streaming_watcher
以外の場合は環境変数REPOSITORY=org/repository
をセットした状態で実行します。cdk deploy
次回以降デプロイするときは youtube_streaming_watcher_cdk_deploy
Roleを使用します。
また、スタックの差分を見るときは youtube_streaming_watcher_cdk_diff
Roleで cdk diff
を実行します。
-
.env
ファイルを作成し、APIのトークンや通知先のSlackチャンネルをセットします。.env.example
をコピーして使うとよいでしょう。 -
Dockerコンテナを立ち上げます。
Dockerイメージのビルドに失敗する場合はDockerに割り当てるメモリを増やしてみてください (5GB程度割り当てれば足りるはずです)。TAG_NAME=$(git symbolic-ref --short HEAD | sed -e "s:/:-:g" | sed -e "s/^main$/latest/g") docker compose up
次のRepository secretsを設定します。
AWS_ACCOUNT
: AWSアカウントIDAWS_REGION
: AWSのリージョン
次の2つのバージョンを使用できるようにしていますが、基本的には後者を前提として開発しています。
- dependabotで使用しているバージョン: https://github.com/dependabot/dependabot-core/blob/31daef5ef4c96d83003777316e96a14eecddd190/Dockerfile#L100-L105
- AWS LambdaのNode.jsランタイムで対応している最新バージョン: https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html
dependabotで使用しているバージョンに準拠しています。