6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

YouTube Data API V3で動画情報を取得する方法: プロジェクト作成からAPIキーの発行まで

Last updated at Posted at 2023-11-16

はじめに

Youtubeの動画リストサイトを構築する際に、Youtubeの動画情報を取得するYoutube Data API V3を利用しました。YouTube Data API V3は、YouTubeのデータをアプリケーションで利用するための強力なツールです。この記事では、Google Cloud Platformでのプロジェクト作成からAPIキーの発行までの手順を、初心者の方にもわかりやすく説明します。

Google Cloud Platformでのプロジェクトの作成

Google Cloud Platform(GCP)にアクセス

Google Cloud Platformにアクセスし、アカウントにログインします。

プロジェクトの作成

左上のプロジェクトボタンから「新しいプロジェクト」をクリックし、新しいプロジェクトを作成します。プロジェクト名と請求先アカウントを入力し、「作成」ボタンをクリックします。

スクリーンショット 2023-11-17 14.02.49.png

スクリーンショット 2023-11-17 14.04.21.png

スクリーンショット 2023-11-17 14.05.31.png

YouTube Data API V3の有効化

APIとサービスにアクセス

プロジェクト作成後、GCPダッシュボードで「APIとサービス」を選択します。

スクリーンショット 2023-11-16 18.36.28.png

APIとサービスのライブラリを表示

「APIとサービス」の左メニューにある「ライブラリ」を選択します。

スクリーンショット 2023-11-16 18.40.53.png

YouTube Data API V3を検索して有効化

ライブラリ画面にて「YouTube Data API V3」を検索し、それを選択して「有効にする」ボタンをクリックします。

スクリーンショット 2023-11-14 13.43.08.png

スクリーンショット 2023-11-16 18.26.01.png

APIキーの生成

認証情報を作成

「APIとサービス」のページにて「認証情報を作成」ボタンをクリックします。

スクリーンショット 2023-11-14 13.45.53.png

認証情報の種類

使用するAPIは「Youtube Data API v3」を、アクセスするデータの種類は「一般公開データ」を選択し、「次へ」をクリックします。

スクリーンショット 2023-11-14 13.45.20.png

APIキーの生成

APIキーが生成されるので、完了をクリック。

スクリーンショット 2023-11-14 13.45.44.png

認証情報の設定

APIキーの管理

生成されたAPIキーをクリックして、APIキーの設定にアクセスします。

スクリーンショット 2023-11-16 19.02.13.png

スクリーンショット 2023-11-16 19.09.14.png

アプリケーションの制限

「アプリケーションの制限」セクションで、APIキーの使用を特定のウェブサイト、IPアドレス、アプリに制限できます。今回はウェブサイトを選択します。特定のウェブサイトのみAPIを使用する場合は、ADDをクリックし、ウェブサイトのURLを追加します。

スクリーンショット 2023-11-16 19.11.54.png

APIの制限

「APIキーの制限」セクションで、キーの使用を特定のAPIに制限することができます。ここではキーを制御するを選択し、セレクトボックスからYoutube Data API v3にチェックを入れます。

スクリーンショット 2023-11-14 13.48.27.png

スクリーンショット 2023-11-14 13.48.34.png

保存

設定を行った後、「保存」をクリックします。
これらの手順を実行することで、YouTube Data API V3を使用するためのプロジェクトの設定とAPIキーの生成が完了します。APIキーを安全に保管し、不正使用を防ぐために、制限設定を適切に行うことが重要です。

データの取得

本例では、get_detailsという関数を紹介します。この関数は、YouTubeの動画URLとAPIキーをパラメータとして受け取り、YouTube APIを利用してその動画の詳細情報を取得します。

function get_details($youtube_url, $api_key)
{
    // Video IDの抽出
    parse_str(parse_url($youtube_url, PHP_URL_QUERY), $url_parameters);
    $video_id = $url_parameters['v'];

    // API endpointの構築
    $endpoint = "https://www.googleapis.com/youtube/v3/videos?part=contentDetails,statistics,snippet&id=" . $video_id . "&key=" . $api_key;

    // APIを叩く
    $response = file_get_contents($endpoint);

    // JSONをデコードして変数に格納
    $data = json_decode($response, true);
 
    return $data;
}

コードの詳細

Video IDの抽出

parse_urlとparse_strを使用して、与えられたYouTube URLから動画のIDを抽出します。

APIエンドポイントの構築

抽出した動画IDを使用して、YouTube Data API V3のエンドポイントを構築します。

APIの呼び出し

file_get_contentsを使用してAPIにリクエストを送り、レスポンスを取得します。

JSONデータの処理

取得したJSON形式のレスポンスをprint_rで出力し、json_decodeでPHPの配列に変換します。

使用方法

この関数を使用するには、適切なYouTube動画のURLと有効なAPIキーが必要です。以下のURLから動画情報を取得し、取得したデータをjson形式で出力してみます。

php
$youtube_url = "https://www.youtube.com/watch?v=GevLJmILi2Y";
$api_key = "YOUR_API_KEY";  // 実際のAPIキーに置き換えてください

