自動化厨のプログラミングメモブログ │ CODE:LIFE

Python/VBA/GAS/JavaScript/Raspberry Piなどで色んなことを自動化

MacroDroidでYouTubeの広告を自動スキップするやつが動かなかったので日本語環境用に調整する

そこまで頑張るくらいならPremium契約しなよ...と言われても、どうにかマクロで広告を自動スキップしたい。むしろ自動スキップする仕組み作ること自体が楽しいのでしょうがない。

play.google.com

有志が配ってくれてるテンプレートのほとんどが英語版で日本語対応させる手間がちょっとあったり、日本語環境が特殊なのかテキストの判定が上手くできなくて修正に時間が掛かったのでシェアする。

※このマクロはW!lloO氏の「YouTube : Auto skip ads 🚫 V3」をベースとして多言語対応させています。

とりあえず.macroファイルくれさいの人は こちらからダウンロード してくれさい。

機能概要

  1. YouTubeアプリ上で「広告主のサイトにアクセス」が表示されたら → 音量を0にして画面を暗くする
  2. YouTubeアプリ上で「スキップ」ボタンが表示されたら → スキップボタンをタップして、音量と画面の明るさを元に戻す
  3. YouTube上の「広告主のサイトにアクセス」が消えたら → 音量と画面の明るさを元に戻す
  4. YouTubeアプリを終了または画面をOFFにしたら → 音量と画面の明るさを元に戻す

問題:タップさせたい「スキップ」というテキストを読み取ってくれない

「YouTube : Auto skip ads 🚫 V3」では英語環境が前提のため「Skip ad」というテキストを画面上から探してタップするという動き。

元のマクロでは英語環境用に Skip ad* が設定されている

日本語環境では「スキップ」と表示されるので、以前までは「スキップ*」と設定すれば問題なく動いていた。

しかし、なぜか現在は動かない。

以前は「スキップ*」に変えるだけでよかった

対策:テキストではなくコンテンツIDで指定する

英語で動いて日本語で動かないならテキストではない方法で要素を取得できればいい。

コンテンツIDを用いた指定に変更することで正常動作できた。

指定するIDは com.google.android.youtube:id/skip_ad_button。めっちゃ分かりやすいIDで助かる。

トリガーの指定をコンテンツIDに

同様にアクション側も変更する

広告主のサイトにアクセス もコンテンツID指定に変更 com.google.android.youtube:id/player_learn_more_button

広告主のサイトにアクセス

トリガー

MacroDroidトリガー

アクション

MacroDroidアクション