Raspberry Pi 3 ModelB(Volumio)でyoutube(の音楽)を聴けるようにする

## 目的
Volumioを導入したRaspberry Raspberry Pi 3でyoutube(の音楽)を聴けるようにする[^1]
[^1]: 在宅勤務増加により自宅でのオーディオ環境を整えるのが真の目的

## 環境
OS：Volumio v2.692
サーバー：外付けHDD(EC-PHU3W1)
SDカード：SanDisk 16GB
Volumio操作(リモコン)：iPhone 8 or Windows PC
Plugin：Youtube Playback v1.01(手持ちの環境では正常動作せず) → v0.10

## 作業メモ
### ラズパイで音楽再生できるようにする(Volumio導入)

<b>参考サイト</b>
https://glodia.jp/2017/08/18/1976/
https://blog.tsukumo.co.jp/shimbashi/2017/08/post_96.html
https://www.labohyt.net/blog/server/post-1700/

参考にVolumio導入時のメモも残しておく。
[参考サイト](https://glodia.jp/2017/08/18/1976/)を参考に`Volumio`(音楽再生用OS)をインストールする

+ Volumio/win32DiskImager(imgファイルの書き込みソフト) のダウンロード

[Volumioダウンロードページ](https://volumio.org/get-started/)から現状の最新版(ダウンロード時はv2.692)をダウンロード
[win32DiskImagerダウンロードページ](https://ja.osdn.net/projects/sfnet_win32diskimager/)から現状の最新版(v1.0)をダウンロード

+ SDカードへ書き込み

Image Fileを選択して、Writeボタンにて書き込み
![Diskimager_setting.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/e681c12b-b773-3907-7c0f-4ecae83471b8.jpeg)


+ Volumioを起動する

SDカードをラズパイに挿入して起動
[参考サイト](https://glodia.jp/2017/08/18/1976/)を参考にiPhone上で以下URLを入力することでVolumioへアクセスする
http://volumio.local
とりあえず初期設定は言語設定のみで他は後で設定する

+ とりあえず音楽再生

以下の画像の手順で進めて、外付けHDDに入っている音楽を再生する
イヤホンジャックから音楽再生できていることを確認
これでとりあえずラズパイでの音楽再生まではできた

`音楽ライブラリ`を選択
<img width="375" alt="IMG_7242.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/96cdf47c-9c26-a2f3-82dd-11f00e13ef32.png">

<img width="375" alt="IMG_7243.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/b523ffdf-6953-44f9-4d74-43ef31fdf03d.png">

<img width="375" alt="IMG_7244.PNG" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/471dcea7-b5e2-fb71-dac5-e478b5be9949.png">

+ SSHを使用可能にする

ついでにSSHの設定方法も載せておく
[参考サイト](https://www.labohyt.net/blog/server/post-1700/)を参考に以下URLより設定する
http://volumio.local/DEV/
![volumio_image_1.jpg](https://qiita-image-store.s3.amazonaws.com/0/248487/60c5966a-6449-e50a-4317-9d8ecbc2aa7d.jpeg)

### youtube plugin導入

<b>参考サイト</b>
https://gato.intaa.net/archives/12421
https://forum.volumio.org/youtube-for-volumio-t6608-320.html#p73133
https://forum.volumio.org/youtube-for-volumio-t6608-230.html#p70392
https://forum.volumio.org/youtube-for-volumio-t6608-230.html#p70395

#### youtube plugin(v1.01)の導入(導入失敗)
導入失敗したが、一応失敗までの流れを残しておく

+ pluginのインストール

[参考サイト](https://gato.intaa.net/archives/12421)を見つつ、pluginインストール
ここはそれほど難しくないので、詳細は割愛
以下、インストール後の画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/3074839e-9d2d-9ee3-9bae-7f38fdf7b129.png)

+ pluginの設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/c6cc6421-aa6d-0f51-e750-6317cdee5d17.png)

`設定`からpluginの設定を行う
と言っても、個人のGoogle Accountにログインするのみ、以下ログイン済みの画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/bf1b0cff-7aad-14f1-65c2-7a4454a30e29.png)

+ pluginの動作確認

`Youtube`の項目を選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/b96ff574-9259-3c2e-38e4-452cd45a1d88.png)

が、以下のようにエラーが出てしまい全く動かない
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/4cc65907-3224-a5ab-389d-b02e3de7a56a.png)

#### youtube plugin(v0.10)の導入(導入成功)
正式版のpluginではないが、色々調べていたら導入できたので、その流れを記載

[Volumioのフォーラム](https://forum.volumio.org/youtube-for-volumio-t6608-320.html#p73133) を見ると同じ問題に引っかかっている人がおり、その中で動作するパッケージの導入方法が書いている人がいたため、その方法で導入を行った

+ pluginのインストール

<b>youtube plugin(v1.01)を導入している場合は、先にアンインストールしておく</b>

以下URLからplugin(`youtube-20191224.zip`)をダウンロード
https://forum.volumio.org/youtube-for-volumio-t6608-230.html#p70392

pluginをscp(TeraTermを利用)など何でもよいのでVolumio側へ送り、インストール→再起動

```
$ unzip youtube-20191224.zip
$ volumio plugin install

This command will install the plugin on your device

Compressing the plugin
Plugin succesfully compressed
/bin/mv: target ‘/tmp/plugins/youtube.zip’ is not a directory
child_process.js:644
    throw err;
    ^

Error: Command failed: /bin/mv *.zip /tmp/plugins/youtube.zip
/bin/mv: target ‘/tmp/plugins/youtube.zip’ is not a directory

    at checkExecSyncError (child_process.js:601:13)
    at execSync (child_process.js:641:13)
    at install (/volumio/pluginhelper.js:688:9)
    at Object.<anonymous> (/volumio/pluginhelper.js:749:9)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)
    at Function.Module.runMain (module.js:693:10)

# Volumio再起動
$ volumio vrestart
```

うまくいっているように見えなくもないがエラーが出ている
実際pluginは表示されず
エラーを見ると、plugin格納に必要なフォルダがないのが原因に見えるため、以下手順でインストールを試みる

```
# 格納に必要なフォルダ作成
$ mkdir -p /data/plugins/music_service/youtube

# installだとうまくいかなかったのでやり方変更
$ volumio plugin refresh

This command will copy all your plugin's file in the correspondent folder in data

Updating the plugin in Data
Plugin succesfully refreshed

# Volumio再起動
volumio vrestart
```

ここまでやってようやくインストール成功
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/001a2859-7042-386e-e8d8-b421b73ecd35.png)

+ pluginの設定

pluginをインストールしただけだと動かない
Googleの開発者用APIを使用したpluginになっており、使うためにはIDなどの取得が必要な模様[^2]
[^2]: https://forum.volumio.org/youtube-for-volumio-t6608-320.html#p72942 に書かれているKey(`GGZ-YVQ-GTDF`)を使えばこんな面倒なことしなくてもいいかもしれない・・。気づいたのは全て手順が終わった後なので試してはいないが。

[参考サイト](https://forum.volumio.org/youtube-for-volumio-t6608-230.html#p70395)を参照してその設定を行う

[Google Developer Console](https://console.developers.google.com/)から`ライブラリ`を選択
`YouTube Data API v3`を検索して、APIを有効にする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/6d06981f-219f-a6ab-adb9-623d2c7ccafd.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/131f3334-09b6-e4fe-98a0-d06668644e6b.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/a48c5762-856b-914e-16ec-90b77f338d52.png)

有効にして最初の画面に戻り、`認証情報`から`認証情報を作成`→`APIキー`を選択
特に問題なく、APIキーが作成されるはず(作成画面、スクリーンショットし忘れ)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/e2fbdce0-f718-7f80-3806-08753033c0c9.png)

次は`認証情報`から`認証情報を作成`→`OAuthクライアントID`を選択
遷移した先で`同意画面を設定`を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/ad6a8c06-d4b5-9262-0c33-78da3747cc9b.png)

`User Type`は`外部`を選択(たしか`内部`は選択できなかった)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/f70eb068-8bd6-a1c4-e05a-4b4daacbfe10.png)

