通勤や隙間時間はPrime Videoで今シーズンのアニメを見たりしているのですが、更新の曜日ってなかなか覚えられないですよね。そんなあなたにぴったりのFlowを紹介します。
Power Automateのスケジュール実行+HTMLの解析
やることは単純です。とあるリストに登録しておいたビデオのURL一覧を、Power Automateで定期的にたたいて、得られたHTMLを解析してエピソード数を取得します。
エピソード数が増えていれば通知、増えていなければフロー終了です。
どのURLを解析する?
特定のビデオを選択した画面のURLを使います。
下図を見ていただくと**エピソード(1)**という要素があります。この数字が動いたかどうかを取得するわけです。
HTMLを見てみましょう。とても分かりやすく、 エピソード( と書かれています。ありがたい。
Automate上では取得したHTMLを文字列のsplitでさばいていきますが、このような特徴的な文字列があると非常に簡単に望みの値を取り出せます。
どうやる?
Flowの一部、HTTPでGETして、数字をとるところを見てみます。
AutomateのHTTPアクションを利用して、ビデオのURLをGETします。得られた結果のBodyを、先ほどみた特徴的な文字列でsplitします。
その結果できる配列の[1]を、さらにエピソード数の後ろの文字列でsplitして[0]をとります。
ステップを表すと以下のような感じです。
これでエピソード数が取れました。あとはリストに入れておいた前回取得した際のエピソード数と比較してあげれば完成です。
完成版
リストはSharePointを利用しました。
列の設定は、簡単に
- Title : 既定のタイトル列 (アニメのタイトルを入れておく)
- Url : ハイパーリンク列 (GETするURLを入れておく)
- LastEpisode : 数値列(最後に取れたEpisode数を格納する)
このようにしておきます。アニメの登録は、タイトルを手で入力して、Urlをコピペして、最初だけ、LastEpisodeを手で入力しておきます。
Flow側は定期実行を含めて、以下のようになります。
出てくる数式は全部同じですので、メモ帳かなにかでコピペしてあげてください。
また、今回はTeamsに通知を飛ばしていますが、モバイルのPush通知にしてもいいと思います。
その際はビデオURLをリンクとしていれるとよいでしょう。
まとめ
Power Automateを利用した定期実行とHTMLの解析によって、標準で提供されていない新着お知らせを作ることができました。
Automateはこのように、ちょっとした生活のお役立ちにも使えますので、ぜひ試してみてください!
#追記 (2020/1/20)
どうやらビデオによっては、プライムで見れらるようになる前にエピソードの枠だけ追加されるようです。
そういうビデオに合わせるのであれば、int(split...の箇所(唯一数式を書いている部分)を以下で置き換えてください
int(sub(length(split(body('HTTP'),'プライムで見る</span>')),1))
これは、「プライムで見る」ボタンの数をカウントしたものです。ですので実際見られるビデオが通知されます。
※すでにLastEpisodeを登録している場合には手作業で更新をお願いします...