2016/9/4

YouTube音楽再生ガジェット

どうも、クラゲです。
電源をONするだけで、指定したYouTubeの動画を自動再生するガジェットの作り方を紹介します。
YouTubeなので、勝手に動画が次々と再生されていくので、最初にMusicVideoを設定しておけば、音楽プレーヤーとしてそれなりにうまく活用できます。
最低限必要なハードウェアはラズパイとスピーカーのみです。動画では3.2inch LCDを使っていますが、無くても動作可能です。


設定さえしてしまえば、動作させるのは超簡単で電源オンするだけです!
もちろん、スマホやPCでYouTube再生させれば出来てしまうのですが、電源オンだけで動く専用ガジェットとしてあると何かと便利です。

【 コツ 】

  • ブラウザを使う
    RASPBIANにプリインストールされているブラウザEpiphanyを使います

  • autostartを活用
    デスクトップが起動した後に実行されるスクリプトにブラウザ起動を追記します

  • 全画面表示
    動画のみ全画面表示されるようにキー操作を自動化したスクリプトを追記します

【 必要なモノ 】

  • RaspberryPi
    ここではラズパイ3を使っています。ラズパイ3以外は無線LANドングルなどが必要です。

  • スピーカー
    AUX入力があるスピーカー

  • LCD(無くてもOK)
    aitendoで買った3.2inch LCDを使っています

  • ルーター
    安定してインターネットに接続できる環境は必要

【 必要なスキル 】

  • ラズパイ触ったことある人

【 おおまかな流れ 】

  • 事前準備
  • オーディオ設定
  • 起動スクリプト作成
  • autostartスクリプト編集

【 詳細 】

事前準備

まずラズパイ3を準備します。

もし3.2inch LCDを使う場合はこちらを参照して準備してください
http://jellyware.jp/kurage/raspi/lcd_32inch.html

LCDを使わない場合で、ラズパイの初期設定を行っていない場合はこちらを参照して準備してください
http://jellyware.jp/kurage/raspi/raspberrypi.html

全画面表示をキー入力によるショートカットで設定しますが、これをスクリプトで実行させるために"xte"というコマンドが必要となります。
このコマンドを使えるようにするために "automation" をインストールします。LCDを使わない人はインストールしなくても大丈夫です。

sudo apt-get install xautomation

オーディオ設定

以下のコマンドを打ち、オーディオ出力をAUX固定にします

amixer cset numid=3 1

3.2inch LCD用ドライバを入れていると以下のようなエラーが出る可能性があります。
amixer: Control default open error: No such file or directory

エラーが出た場合は、/boot/config.txt を編集します。

sudo nano /boot/config.txt

最後の行に以下を追加してください。

dtparam=audio=on

ちなみにnanoの使い方は
"Ctrl + O"で保存
ファイル名を聞かれるのでEnter押す
"Ctrl + X"で閉じる

編集が終わったら再起動してください。
これで"amixer cset numid=3 1"コマンドがエラーなく実行されると思います。
ちなみに音量設定は"alsamixer"コマンドです。

起動スクリプト作成

"fullscreen.sh"という名前で新規作成します

nano /home/pi/fullscreen.sh

中身は以下の通りです

epiphany-browser https://youtu.be/lp-EO5I60KA --display=:0 &
sleep 15s;
xte "key F11" -x:0
sleep 10s;
xte "key f" -x:0
xte "mousemove 1000 1000" -x:0

epiphany-browser でブラウザの起動を行います。
最初の引数は再生したいURLです。もちろん好きに変えて構いません。
2番目の引数はディスプレイ番号です。これがないとエラーになります。
最後の "&" はバックグラウンドで処理するという意味です。"&"がないとブラウザが終了するまでそこで処理が止まってしまいます。全画面にしないのであればそれでも良いのですが、その後全画面にするという処理を行いたいため、このようにしています。

sleep 15sはブラウザの起動が完了するのを待つためです。だいたいの予測で15秒にしています。
環境によっては調整必要かもしれないです。

"xte "key F11"" は "F11キーを押す"という意味です。最後の "-x:0"はディスプレイ番号の指定です。
ブラウザを全画面表示するショートカットキーがF11なので、このようにしています。

sleep 10sはYouTubeが確実に再生されるのを待つために設けています

"xte "key f"" は "Fキーを押す"という意味です。
”F”を押すと動画の全画面表示の切り替えを行うYouTubeの隠しコマンドを利用するために、このようにしています。

"xte "mousemove 1000 1000"" はマウスカーソルの位置を右下に移動しています。実際の画面は1000px以下ですが、超えている場合は最大値に変換されるようです。
このようにしているのは、そのままだとマウスカーソルが動画の真ん中に来て邪魔なためです。

保存できたら実行できるように権限を変更しておきます

sudo chmod 755 /home/pi/fullscreen.sh

autostartスクリプト編集

最後に先ほど作った"fullscreen.sh"をデスクトップ起動時に実行するように設定します。

sudo nano ~/.config/lxsession/LXDE-pi/autostart

以下の3つを最後に追記して保存してください

@xset s off
@xset -dpms
@/home/pi/fullscreen.sh

一番下の行がスクリプト実行の設定です。
ラズパイのデフォルト設定では、一定の操作がないときにディスプレイの省電力のために画面をブランクにします。
上の2つの行は、これを防ぐために追記しています。ブランクになっても良い人は書かなくてもOKです。

これで再起動してしばらく待つと音楽再生が始まると思います!

いかがでしたでしょうか?
ラズパイ3でも動画の動きがちょっとカクカクしているところがありますが、音はちゃんと出ているので音楽を聞くという用途であれば問題ありません。
たまに動画が停止しているときがありますが、タッチパネル付のLCDがあれば簡単に再開できます。
以上、YouTube音楽再生ガジェットの作り方でした!

こちらのサイトを参考にさせていただきました