先日Python入門者の集いで登壇させて頂き、PythonでChromecastを制御した話をさせていただきました。今回はPythonのパッケージ「pychromecast」を使ってChromecastを制御する方法についてご紹介します。
pychromecastとは
pychromecastとはPythonからChromecastを制御するためのパッケージです。Python2または3で利用できます。ネットワーク上のChromecastを検出し、動画・静止画の再生などを制御することができます。通常はGoogle Cast SDKを使用してCastのアプリを開発をしますが、Google Cast SDK Developer Consoleに有料($5.00)で登録しなければなりません。
pychromecastはそういった登録をせずに開発を始めることができます。
Pythonにpychromecastをインストールする方法
Python2.7.9以降、Python3.4以降であればパッケージ管理ツールのpipが同梱されているので、下記コマンドでインストールできます。
pip install pychromecast
Pythonにpipが入っていない場合
get-pip.pyを使ってインストールができるようです。
python get-pip.py
PythonフォルダのScriptsに入ってきます。
PythonでChromecastを制御する
ここからChromecastを制御するための準備に入ります。まずはChromecastを挿した時、画面に表示されるChromecastの名前をチェックします。
この名前を元にPythonで制御を行っていきます。実際にChromecastのステータスを確認しながら実行していくので、コンソールから一行ずつ叩いてみてください。githubにあるpychromecastの使い方の通りに実行していけば問題ありません。
>> from __future__ import print_function >> import time >> import pychromecast >> pychromecast.get_chromecasts_as_dict().keys() [u'Chromecast6637'] >> cast = pychromecast.get_chromecast(friendly_name="Chromecast6637") >> cast.wait() >> print(cast.device) DeviceStatus(friendly_name=u'Chromecast6637', model_name=u'Chromecast', manufacturer='Google Inc.', api_version=(1, 0), uuid=UUID('ここにUUIDが表示される'), cast_type='cast') >> print(cast.status) CastStatus(is_active_input=False, is_stand_by=True, volume_level=1.0, volume_muted=False, app_id=u'ここにAPPIDが表示される', display_name=u'Backdrop', namespaces=[u'urn:x-cast: com.google.cast.see', u'urn:x-cast:com.google.cast.media'], session_id=u'ここにSESSIONIDが表示される', transport_id=u'web-1', status_text=u'') >> mc = cast.media_controller >> # ここで動画のURLとMIMEタイプを指定すると再生が開始される >> mc.play_media('http://example.com/example.mp4', 'video/mp4') >> # 動画を一時停止 >> mc.pause() >> # 動画を再開 >> mc.start() >> # 動画を最初から再生 >> mc.rewind() >> # 動画を停止 >> mc.stop()
動画の制御は基本的にMediaControllerで行います。MediaControllerを使うことで動画の再生・停止などの制御を行うことができます。ここの例では動画を指定していますが、静止画のURLとMIMEタイプを渡すと画面に表示させることができます。
また、YouTubeControllerもソースにあるのでいろいろ試せそうです。
Chromecastを実際に動かしてみた
実際にPythonから制御した動画です。LTで使用したものです。コンソールからPythonのコードを叩きながら動画を制御しています。
最後に
今回はpychromecastについてご紹介させていただきましたが、いかがでしたでしょうか!
ネットワーク経由でデバイスを制御するのは一見難しそうな印象ですが、それも簡単にできてしまうのはPythonの魅力の一つかと思います。pychromecastは現在進行形で開発も進んでいるので、今後の機能追加にも注目していきたいですね。
コメント