モノトーンの伝説日記

Apex Legends, Splatoon, Programming, and so on...

YouTube Live 開始通知をお手軽に実装するために Zapier を使って通知を実装してみた。

 お久しぶりです。ここ最近技術系ブログ書いてなかったので、ちょっと技術的ネタを。

概要

  1. Zapier とは
  2. YouTube と Slack を接続する
  3. 本来の目的
  4. まとめ
  5. 余談

1. Zapier とは

 “What is Zapier?”をみると

Zapier lets you easily connect the web apps you use, making it easy to automate tedious tasks.

https://zapier.com/how-it-works/

筆者意訳:

Zapier は Webアプリを簡単に接続できます。長ったらしく退屈な作業を簡単に自動化することが可能です。

 先に言いますと、YouTube と Slack を連動させたりできます。その連動のメッセージ内容は自由に設定できたり…

2. YouTube と Slack を接続する

 テキトーに会員登録済ませましたら、まず自分の持っている YouTube チャンネルの動画投稿を Slack へ送信するという機能を実装してみましょう。

f:id:mntone:20160611153615p:plain

 あとは手順に従ってチャンネル ID や Slack の投稿先、メッセージを入れていけばおkです。

3. 本来の目的

 あれ… よく見てみたら

YouTube Live 開始通知できないんじゃね?

はい、できません…

 ってことで、調べました。

 Web でも番組がオンラインかオフラインか、定期チェックしてる API がありました。非公式なので使えなくなる可能性がありますが… それを Python で実装して JSON で取得しました。

import requests
import json

url = 'https://www.googleapis.com/youtubei/v1/player/live_state?alt=json&key=[your_live_key]'
data = {"context":{"client":{"clientName":"WEB","clientVersion":"1.20160609","hl":"ja","gl":"JP"}},"videoId":"[your_live_id}"}
r = requests.post(url, json=data)
output = r.json()

 そしたら、このプログラムを定期実行(Business 以上; 5 分ごと)にチェックし、ライブ配信がオフラインからオンラインになっているときのみツイートや Slack への投稿をすればいいわけです。

 今回はそのあたりは載せませんけど、Zapier のストレージを使って実現したことだけは書いておきます。その Zapier からツイートさせた実行結果がこちらです。

 目的は達成されました。

4. まとめ

 Zapier ちょっとお値段高いかなぁって思ったり。今は無料トライアル期間で試している感じですが、しばらく運用かなーと。

 以上、Zapier の紹介でした。

5. 余談

 本当は YouTube のプッシュ通知を受け取ってデスクトップ通知するアプリでも書いちゃおうかなーって思ったんですけど、めんどくさくてコード一行も起こさないで終わってしまいました。一応こちらは公式公開されてる API なので実装したらよかったんですけどね。まあやる気ある人やったらいいと思いますよ。