読者です 読者をやめる 読者になる 読者になる

なでテック

techblogというよりmemo

Mayaさんの配信が始まったら通知のツイートをしてくれるbotを作った

まえがき

タイトルのとおりです。10分ごとに配信が始まったかチェックしている*1ので、タイミングが悪いと始まってから10分ちょいしてから通知ツイートをするかんじになります。Herokuで動かしてるので10分に1回チェックが限界です。気が向いたら手持ちのRaspberry Piで動かそうかな?
あと、YouTubeのチャンネル登録をすればメールで通知が来るらしい*2ので、PCならブラウザのGmail拡張機能スマホならGmailのアプリを入れることで通知することが可能だと思います。そのあたりは自分で調べてください。

twitter.com

botがツイートしたら通知する方法

このbotはMayaさんが配信を開始したら通知のツイートをするだけの機能しか持っていないので、このbotのツイートをすべて通知することで擬似的にYouTubeLiveの通知を実現しています。各デバイスでの通知方法を下に記します。

PC

IFTTTとPushBulletのブラウザ拡張機能を使って通知を実現します*3

PushBulletのインストール方法(ChromeFirefox)

ChromePushbullet - Chrome Web Store
FirefoxPushbullet :: Versions :: Add-ons for Firefox

登録はGoogleのアカウントでできるので楽です。初期設定とかは特に必要ないです。

IFTTTの使い方

ifttt.com

こちらにアクセスして、アカウントを既に持ってる人は左上からSign In、持ってない人は新しく作るのでSign Up
そしてこちらに自分が作ったbotとiftttとpushbulletを連携されるレシピがあるので、コレをそれぞれ連携許可してADDを押せば完了です。 IFTTT Recipe: MayaさんのYouTube Liveが開始したらpushbulletを使って通知する connects twitter to pushbulletifttt.com

ちなみにこの方法ですが、botが配信開始を検知するまでに最大15分ほどかかり、さらにIFTTTもリアルタイムでツイートを検知してくれるわけではなく、これまた最大15分*4ぐらいかかることもあるので、配信通知の最大遅延は30分ほどあります(ごめんなさい)

スマホ

(スマホで一番通知が速いのは、YouTubeGamingアプリをがんばって入れることです)

スマホからは、ツイッター公式のアプリを使えば非常に楽です。

f:id:ndozto:20160818175742p:plain

画像はiOSのクライアントですが、Androidもだいたい同じような方法で通知設定ができるでしょう。

ツイッターやってないしやる気もないし、アプリ入れたくないよって人は…PCと同じくIFTTTとPushBulletを使うと通知が実現できると思います。 iOSAndroidそれぞれIFTTTとPushBulletのアプリケーションはあるので、それをDLして、それぞれアカウント登録して、僕の作ったレシピを使うことで通知が来ると思います。

あとがき

とりあえずbotが投稿するようになって満足したのでスマホで通知がくるかとか検証してないところが多いです。今後やる気があったらやると思います。
通知がリアルタイムじゃないのは仕方ないです。ちなみに完全にリアルタイム通知をさせたかったらpush7というサービスがあるんですが…無料で使う場合、月に通知できる数に上限があるので厳しいです。

push7.jp

単純計算ですが、毎日配信、かつすべての視聴者(1000人と仮定)が通知を受け取るとすると、30*1000=30000回の通知を行うことになります。

f:id:ndozto:20160818181243p:plain

これだけで月額1000円は見積もっておく必要があり、さらに配信が途切れて再開みたいなことがあると、配信の判定を見なおさなければ一日に複数回配信通知を行うことになり、プレミアムプランでも足らなくなる可能性まであります。
そういった理由で今回は採用を見送って非リアルタイムだけどとりあえずメジャーなプラットフォームでは通知を受け取ることができますよ。というものを作ってみました。

*1:配信の直後は検知されないこともある

*2:自分はなんかの設定で来ないようになってるのか来ません

*3:コレ以外にも色々方法はあるのですが、楽なのを選びました

*4:最短2分ぐらい