kodi YouTubeアドオンにサインインできない問題


<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/aa628f00-3ca7-ec66-32e6-30e1c842cde1.png" width=50%>


## 【前文】
昨年末 RPi4B を購入し kodi をインストール。
ところが、YouTubeアドオンにサインインができない。
対応方法が分からず放置していたけど、最近やっと解決したので備忘録として手順を残す。

## 【環境】

| Pi | OS | 母艦 | Kodi |
| ---- | ---- | ---- | ---- |
| 4B 4G | Raspbian Buster with desktop<br>September 2019 | Windows10 64bit | 18.4 |

## 【現象】
YouTubeアドオンにサインインしようとすると、2回目の認証で『このアプリでは「Googleでログイン」機能が一時的に無効』が表示され、進めない。

## 【対応方法 - 概要】
手動で APIキー等を生成し、YouTubeアドオンに設定する。

## 【対応方法 - 詳細】
### 1. Google Cloud Platform
母艦から以下にアクセス。
[Google Cloud Platform](https://console.cloud.google.com/ "ホーム – Google Cloud Platform")

国は日本、利用規約にチェックを入れ、「同意して続行」クリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/fcca724b-f6e7-669c-664c-2a167f1a15b1.png" width=50%>

「新しいプロジェクト」クリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/6e11bb3c-5c9f-347a-046c-e61a8b1b84d7.png" width=50%>

プロジェクト名はデフォルトでも可。「作成」クリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/6438d3ed-4feb-7135-fa3e-64581422b355.png" width=50%>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/bbb40989-b7b8-14d1-0d9d-2cbd27afbf0a.png" width=50%>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/6efb8e94-00e5-9ee2-87ff-296b61ea6a0e.png" width=50%>

### 2. API ライブラリ
母艦から以下にアクセス。
[API ライブラリ](https://console.developers.google.com/apis/library "API ライブラリ - Google API コンソール")

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/ae946838-3fba-3aa2-286b-bf23f973d1b8.png" width=50%>

「YouTube Data API v3」クリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/162f1cb4-21ed-2da5-47f5-cb01d1660805.png" width=50%>

「有効にする」クリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/2f16b98f-fea4-d4da-57d6-d692cc3fcd90.png" width=50%>

「認証情報を作成」クリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/494a3663-bb93-4359-5d15-3ce9a277b31a.png" width=50%>

必要な設定を選択、「必要な認証情報」クリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/00d6a690-c8ad-0e4a-abc3-34b7b27ed995.png" width=50%>

「同意画面を設定」クリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/86b7a70f-fdbb-594a-e6c2-e72990f58fb3.png" width=50%>

外部を選択し「作成」クリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/974dbc42-ce1b-3702-495f-71cfc7dce0aa.png" width=50%>

アプリケーション名はデフォルトでは空白なので適切に入力。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/b41660e9-5f67-b4c3-b31e-03b7ec8ff2fd.png" width=50%>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/dd619edf-d482-f7e1-ea03-f421863b7cd2.png" width=50%>

「認証情報を作成」 - 「APIキー」クリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/32170260-cb5f-af1b-3747-ce5d31d652f9.png" width=50%>

生成されたAPIキーをテキストエディタにコピペしておく。
※ 後からでも参照できる
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/83b8d663-3274-7b5d-8d25-a295a75a5caa.png" width=50%>

「認証情報を作成」 - 「OAuthクライアントID」クリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/d8489606-dbbd-63db-75ac-bc53055fd586.png" width=50%>

名前はデフォルトで可。「作成」クリック。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/65c98a0c-b7e8-618f-d8fe-c2697cc2898a.png" width=50%>

生成されたクライアントID、クライアントシークレットをテキストエディタにコピペしておく。
※ 後からでも参照できる
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/a90247e5-e659-24b4-881e-4a7f7be34510.png" width=50%>

### 3. Kodi YouTubeアドオン設定ファイルに反映
kodi が起動している場合は終了する。
上記手順で生成した以下の情報を、Pi側の kodi YouTubeアドオン設定ファイルに反映する。

- APIキー
- クライアントID
- クライアントシークレット

※ 設定ファイルは編集前にバックアップを残しておくこと

`/home/pi/.kodi/userdata/addon_data/plugin.video.youtube/settings.xml`
に以下追記。

```shell-session
    <setting id="youtube.api.id">クライアントID</setting>
    <setting id="youtube.api.key">APIキー</setting>
    <setting id="youtube.api.secret>クライアントシークレット</setting>
```

`/home/pi/.kodi/userdata/addon_data/plugin.video.youtube/api_keys.json`
にも反映する。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/f40acb59-312f-d840-0662-465bb1756507.png" width=50%>
※ 設定ファイルの場所は環境に依存するので自分の環境に合わせて読み替えること

kodi を起動し、YouTubeアドオンの設定画面の「API」欄を確認。
設定ファイルが正しく反映されていれば画面上でも確認できる。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/61dd6a86-368e-810d-978c-5f0370d80027.png" width=50%>
もしこの画面の項目が空白の場合は設定ファイルが間違っているのでやり直す。
最悪この画面上で入力するのも手だけど、それも辛いので、やはり設定ファイルを書き換える方が早いと思われ。
因みに、`settings.xml` `api_keys.json` 両方を編集すること。
片方だけの場合は動かない。

### 4. Kodi YouTubeアドオンサインイン
通常通り YouTubeアドオンサインイン。
設定が正しく反映されていれば、2回目の認証で「詳細」リンクが表示される。
「詳細」-> 「kodi（安全ではないページ）に移動」で認証される。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/2b314b8e-53b3-ec9c-e560-321ffe4d2ca5.png" width=50%>
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/254888/d36d85fe-dad1-5e97-90f3-ee5d29b417c8.png" width=50%>

## 【参考URL】
[YouTube Plug-in Thread](https://forum.kodi.tv/showthread.php?tid=348464&pid=2681560#pid2681560 "YouTube Plug-in Thread")
流石本家。こちらの情報をベースとした。
しかし情報が古く、現在の Googleサイトの GUI がかなり変わっていて読み替える必要があった。

[Unable to Sign In · Issue #700](https://github.com/jdf76/plugin.video.youtube/issues/700 "Unable to Sign In · Issue #700 · jdf76_plugin.video.youtube · GitHub")
やはり昨年末からサインインできないという声が挙がっていたんですねぇ。

[Raspberry pi版OSMCについて、Youtubeのアドオンにサインインする際、添付した...](https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13218412758?__ysp=a29kaQ%3D%3D "Raspberry pi版OSMCについて、Youtubeのアドオンにサインインする際、添付した... - Yahoo!知恵袋")
このページが解決の糸口となった。Yahoo!知恵袋も侮れないですなぁ。