【子ども youtube ブロック キーワード】UiPathでYoutubeの指定動画をやんわりブロックする②

前回の続き

小2長男のつまらない動画閲覧による人生の無駄な時間の消費を解消するべく、父である私は子どもにサイバーな対策を打ち出すことを決めたのでした。

Youtubeには個別のブロック機能がなく、セーフティな機能も大してセーフティではないので、自分でなんとかするしか無いのです。そこで出たのがUiPathです。

前回は、図の中央のフロー分岐のところまで行きました。
左側のTrueルートの説明に行きます。

SMTP メールメッセージを送信

Gmailで飛ばすようにしたので、GmailのSMTP設定を入れます。

サーバ:”smtp.gmail.com”
ポート:465
件名:”xx家Tutube検閲報告”
本文:”xx家YouTube検閲ロボットです
   youtube 禁止ワードを含む動画の閲覧を検知したため、
   対象端末のwifiをx分間停止します。

パスワード:”xxxxxxx”
メール:”xxxxx@gmail.com”
宛先:”xxxxx@gmail.com;xxxxx@gmail.com ” ※複数の場合はセミコロンで区切ればOKです。

名前:”xx家YouTube検閲ロボット”
送信元:”xxxxx@gmail.com”

添付ファイル:以下のようにしました。

検知したときの再生履歴(以前、検索でブロックしようと考えたことがありファイル名がそのままです。)と現在の禁止ワードのcsvを添付するようにしています。



このように、うまく反応したときはメールで確認できるようにしました。
もっとやるなら、Gmailの着信をもとにIFTTTでLINEに飛ばすとかできそうですね。

あと、Gmail側で機械からのログインをブロックしてしまう可能性があるので、UiPathの実行時に認証エラーが出た場合は、Gmailのアクティビティ管理やアカウント管理で許可する必要があります。



ルータへログインし端末停止

自宅のルータのURLに移動します。移動する前に、手前のループ処理で時間が少し経過しているので、しっかりブラウザにアタッチしてから移動します。

自宅のルータはたいていベーシック認証を使っていると思うので、ブラウザのポップアップに対して、上記のログイン情報を入れなくてはいけないです。UiPathだとこの手のポップアップにうまくアタッチして情報を入れるのが上手くいかないことが多いので、以下のようにします。

“http://admin:yourpassword@192.168.10.1/index.cgi/[移動したいページ]”

こうすると、上記のようなポップアップ画面は出てきません。そして、ルータへログインした後も、クリックして遷移するよりは行きたいページを直接したほうが良いと思います。


我が家のルータ「Aterm WG1800HP2」には、「こども安心ネットタイマー」と言うのがついており、MACアドレスで端末を管理し、通信制御をしてくれます。

※ちなみに、このツールの有料版の機能でもYoutubeを個別キーワードでブロックすることはできません。それもUiPathを使う理由の一つになりました。

画面遷移して、有効/無効を切り替えることで、該当端末のネットを一時的に止めてもとに戻します。止めすぎると苦情が来るので、2分くらいとめて「あれ?なんかつながらないな」と思って、親に相談に来る頃には直っている。と言うのが2分です。(我が家統計)

通常のルータの機能を使うのであれば、MACアドレスフィルタか固定IPにしてIPフィルタなどを使えばいいと思います。



ブラウザーにアタッチし、閲覧履歴を更新

これが意外と重要なフローで、ネットを一時停止したあと、ループを繰り返すと同じ履歴を見てしまい、また停止してしまうので、履歴を他のもので埋めてクリアします。

・ブラウザにアタッチ
・YouTubeの健全な風景の動画などを閲覧
・10秒待機し、履歴に残す
・5回繰り返す
・最後は、再生履歴のページに遷移する

というフローです。

ブラウザーにアタッチし、最新の閲覧履歴を取得&変数の初期化

最後は次のループのための準備で、再生履歴に移動し(なんか移動し過ぎな気がする。この記事書いてて気づきました。消そう。)、検知用フラグである比較結果をFalseにして初期化し、テーブルもクリアします。


使用した変数

使った変数はこんな感じです。

etsuranRireki:再生履歴タイトルを1行ずつ読み込み、比較に使用する
kinshiWord:禁止ワード.csvを1行ずつ読み込み、比較に使用する
KinshiWordKenchi:比較の結果、ヒットしたらTrueにするフラグ
DataTable:再生履歴を保存するテーブル
DataTable2:禁止ワード.csvを保存するテーブル
ExactDataTable:再生履歴のスクレイピング結果を保存するテーブル


おわりに

待機時間や検知後の動きなどは、自分でアレンジしつつ組んでいったほうが良いと思います。UiPathがわかる方は、全体のフローだけを見て、アイデアを取り入れていただければと思います。



コメント

%d人のブロガーが「いいね」をつけました。
タイトルとURLをコピーしました