46
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Prime Videoの更新通知を Power Automateでつくる

通勤や隙間時間はPrime Videoで今シーズンのアニメを見たりしているのですが、更新の曜日ってなかなか覚えられないですよね。そんなあなたにぴったりのFlowを紹介します。

Power Automateのスケジュール実行+HTMLの解析

やることは単純です。とあるリストに登録しておいたビデオのURL一覧を、Power Automateで定期的にたたいて、得られたHTMLを解析してエピソード数を取得します。
エピソード数が増えていれば通知、増えていなければフロー終了です。

どのURLを解析する?

特定のビデオを選択した画面のURLを使います。
下図を見ていただくとエピソード(1)という要素があります。この数字が動いたかどうかを取得するわけです。
image.png

HTMLを見てみましょう。とても分かりやすく、 エピソード<!---->(<!----> と書かれています。ありがたい。
Automate上では取得したHTMLを文字列のsplitでさばいていきますが、このような特徴的な文字列があると非常に簡単に望みの値を取り出せます。
image.png

どうやる?

Flowの一部、HTTPでGETして、数字をとるところを見てみます。
image.png

AutomateのHTTPアクションを利用して、ビデオのURLをGETします。得られた結果のBodyを、先ほどみた特徴的な文字列でsplitします。
その結果できる配列の[1]を、さらにエピソード数の後ろの文字列<!-- -->でsplitして[0]をとります。
ステップを表すと以下のような感じです。
image.png

これでエピソード数が取れました。あとはリストに入れておいた前回取得した際のエピソード数と比較してあげれば完成です。

完成版

リストはSharePointを利用しました。
列の設定は、簡単に
- Title : 既定のタイトル列 (アニメのタイトルを入れておく)
- Url : ハイパーリンク列 (GETするURLを入れておく)
- LastEpisode : 数値列(最後に取れたEpisode数を格納する)
このようにしておきます。アニメの登録は、タイトルを手で入力して、Urlをコピペして、最初だけ、LastEpisodeを手で入力しておきます。

image.png

Flow側は定期実行を含めて、以下のようになります。
出てくる数式は全部同じですので、メモ帳かなにかでコピペしてあげてください。
また、今回はTeamsに通知を飛ばしていますが、モバイルのPush通知にしてもいいと思います。
その際はビデオURLをリンクとしていれるとよいでしょう。

image.png

まとめ

Power Automateを利用した定期実行とHTMLの解析によって、標準で提供されていない新着お知らせを作ることができました。
Automateはこのように、ちょっとした生活のお役立ちにも使えますので、ぜひ試してみてください!

※ちゃんと通知されました↓
image.png

追記 (2020/1/20)

どうやらビデオによっては、プライムで見れらるようになる前にエピソードの枠だけ追加されるようです。
そういうビデオに合わせるのであれば、int(split...の箇所(唯一数式を書いている部分)を以下で置き換えてください

int(sub(length(split(body('HTTP'),'プライムで見る</span>')),1))

これは、「プライムで見る」ボタンの数をカウントしたものです。ですので実際見られるビデオが通知されます。
※すでにLastEpisodeを登録している場合には手作業で更新をお願いします...

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
46
Help us understand the problem. What are the problem?