Python+SeleniumでYoutube の広告をどうスキップさせるか

2 min読了の目安(約1900字TECH技術記事

参考: 動画広告(15 秒動画広告、30 秒動画広告、スキッパブル動画広告)

動画を開いた時、

  • 数秒の広告動画(スキップできない)が流れる
  • 数秒後に「広告をスキップ」できる広告動画が流れる
  • 広告が流れない

パターンがあるYoutube動画があるとしまして、本編の動画に極力ストレスなくPython+Seleniumで画面遷移させたい場合どうするのがよろしいのか。

GitHubより

まずGitHubのadskipper.

https://github.com/1993jayant/youtube_adskipper

This is a program written in python programming language. It automatically clicks on the 'skip ad' button on the youtube ads. It uses opencv library's Template Matching functionality to do that.

あるいは、

https://github.com/douasin/youtube-ad-skipper/blob/master/youtube_ad_skipper.py
    def check_ad(self):
        try:
           self.driver.find_element_by_class_name("videoAdUiPreSkipButton").click()
            self.has_ad = True
            return self.driver.find_element_by_class_name("videoAdUiPreSkipText").text
        except:
            return None

    def skip_ad(self):
        try:
            self.has_ad = False
            self.total_skip_ad += 1
            print("已跳過{}個廣告".format(self.total_skip_ad))
            self.driver.find_element_by_class_name("videoAdUiSkipButton").click()
            sleep(1)
            #return self.driver.find_element_by_class_name("videoAdUiSkipButtonExperimentalText").text
        except:
            return None

Stackoverflowより

どうやってスキップボタンを押すか。
[How to click the 'skip ads' button in youtube using selenium in python 3](https://stackoverflow.com/questions/62745175/how-to-click-the-skip-ads-button-in-youtube-using-
selenium-in-python-3)

要素が見つからない時、どう処理するか。
Continue the script if an element is not found using selenium in Python

シンプルにPython例外処理の基礎

https://www.atmarkit.co.jp/ait/articles/1909/06/news019.html

で、有限回数リトライが格好悪いけど現状の妥協点。

良いのを見つけたら追記するかもしれない。