【徹底解説】YouTubeで使えるAPIまとめ【動画検索から分析まで可能】

youtubeAPIまとめ プログラミング




YouTubeのAPIについて

今回は、YouTubeが公開しているAPIについてまとめます。

早速ですが、YouTubeで使えるAPIは4種類あります。

  • YouTube Data API
  • YouTube Analytics API
  • YouTube Reporting API
  • YouTube IFrame Player API

今回は、この4つのAPIでどんなことができるのか、どうやって使うのか解説します。

YouTube Data API

できること

YouTubeの動画を検索したり、アップロードしたり、削除したり、コメントしたりできます。
ざっくりというとユーザがYouTubeで操作できることは大体できます。

基本的な操作はYouTube Data APIだけで可能です。

参考:YouTube Data API の概要

使い方

APIを使うためには、APIキーを取得する必要があります。

取得手順は公式が動画を出しているので、一応貼っておきますが、だいぶ古そうなので、下に最新の手順を書いておきます。

取得するには、まずGoogleにログインしてCloud Consoleにアクセスします。

プロジェクトを作成する必要があるので、適当に名前を入れて作成します。

google console プロジェクト作成画面

次に、APIとサービスのタブからライブラリを検索できるので、YouTubeと入力すると使えるライブラリが表示されます。

そこで YouTube Data APIを有効にすればOKです。

youtube data apiのライブラリを有効にする

次に、認証情報の作成を行い、APIキーを作成します。

google consoleでapiキーを作成する

作成を押すと、こんな感じでキーが発行されます。
これがAPIのリクエストに必要になります。

google consoleで作成したapiキー

実際にAPIを叩いてみます。
下の”ここに取得したAPIキー”の部分にAPIキーを入れてリクエストしてみてください。

https://www.googleapis.com/youtube/v3/search?part=snippet&q=minecraft&key=ここに取得したAPIキー

何やらjsonが返ってきたかと思います。(以下一部抜粋)

{
  "kind": "youtube#searchResult",
  "etag": "Vr0OT5vNpeLt4gFGUHjvR742iCY",
  "id": {
    "kind": "youtube#video",
    "videoId": "wQQ-uVxZMQ8"
  },
  "snippet": {
  "publishedAt": "2021-04-28T01:00:08Z",
  "channelId": "UCETZ7OiW7-wqwb-6hsz3C4w",
  "title": "Minecraft, But The Ores Are Structures...",
  "description": "Minecraft, But The Ores Are Structures... MY NEW MERCH! - https://bionicware.net WATCH ME LIVE! - https://www.twitch.tv/bionicsan FOLLOW ME PLS ...",
  "thumbnails": {
    "default": {
      "url": "https://i.ytimg.com/vi/wQQ-uVxZMQ8/default.jpg",
      "width": 120,
      "height": 90
    },
    "medium": {
      "url": "https://i.ytimg.com/vi/wQQ-uVxZMQ8/mqdefault.jpg",
      "width": 320,
      "height": 180
    },
    "high": {
      "url": "https://i.ytimg.com/vi/wQQ-uVxZMQ8/hqdefault.jpg",
      "width": 480,
      "height": 360
    }
  },
  "channelTitle": "Bionic",
  "liveBroadcastContent": "none",
  "publishTime": "2021-04-28T01:00:08Z"
  }
}

qパラメータで検索キーワードを指定したので、minecraftと検索した結果が返ってきています。

レスポンスの中にあるvideoIdを適当にコピーして、アクセスしてみるとちゃんとminecraftの動画だということが分かります。

https://www.youtube.com/watch?v=wQQ-uVxZMQ8

基本的な使い方はこれだけです。
APIキーを取得して、APIを叩く。

他にどんなパラメータがあってどんなことができるのかはAPI Referenceを見るのがいいです。

ちなみに、動画のアップロードやコメントは、別途ログイン認証が必要になるのでこれだけではできません。(ログインが必要な操作はAPIでもログインが必要)

API Referenceを読む際の注意点ですが、英語で読んだ方がいいです。

右上で言語を日本語にすることもできますが、日本語だと記載されていないパラメータがあったりします。

