YouTube API(YouTube Data API)を cURL で叩いて、YouTube プレイリストの一覧を取得したい。
「youtube api curl プレイリスト 取得」と Qiita 記事に絞ってググってもピンポイントでヒットしなかったので、自分の備忘録として。
TL; DR
-
【ポイント】発行した API キーには「
YouTube DATA API
」の制限をかけておくこと。
Bash+cURLによるGETリクエストのサンプル
#!/bin/bash
# API エンドポイント(リクエスト先の URL)
url_api_endpoint='https://www.googleapis.com/youtube/v3/playlistItems'
# 必須クエリ・パラメーター
key_api_youtube='<Google API Key>'
id_playlist_youtube='<ここに Youtube プレイリストの ID>';
part='snippet'
# オプションのクエリ・パラメーター(0〜50)
num_result_max=50
# クエリ作成
query="key=${key_api_youtube}&part=${part}&playlistId=${id_playlist_youtube}&maxResults=${num_result_max}"
# リクエスト作成
url_request="${url_api_endpoint}?${query}"
# リクエストの実行と取得結果表示
curl -s $url_request | jq .
TS; DR
- ポイント
- API キーの作成/発行は Google Developer Console の「認証情報」から行う
- 「ライブラリ」から YouTube Data API v3 を有効にする
- 上部の組織選択(GoogleAPIs のロゴの隣にあるドロップダウン)メニューから、プロジェクトを作成する
- 認証情報を作成(API キー)する
- 作成/発行した API キーは、編集して「YouTube DATA API」の制限をかけておきます。
制限がかかっていないと、リクエスト時に「403 Forbidden」エラーが返ってくる
- API キーの作成/発行は Google Developer Console の「認証情報」から行う
Google API のプロトコルに関する覚書
- YouTube API の全体的な仕様
- YouTube プレイリスト項目(アイテム) API の仕様
- エンドポイント
https://www.googleapis.com/youtube/v3/playlistItems
-
part
パラメーターのsnippet
とは- リクエストのレスポンスに「動画のプロパティ」(動画情報)を含める
- アクセス・トークンの指定
- クエリの
keys=
パラメーターで指定する
- クエリの
- アクセス・トークンの種類
- API キー:
- 自前で発行したアクセス・トークンのこと
- トークンは全てのユーザーで共通のものになる
- 利用する API(ここでは YouTube Data API)で API キーを制限する必要あり
-
メリット :
- 簡単
-
デメリット:
- API キー発行者のクォータ(利用制限の容量)を使う
- OAuth トークンでないと取得できないデータがある(動画の字幕など)
- OAuth 2.0 トークン:
- OAuth クライアント・キーを使って OAuth 認証で得たアクセス・トークンのこと
- トークンは個々のユーザーごとで異なる
-
メリット :
- クォータ(利用制限の容量)は各ユーザーごとのを使う
-
デメリット:
- 面倒
- OAuth 2.0 認証を実装してアクセス・トークンを取得する必要がある
- API キー: