Bash と cURL で YouTube DATA API からプレイリストを取得するサンプル


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 の「認証情報」から行います。プロジェクトを作成してから、認証情報を作成します。
    • 作成/発行した API キーには「YouTube DATA API」の制限をかけておきます。
      制限がかかっていないと、リクエスト時に「403 Forbidden」エラーが返ってきます

Google API のプロトコル

  • YouTube API の全体的な仕様

  • エンドポイント

    • https://www.googleapis.com/youtube/v3/playlistItems
  • part パラメーターの snippet とは

    • リクエストのレスポンスに「動画のプロパティ」(動画情報)を含める。
  • アクセス・トークンの指定

    • クエリの keys= パラメーターで指定する。
  • アクセス・トークンの種類

    • API キー:
      • 自前で発行したアクセス・トークンのこと。
      • トークンは全てのユーザーで共通のものになる。
      • 利用する API(ここでは YouTube Data API)で API キーを制限する必要あり
      • メリット :簡単
      • デメリット:API キー発行者のクォータ(利用制限の容量)を使う。
    • OAuth 2.0 トークン:
      • OAuth クライアント・キーを使って OAuth 認証で得たアクセス・トークンのこと。
      • トークンは個々のユーザーごとで異なる。
      • メリット :クォータ(利用制限の容量)は各ユーザーごとのを使う。
      • デメリット:OAuth 2.0 認証を実装してアクセス・トークンを取得する必要がある。
  • YouTube プレイリスト項目(アイテム) API の仕様