言語によって記述内容が違うのは罠でしかないですが、英語で読むのが無難です。
(まぁ日本語にしてもほとんど英語ですが。)

YouTube Analytics API

できること

YouTube Studioで閲覧できるデータを取得できます。

動画を投稿したことない人は、YouTube Studioが何なのか分からないと思いますが、動画投稿者が自分の動画やチャンネルの分析を行えるツールのことです。

つまり、分析するためのAPIです。

こんな感じのツールです。
(どこまで見せていいのか分からないのでとりあえずモザイクかけておきます。)

youtube studio画面

使い方

YouTube Analuytics APIは、自分の動画やチャンネルを分析するためのAPIなので、必ずログイン認証が必要になります。

YouTube Data APIで取得したAPIキーだけではAPIを叩けません。

ログイン認証と書きましたが、OAuth 2.0認証というのを使います。
参考:Obtain authorization credentials

まずは、Data APIと同様にAnalytics APIも有効にします。

youtube analytics apiを有効にする

次に、APIキーを取得したところの下にあるOAuthクライアントIDを押します。

OAuthクライアントID作成

初めてOAuthクライアントIDを作成すると、OAuth同意画面を作成するように言われるので、作成します。

同意画面がどんな画面なのかは後ほど出てくるので、後述します。
(とりあえず作成してください。)

認証画面作成

動作確認するだけなので、一旦アプリ名とメールアドレスだけで大丈夫です。

同意画面作成

テストユーザの追加は、自分のメールアドレスで大丈夫です。

同意画面ユーザ追加

そして、同意画面作成が完了したら、もう一度OAuthクライアントIDの作成を押します。

OAuthクライアントID作成

今度は同意画面作成ではなく、クライアントID作成に進みます。

OAuthクライアントID作成画面

適当に名前を入れて作成

クライアントIDとクライアントシークレットが作成されます。
これをOAuth認証に使います。

OAuthクライアントID作成完了画面

これで認証の準備は完了です。

ちょっと長いですが、下のURLをコピーして一番後ろのクライアントID部分に上記で作成したクライアントIDを貼り付けてアクセスしてください。

https://accounts.google.com/o/oauth2/v2/auth/oauthchooseaccount?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyt-analytics.readonly&include_granted_scopes=true&state=state_parameter_passthrough_value&redirect_uri=http%3A%2F%2Flocalhost%2Foauth2callback&response_type=token&client_id=ここにクライアントID

googleにログインを求められるので、テストユーザに登録したアカウントでログインすると、先ほと同意画面で作成したアプリがアクセスしようとしてくるので許可します。

これがOAuth同意画面です。
サービスとして公開する場合は、他ユーザにアカウント連携の同意画面としてこれが出ます。

これに同意することでそのユーザのYouTube Studioのデータが取得できるようになります。

OAuth認証画面

これでOAuth認証は完了なので、あとは、YouTube Analytics APIを使ってデータを取得できます。

これもどんなパラメータがあってどんなデータが取得できるのかは、API Referenceを見てもらうのが早いと思います。

ちなみに、APIを叩けるAPI Clientはいろんな言語で用意してくれてあるので、これらの言語で実装するのが楽でいいと思います。

Go, Java, JavaScript, .NET, PHP, Python, Rubyあたりが使えます。

YouTube Reporting API

できること

YouTube Analytics APIで取得したデータをCSVで取得できます。(以上)

取得できるデータはAnalytics APIと同じはずです。(違うものもあるかも?)

取得できる形式がCSVというだけです。

使い方

これもOAuth認証が必要なので、認証画面を作成して、認証して使います。

Analytics APIと同じです。(丸投げ)

YouTube IFrame Player API

できること

YouTube IFrame Player APIだけ今までの3つとはちょっと毛色が違います。

HTMLにYouTubeの動画を埋め込んだときに、埋め込んだ動画を操作するためのAPIです。

例えばブログに動画を埋め込んで、特定のシーンだけ見せたり、全画面表示をできなくしたり、音量を調整したり、指定した再生リストを再生したりと埋め込んだ動画に対して色々操作ができるようになります。

これは、APIキーもOAuth認証も必要ないので、google consoleに登録しなくても利用できます。
参考:IFrame Player API Reference

