Raspberry pi で自作Google home:ブラウザの自動操作とYoutube APIテスト

Raspberry pi でOK google !を使えるようになりましたが、YouTubeの好きな楽曲を再生することはどうやらできないみたいです。できないなら仕方ない、で終わらせるわけにはいきません。できないのならつくればいいのです。

ということでブラウザを操作するモジュールである、seleniumをインストールします。

(env) pi@raspberrypi:~/env/assistant-sdk-python/google-assistant-sdk/googlesamples/assistant/grpc $ pip install selenium
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting selenium
 Downloading https://www.piwheels.org/simple/selenium/selenium-3.141.0-py2.py3-none-any.whl (904 kB)
    |████████████████████████████████| 904 kB 97 kB/s 
Requirement already satisfied: urllib3 in /home/pi/env/lib/python3.7/site-packages (from selenium) (1.26.2)
Installing collected packages: selenium
Successfully installed selenium-3.141.0

また、chromeのドライバーも必要みたいなので、このサイト Raspberry piでseleniumがやっと動かせた を参考にインストールします。

wget https://launchpad.net/~canonical-chromium-builds/+archive/ubuntu/stage/+build/20359952/+files/chromium-chromedriver_87.0.4280.88-0ubuntu0.18.04.1_armhf.deb
​pi@raspberrypi:~ $ sudo dpkg -i chromium-chromedriver_87.0.4280.88-0ubuntu0.18.04.1_armhf.deb 
以前に未選択のパッケージ chromium-chromedriver を選択しています。
(データベースを読み込んでいます ... 現在 110948 個のファイルとディレクトリがインストールされています。)
chromium-chromedriver_87.0.4280.88-0ubuntu0.18.04.1_armhf.deb を展開する準備をしています ...
chromium-chromedriver (87.0.4280.88-0ubuntu0.18.04.1) を展開しています...
chromium-chromedriver (87.0.4280.88-0ubuntu0.18.04.1) を設定しています ...

あれ、うまくインストールができました!

早速使ってみると。。。

selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 87
Current browser version is 84.0.4147.141 with binary path /usr/bin/chromium-browser

あ、はい。

画像1

バージョンが違ってました。アンインストールして、やり直しでしゅ。

(env) pi@raspberrypi:~ $ sudo dpkg -r chromium-chromedriver_87.0.4280.88-0ubuntu0.18.04.1_armhf.deb 
dpkg: エラー: パッケージ名として指定するのは、その中に含まれているファイルの名前ではなく、パッケージ名そのものでなければなりまんパッケージのインストールおよびアンストールについての情報は dpkg --help で参照 [*];
ユーザ向けパッケージ管理ツールである `apt' または `aptitude' を使いましょう;
デバッグフラグの一覧は dpkg -Dhelp で参照;
強制オプションの一覧は dpkg --force-help で参照;
*.deb ファイル操作のヘルプは dpkg-deb --help で参照;
[*] のあるものは大量の情報が出力されます。`less' や `more' にパイプするようにしてください!
(env) pi@raspberrypi:~ $ sudo dpkg -r chromium-chromedriver
(データベースを読み込んでいます ... 現在 110952 個のファイルとディレクトリがインストールされています。)
chromium-chromedriver (87.0.4280.88-0ubuntu0.18.04.1) を削除しています ...
(env) pi@raspberrypi:~ $ sudo dpkg -i chromium-chromedriver_84.0.4147.105-0ubuntu0.16.04.1_armhf.deb 
以前に未選択のパッケージ chromium-chromedriver を選択しています。
(データベースを読み込んでいます ... 現在 110948 個のファイルとディレクトリがインストールされています。)
chromium-chromedriver_84.0.4147.105-0ubuntu0.16.04.1_armhf.deb を展開する準備をしています ...
chromium-chromedriver (84.0.4147.105-0ubuntu0.16.04.1) を展開しています...
chromium-chromedriver (84.0.4147.105-0ubuntu0.16.04.1) を設定しています ...
(env) pi@raspberrypi:~ $ 

ーrでファイル名を指定したら怒られたので、chromium-chromedriverと指定してアンインストールです。インストールをし直したので、

Python + Selenium で Chrome の自動操作を一通り を見ながらサンプルコードを実行してみます。

import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.google.com/')
time.sleep(5)
search_box = driver.find_element_by_name("q")
search_box.send_keys('ChromeDriver')
search_box.submit()
time.sleep(5)
driver.quit()

サンプルコードはこちらです。さて、実行!

画像2

おお。

画像3

ブラウザを立ち上げ、検索する、ということが自動でできました。

お次は、Youtube Data APIを使ってPythonでYoutubeデータを取得する を見ながら、YouTubeのAPIを使ってみます。

例えば、

 $ cat youtube-sample.py 
from apiclient.discovery import build
YOUTUBE_API_KEY = 'XXXXXXXX'
youtube = build('youtube', 'v3', developerKey=YOUTUBE_API_KEY)
search_response = youtube.search().list(
part='snippet',
#検索したい文字列を指定
q='Orangestar',
#視聴回数が多い順に取得
order='viewCount',
type='video',
).execute()print(search_response['items'][0])

これを実行すると、

$ python3 youtube-sample.py 
{'kind': 'youtube#searchResult', 'etag': 'QoFvJdORgC9qWuNurAObfXj3QyI', 'id': {'kind': 'youtube#video', 'videoId': 'XogSflwXgpw'}, 'snippet': {'publishedAt': '2015-01-12T04:45:42Z', 'channelId': 'UCgBPuTX7crv_2jKAkH5z7bA', 'title': 'Orangestar - アスノヨゾラ哨戒班 (feat. IA) Official Video', 'description': '君が笑う再会の夜空へ。 Music & Lyrics: Orangestar Illustration: M.B Twitter→https://twitter.com/MikanseiP グッズ ...', 'thumbnails': {'default': {'url': 'https://i.ytimg.com/vi/XogSflwXgpw/default.jpg', 'width': 120, 'height': 90}, 'medium': {'url': 'https://i.ytimg.com/vi/XogSflwXgpw/mqdefault.jpg', 'width': 320, 'height': 180}, 'high': {'url': 'https://i.ytimg.com/vi/XogSflwXgpw/hqdefault.jpg', 'width': 480, 'height': 360}}, 'channelTitle': 'Orangestar', 'liveBroadcastContent': 'none', 'publishTime': '2015-01-12T04:45:42Z'}}

と出てきます。さすがアスノヨゾラ哨戒班、人気なんですねえ。(蛇足ですが、この曲の作りてさんである、Orangestarさんが結婚されました。おめでとうございます。)

次は、YouTubeのお気に入りリストの検索や、OK google !で入力した音声から単語検索など行っていきます。






この記事が気に入ったらサポートをしてみませんか?