`OAuth同意画面`が出てくるので、`アプリケーション名`の設定と`スコープの追加`を行う
`スコープの追加`は`YouTube Data API v3 ../auth/youtube.readonly`を選択して追加
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/8e775cd4-cf96-7309-b919-cadc7544b3bf.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/399a27f4-64b8-f4cc-e5c0-9e0b1d5b200e.png)

そうすると以下のような画面になり、`OAuthクライアントID`の作成が完了する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/744a18c7-df20-4184-0a63-07afcdefa4db.png)

あとは各設定画面から必要な情報`API Key`、`クライアントID`、`クライアントシークレット`をメモっておいて、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/849b93a9-fbd1-e65e-687a-0a8e41e42f90.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/c133e89a-1962-c197-05e5-2b460b796ecd.png)

pluginの設定画面にコピペ→Save
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/dc707aed-c5cd-f0c4-eda8-0b449bc86ff9.png)

+ pluginの動作確認

ここまでやるとようやく`Youtube`の項目から再生可能になる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/248487/4d707986-a561-82c1-55b7-60166900d1d0.png)


## まとめ
目的達成！
>Volumioを導入したRaspberry Raspberry Pi 3にyoutube pluginを導入

ただ、導入したpluginはおそらく導入失敗したものに比べて、機能が少なめだと思われる
自分のyoutubeプレイリストなどを再生できるといいが・・(贅沢かもしれないが・・)