よく使う使い方が2通りあるので2つ紹介します。

  • URLのリクエストパラメータで動画を操作
  • JavaScriptで動画を操作

使い方1 (URLのリクエストパラメータで操作)

YouTubeで動画の共有をするときに、開始位置を指定すると、動画のURLにt={指定した時間} として付きますよね。これのことです。

YouTube動画共有ボタン

YouTube動画共有のパラメータ

他にも色々なパラメータがあります。

  • autoplay=1 で自動再生
  • controls=0 でプレーヤーのコントロールを非表示
  • fs=0 で全画面ボタン非表示
  • loop=1 でループ再生

などなど。
この辺りもAPI Referenceに全部載っているので、必要に応じて確認してみてください。

上に書いたパラメータを全部つけたのがこれですが、iframe APIという名前の通りhtmlのiframeで読み込ませてあげます。

https://www.youtube.com/embed/BrQgK3mcrIg?t=37&autoplay=1&control=0&fs=0&loop=1
<iframe src="https://www.youtube.com/embed/BrQgK3mcrIg?t=37&autoplay=1&control=0&fs=0&loop=1">

こんな感じでお手軽にブログなんかに動画をいい感じにして貼り付けることができます。

使い方2 (JavaScriptで動画を操作)

次に、iFrame APIをJavaScriptで操作する方法をまとめておきます。

htmlに埋め込むならJavaScriptで操作できるようにした方が、できることの幅が広がります。
任意のタイミングで動画を再生したり停止したりできます。

これもReferenceがあるので、こちらを参考にしてください。
以下は、Referenceに載っているサンプルコードを取ってきたものになります。

<!DOCTYPE html>
<html>
  <body>
    <div id="player"></div>
    <script>
      // IFrame APIを使うための準備
      var tag = document.createElement('script');
      tag.src = "https://www.youtube.com/iframe_api";
      var firstScriptTag = document.getElementsByTagName('script')[0];
      firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);

      // Player読み込み
      var player;
      function onYouTubeIframeAPIReady() {
        player = new YT.Player('player', {
          height: '360',
          width: '640',
          videoId: 'BrQgK3mcrIg',
          events: {
            'onReady': onPlayerReady,
            'onStateChange': onPlayerStateChange
          }
        });
      }

      // 動画再生準備ができたら呼ばれる関数
      function onPlayerReady(event) {
        event.target.playVideo();
      }

      // 動画の状態が変化したら呼ばれる関数 (停止->再生、再生->停止)
      var done = false;
      function onPlayerStateChange(event) {
        if (event.data == YT.PlayerState.PLAYING && !done) {
          setTimeout(stopVideo, 6000);
          done = true;
        }
      }

      // 動画を停止する関数
      function stopVideo() {
        player.stopVideo();
      }
    </script>
  </body>
</html>

APIを読み込んで、動画を読み込んで、再生、6秒後に停止しているコードになります。

これを使ってもうちょっと複雑なことをやれば色々できます。

まとめ

今回は、YouTubeで使える4つのAPIについて紹介しました。

それぞれざっくりとしか説明していませんが、結構いろんなことができますので、是非使ってみてください。

ちょうど先日作った地図から動画を検索するサービスはYouTube Data APIとYouTube IFrame Player APIを使って作っています。

見てもらえれば、こんなこともできるんだな〜というイメージは湧くと思います。

プログラミングを効率的に学ぶには、Udemyがオススメです。
Udemyは、世界最大の教育プラットフォームで、動画でスキルを学ぶことができます。

【セール95%OFF】オンライン学習ならUdemyがオススメ【プログラミング・ビジネススキル】
オンライン学習ならUdemyが一番オススメです。その理由を徹底解説します。プログラミングやビジネススキル、YouTube、ブログなど副業で稼ぎたい人もUdemyならオンラインで挫折せずスキルを身に付けられます。

Webサービス・スマホアプリ・ゲーム開発に役立つプログラミングスキルはもちろん、ブログやYouTubeで稼ぐために必要な集客・ブランディングなどを学ぶことができます。

セール期間中は、95%OFFになったり、30日間の全額返金保証もついているので、お得に安心して利用できます。





コメント

タイトルとURLをコピーしました