自分が管理しているYouTubeの再生リストを操作したいなと思ってAPI調べつつの詰まったところです。
何回かやってるけどいつも忘れている
YouTube DATA APIのクイックスタート
こちらをやっていきます。
準備など
- OAuthクライアントIDを作成して認証情報のJSONをDL
client_secret.json
- サンプルコードを作成して実行
スコープ
サンプルコードでトークン作成するときにスコープの指定がありますが、何をしたいかによってSCOPESの値を変えると良さそうです。
- 読み込みのみ
const SCOPES = ['https://www.googleapis.com/auth/youtube.readonly'];
- 管理全般
const SCOPES = [
`https://www.googleapis.com/auth/youtube`,
`https://www.googleapis.com/auth/youtube.upload`
]
ドキュメントを参照すると以下のように書いています。
https://developers.google.com/youtube/v3/guides/auth/installed-apps?hl=ja#handlingresponse
サンプルコードの実行(認証)
以下のようにURLが発行されるので、アクセスします。
進むとGoogleアカウント選択 -> YouTubeアカウント選択 -> 許可を求められます。
許可をするとこのサイトにアクセスできませんlocalhost で接続が拒否されました。
と表示される
されるんですけど、URLをよくみるとlocalhost/?code=コード&scope=~~~といったURLになっています。
http://localhost/?code=<この部分>&scope=https://www.googleapis.com/auth/youtube%20https://www.googleapis.com/auth/youtube.upload
このcode部分をコピーして、ターミナルの入力を求められている箇所に貼り付けて進めばOKです。
おそらくデフォルトのままだとホーム/.credentials/
の中にyoutube-nodejs-quickstart.json
というファイルで認証情報が入ったjsonファイルが保存されます。
これをtoken.jsonなどに名前を変えて他の場所でも利用できます。
参考
こちらの記事が参考になりました。