$video_details = get_details($youtube_url, $api_key);
print_r(json_encode($video_details));
json
{
  "kind": "youtube#videoListResponse",
  "etag": "qTltah0hkDJxDugZeKupYxqktkU",
  "items": [
    {
      "kind": "youtube#video",
      "etag": "9tzgSJKGsoC1-4QlsZ-lfyz0Zqw",
      "id": "GevLJmILi2Y",
      "snippet": {
        "publishedAt": "2023-03-25T10:00:10Z",
        "channelId": "UCRf_7nS9lxLZFfK6kJBvK5A",
        "title": "​``【oaicite:1】``​大人が履くべきスニーカー3選。プロが徹底解説します。",
        "description": "このビデオでは、2023年版の大人向けスニーカー3選についてプロが徹底解説します。白レザースニーカーやニューバランス2002RST、トレンドの革靴ライクなスニーカーなどが紹介されています。スタイリスト大山シュンによるファッションの基本についても語られています。",
        "thumbnails": {
          "default": {
            "url": "https://i.ytimg.com/vi/GevLJmILi2Y/default.jpg",
            "width": 120,
            "height": 90
          },
          "medium": {
            "url": "https://i.ytimg.com/vi/GevLJmILi2Y/mqdefault.jpg",
            "width": 320,
            "height": 180
          },
          "high": {
            "url": "https://i.ytimg.com/vi/GevLJmILi2Y/hqdefault.jpg",
            "width": 480,
            "height": 360
          },
          "standard": {
            "url": "https://i.ytimg.com/vi/GevLJmILi2Y/sddefault.jpg",
            "width": 640,
            "height": 480
          },
          "maxres": {
            "url": "https://i.ytimg.com/vi/GevLJmILi2Y/maxresdefault.jpg",
            "width": 1280,
            "height": 720
          }
        },
        "channelTitle": "スタイリスト大山シュンのメンズ服講座",
        "tags": ["大山旬"],
        "categoryId": "24",
        "liveBroadcastContent": "none",
        "localized": {
          "title": "​``【oaicite:0】``​大人が履くべきスニーカー3選。プロが徹底解説します。",
          "description": "このビデオでは、2023年版の大人向けスニーカー3選についてプロが徹底解説します。白レザースニーカーやニューバランス2002RST、トレンドの革靴ライクなスニーカーなどが紹介されています。"
        }
      },
      "defaultAudioLanguage": "ja"
    },
    "contentDetails": {
      "duration": "PT17M50S",
      "dimension": "2d",
      "definition": "hd",
      "caption": "false",
      "licensedContent": true,
      "contentRating": {},
      "projection": "rectangular"
    },
    "statistics": {
      "viewCount": "103720",
      "likeCount": "643",
      "favoriteCount": "0",
      "commentCount": "14"
    }
  }],
  "pageInfo": {
    "totalResults": 1,
    "resultsPerPage": 1
  }
}

JSONデータの概要

kind と etag

kindはデータのタイプを示し、ここではyoutube#videoListResponseが指定されています。これは動画リストの応答データであることを示します。
etagは、このレスポンスの固有の識別子です。

items

この配列は取得した動画の情報を含みます。それぞれのアイテムは個別の動画に関するデータを持っています。

snippet

このオブジェクトには、動画に関する詳細情報が含まれています。

publishedAt

動画が公開された日時。

channelId

動画をアップロードしたチャンネルのID。

title

動画のタイトル。

description

動画の説明文。

thumbnails

動画のサムネイル画像。異なるサイズが用意されています。

channelTitle

チャンネルのタイトル。

tags

動画に関連付けられたタグ。

categoryId

動画のカテゴリID。

liveBroadcastContent

生放送コンテンツかどうかを示します。

contentDetails

動画の長さ(duration)、画質(definition)、次元(dimension)、字幕の有無(caption)などの詳細情報が含まれています。

statistics

動画の視聴回数(viewCount)、いいねの数(likeCount)、お気に入り登録数(favoriteCount)、コメント数(commentCount)などの統計情報。

pageInfo

取得した結果の総数(totalResults)と、1ページあたりの結果数(resultsPerPage)を示します。

まとめ

この記事では、YouTubeの動画情報を簡単に取得する方法をご紹介しました。初めに、Google Cloud Platformで新しいプロジェクトを作り、YouTube Data API V3を使えるようにしました。それから、APIキーを作って、PHPの例を使って実際にYouTubeの動画情報を取得する方法を見てみました。

このやり方は、動画のウェブサイトやアプリを作るときにとても役立ちます。タイトルや説明、サムネイル、視聴回数、いいねの数など、色々な情報が手に入ります。これらのデータは、動画の分析やユーザーへのおすすめ、マーケティングなど、色々な場面で使えます。

YouTube Data API V3を上手に使うと、動画についてより深く知ることができ、ユーザーに新しい価値を提供する方法を見つけられます。ただし、APIキーを安全に扱い、Google Cloud Platformの設定には気を付けてください。

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?