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 に注意する必要がある。
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 を違うパッケージに置いた場合に修正が必要となる。
サンプルコード 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");