YouTube Data API

YouTube Data API

概要

YouTube Data API は、Google が提供する YouTube のデータを利用するための API (Webサービス) である。

検索だけでなく、アップロード、メタデータの更新、コメントの取得や投稿などができる。

なお、ユーザ/チャンネルごとの新着動画、再生リストの動画を得ることは feed を使ってもできるので、 それらの情報しか必要ない場合には API を使わなくてもよい。

開発者登録とキーの取得

API を利用するには、自分の Google アカウントで開発者(developer)登録をし、developer key を取得する必要がある。

ライブラリ本体

Google は YouTube に限らず自社のさまざまな API を利用するためのライブラリ群を公開しており、 そのライブラリ群のページに YouTube Data API (v3) へのリンクがある。

導入方法は後述する。

ライブラリの説明

YouTube Data API 向けのライブラリは YouTube の開発者向けページにドキュメントがあり、一部のみ日本語になっている。

ライブラリの導入

GitHub にあるサンプルプログラム(Search.java など)を動かすには、ライブラリの version に注意する必要がある。

Maven の利用

pom.xml に以下のように記述する。

    <dependency>
      <groupId>com.google.apis</groupId>
      <artifactId>google-api-services-youtube</artifactId>
      <version>v3-rev222-1.25.0</version>
    </dependency>
    <dependency>
      <groupId>com.google.http-client</groupId>
      <artifactId>google-http-client</artifactId>
      <version>1.40.1</version>
    </dependency>
    <dependency>
      <groupId>com.google.http-client</groupId>
      <artifactId>google-http-client-jackson2</artifactId>
      <version>1.37.0</version>
    </dependency>
    <dependency>
      <groupId>com.google.oauth-client</groupId>
      <artifactId>google-oauth-client</artifactId>
      <version>1.32.1</version>
    </dependency>
    <dependency>
      <groupId>com.google.oauth-client</groupId>
      <artifactId>google-oauth-client-java6</artifactId>
      <version>1.32.1</version>
    </dependency>
    <dependency>
      <groupId>com.google.oauth-client</groupId>
      <artifactId>google-oauth-client-jetty</artifactId>
      <version>1.32.1</version>
    </dependency>

google-api-services-youtube は v3-rev20200518-1.30.9 から com.google.api.services.youtube.YouTube.Search.List.setType の引数の型が String から List<String> に変わっている。 ここでは Maven にある中で最新の v3-rev222-1.25.0 にしている。

サンプルコードの実行

GitHub から、認証用の Auth.java と、目的別のサンプルプログラム (検索であれば Search.java, コメントの読み書きであれば CommentHandling.java )を入手する。 なお、Search.java や CommentHandling.java は Auth クラスを import している。

import com.google.api.services.samples.youtube.cmdline.Auth;

Auth.java を違うパッケージに置いた場合に修正が必要となる。

youtube.properties の用意

サンプルコード Search.java は、package のルート (eclipse の 通常のプロジェクトであれば src フォルダ内、Mavenプロジェクトであれば src/main/java フォルダ内) に置かれた youtube.properties というファイルに API のキーが記述されていることを前提としている。 ファイル youtube.properties の記述形式は以下の通り。

youtube.apikey=あなたのキー

補足

ライブラリの version によっては、サンプルコード Search.java の結果を表示する部分が eclipse に怒られる。

        Thumbnail thumbnail = singleVideo.getSnippet().getThumbnails().get("default");

以下のようにキャストすると回避できる。

        Thumbnail thumbnail = (Thumbnail)singleVideo.getSnippet().getThumbnails().get("default");