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

はじめに

最近、小2の長男がYoutubeで変な動画を見始めました。変な動画というのは「親にとっては変な動画」です。具体的に言うと、青鬼とか、生首が機械の声でゲーム実況しているやつとか、ムスカのMADとか、ドナルドがワイワイしているやつとか、親からすればしょうもないものが子どもは好きなんです。私も子どものときはそうだったと思います。

iPadを取り上げたり、アプリを消してしまうのは簡単ですが、どうにか自分で卒業してほしいなと思い、いろいろ検討した結果、UiPathを活用することにしました。

【他に検討したこと】
 ・Youtube Kids(インターフェースが違いすぎて、子どもがなじまない)
 ・Youtubeの設定(ブロックや興味なしボタンは、積極的に探す子には意味がない)
 ・i フィルター(Youtubeアプリはssh通信なので特定動画のブロックは外からできない)
 ・プロキシ経由でYoutubeさせる(これも特定動画だけのブロックができない)


無理やり取り上げられるより、最初は見れるけれど途中から見えなくなって、「なんか上手くいかないなー」くらいでフェードアウトしてもらうのが目的です。

フロー概要

ざっくりというと以下の流れです。

1.Youtubeの再生履歴を表示
2.最新5件の結果をスクレイピングし、CSVに出力
3.予め設定していた「禁止ワード.csv」と突き合わせる
4.キーワードに合致したら、iPadの使用をルータから停止する。
  (合致しない場合は、1分待機して繰り返し)
5.2分停止して、またもとに戻す
6.再生履歴をクリアするために、5件関係のない動画を開く


以下が、外側のフローチャートです。


フロー詳細

youtube検索履歴を開く&ログイン

Youtubeの再生履歴を開きます。
ユーザとパスワードをUiPathで入力してもいいのですが、失敗率が高くなるので、ブラウザの自動入力で進むことにしました。UiPathのツール画面からChromeのエクステンションを入れておく必要があります。



youtube検索履歴データスクレイピング

念の為ブラウザにアタッチして、それからデータスクレイピングを使います。


スクレイピング画面のイメージです。
再生履歴のタイトル上位2件を選択すれば、続きを選択してくれるようになります。

私は、作者も禁止ワードに入れたかったので、追加してます。

その後、CSVに出力します。
ExactDataTableにも出力します。Shift-JIS指定もします。

繰り返し (各行)

スクレイピング結果と禁止ワードを突き合わせします。


前のフローで出力した「ExactDataTable」を1行ずつ読み込みます。


次に、禁止ワード.csvを「DataTable2」に読み込みます。

ちなみに、禁止ワードの中身は以下のようにしています。

これが、親子電脳戦争、親側攻撃の心臓部分です。

再生履歴から見てほしくない動画のキーワードを入れます。ヒカキンさんにも申し訳ないですが、青鬼の動画でわーわーやっているのが、周りで聴いていると耐えられないのでブロック対象にしました。いい動画もいっぱいあるでしょうけど。

ちなみに、「鬼」は、妻が後日「鬼束ちひろ」の動画を見ようと思って、ブロックが発動したので笑っちゃいました。おっぱいもダメだよ!


1つ読み込んだ再生履歴と禁止ワードの全件を突き合わせる子ループです。
DataTable2を1行ずつ読み込みます。



1行読み込んだら、kinshiWordに代入します。


etsuranRireki.Contains(kinshiWord) で、部分検索を行います。
禁止ワードの一部を含む、再生履歴のタイトルがあれば、
KinshiWordKenchi = Trueとして、検知フラグをONにします。



フロー条件分岐

KinshiWordKenchiのフラグがTrueであれば、端末停止フローへ進みます。
Falseであれば、1分待機して次の監視タイミングまで待ちます。



さて、途中ではありますが、
寝る時間になってしまったので、続きはまた次回にします。


親子電脳戦争、結末はいかに?


コメント

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