Seleniumを使ってYoutube動画を自動再生するテスト
こちらの記事ではより細かいアクションのやり方などを記載していますので、是非参考にしてみてください。
Seleniumを使ってGoogle検索 ~ サイトの巡回までをプログラムする
準備編
seleniumのインストール
pip install selenium
# インストールできているかの確認
pip3 show selenium
WARNING: Package(s) not found: seleniumが返ってきたらインストールできていません。
ChromeDriverをダウンロード
まずは使用予定のChromeのバージョンをチェックします。
https://chromedriver.chromium.org/downloads
バージョンを指定するとこのように任意のOSのドライバーをダウンロードできますので、管理しやすいパスに解凍してください。
Bot作成
from selenium import webdriver
from time import sleep
# chromedriverのパスを入力
PATH = 'chromedriver'
CHANNEL_URL = '開きたいURL'
class作成
- チャンネルのホームに移動
- 動画リストに移動
- リストの動画を順番に再生
- チャンネルのホームに移動
を繰り返します。
# class名は好きな名前を決めてください。
class kotarostudio():
def __init__(self):
self.browser = webdriver.Chrome(PATH)
self.__home()
def __home(self):
self.browser.get(CHANNEL_URL)
sleep(4)
def __videoPage(self):
self.browser.get(CHANNEL_URL + '/videos') # 動画リストの要素を加えます
sleep(4)
def __videoID(self, elementNumber):
self.ids = self.browser.find_elements_by_id('details') # こちらはサムネイルの要素です
sleep(4)
return self.ids[elementNumber]
def watchVideo(self, videoNumber, watchTime):
self.videoNumber = videoNumber
self.watchTime = 30 # 視聴時間を指定します
self.__home()
self.__videoPage()
thumbnailElem = self.__videoID(self.videoNumber)
thumbnailElem.click()
sleep(self.watchTime)
myBot = kotarostudio()
for i in range(10): # 何個の動画を視聴するか決めます
myBot.watchVideo(i, 2)
- チャンネルのホームに移動
- (4秒後)動画リストに移動
- (4秒後)リストの動画を順番に再生
- (30秒視聴後)チャンネルのホームに移動
これが任意の回数繰り返されるBotが完成しました。
エラー対処法
importエラー
Import "selenium" could not be resolved from source
VS codeでPythonを走らせるとこのようにエラーが出る場合があります。
seleniumがimport出来ていません。
この場合はVScode画面左下が(‘base’: conda)になっているかチェックしてみてください。
M1 Macで環境構築した場合はGlobalに設定しているかもしれませんので確認し、Condaに変更してください。
これでimportできるはずです。
chromedriverが開けない
悪質なソフトウェアかどうかをAppleでは確認できないため
と表示され開けない場合はシステム設定のセキュリティーから許可してください。
システム→セキュリティーとプライバシー→一般タブ
パスが通らない
selenium.common.exceptions.WebDriverException: Message: ‘chromedriver’ executable needs to be in PATH.
このメッセージが出た場合はパスが通っていません。
import chromedriver_binary
上の一文を追加してから実行してみてください。
バージョンエラー
selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version
この場合はchromedriverのバージョンとお使いのChromeのバージョンが一致していません。
もう一度バージョンが一致しているか確認し同じバージョンのchromedriverを使ってください。
インストール済みのchromedriverのバージョン確認方法はこちらで。
pip3 show selenium
まとめ
これで大好きなチャンネルを面倒な操作をせずにプログラムを実行するだけで流せます。
もちろん要素を変更したりして任意の再生リストを再生することもできますし、classを作らなくてもseleniumとchromedriverだけで毎日朝に聴いてる音楽や癒し映像のルーティン再生も可能になります。
特に音楽関係や落語関係のチャンネルなどではいいかもしれません。