Airbyte OSSでYouTube Analyticsのデータを取得する方法
はじめに
Airbyte OSSを使ってYouTube Analyticsのデータを取得しようとしたら、いくつかの注意点がありました。ここに手順をまとめておきます。
連携手順
1. Google OAuth 2.0でRefreshTokenを取得する
対象のYouTubeチャンネルと連携しているGoogleアカウントを使って、OAuth 2.0認証を行います。
-
Google Cloud Consoleで新しいプロジェクトを作成
-
YouTube Reporting APIを有効化
-
OAuth 2.0クライアントIDを作成
-
認証情報を使ってRefreshTokenを取得
a. 以下のURLにアクセスし、YouTubeチャンネルと連携しているGoogleアカウントを選択するhttps://accounts.google.com/o/oauth2/v2/auth?scope=https://www.googleapis.com/auth/yt-analytics.readonly&response_type=code&redirect_uri=[リダイレクトuri]&client_id=[クライアントID]&access_type=offline
b. アカウント選択後に遷移した画面のURLのcode=xxxxxxxxx部分(認証コード)を取得する
c. 認証コードを使って、RefreshTokenを取得するcurl -XPOST https://www.googleapis.com/oauth2/v4/token --data "code=[認証コード]&redirect_uri=[リダイレクトURL]&client_id=[クライアントID]&client_secret=[クライアントシークレット]&scope=&grant_type=authorization_code"
参考記事:
2. AirbyteでYouTube Analytics Sourceを設定する
Airbyteで新しいSourceとしてYouTube Analyticsを選択し、取得した認証情報を入力します。
テストが成功すれば設定完了です。ただし、こんなエラーが出るかもしれません:
The YouTube account is not valid. Please make sure you're trying to use the active YouTube Account connected to your Google Account
対象のYouTubeチャンネルと連携しているGoogleアカウントを使ってるはずなのにこのエラーが出た場合、次のステップに進んでください。
3. YouTube Reporting APIのjobs.createを呼び出す
今までYouTube Reporting APIを使ったことがない場合、テスト時にデータが取得できずエラーになってしまうそうです。
そのため、YouTube Reporting APIのレポートジョブを実行する必要があります。
-
YouTubeチャンネルと連携しているGoogleアカウントでGoogle API Explorerにアクセス
-
以下のようなパラメータでjobs.createメソッドを実行
{ "reportTypeId": "channel_annotations_a1", "name": "AirbyteYouTubeAnalyticsJob" }
-
実行後、Airbyteで再度YouTube Analytics Sourceのテストを実行し、通れば成功です。
参考記事:
4. AirbyteでConnectionを作成し実行
- 成功したYouTube Analytics Sourceを選択してConnectionを作成
- ConnectionのSyncを実行
- 初回実行時にはデータが取得できない場合があります。Improve error messages for YouTube Analytics source #26800の中で、レポートが生成されるまで24時間待つ必要があるかもしれないと書いてあるので、その仕様の可能性があります。
- 約24時間後に再度Connectionを実行し、データが正常に取得できていれば成功です。
まとめ
本記事がAirbyte OSSを使用してYouTube Analyticsのデータを取得する際の参考になれば幸いです。
株式会社ウェイブのエンジニアによるテックブログです。 弊社では、電子コミック、アニメ配信などのエンタメコンテンツを自社開発で運営しております! ve.jp/service/
Discussion