Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
43
Help us understand the problem. What is going on with this article?
@h-nagao

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

More than 1 year has passed since last update.

通勤や隙間時間は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を登録している場合には手作業で更新をお願いします...

43
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
h-nagao
Power Platform好きです。 #MoreBeerMorePower 新しい投稿は、はてなブログのほうにしています。

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
43
Help us understand the problem. What is going on with this article?