🎬

Airbyte OSSでYouTube Analyticsのデータを取得する方法

2024/10/18に公開

はじめに

Airbyte OSSを使ってYouTube Analyticsのデータを取得しようとしたら、いくつかの注意点がありました。ここに手順をまとめておきます。

連携手順

1. Google OAuth 2.0でRefreshTokenを取得する

対象のYouTubeチャンネルと連携しているGoogleアカウントを使って、OAuth 2.0認証を行います。

  1. Google Cloud Consoleで新しいプロジェクトを作成

  2. YouTube Reporting APIを有効化

  3. OAuth 2.0クライアントIDを作成

  4. 認証情報を使って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のレポートジョブを実行する必要があります。

  1. YouTubeチャンネルと連携しているGoogleアカウントでGoogle API Explorerにアクセス

  2. 以下のようなパラメータでjobs.createメソッドを実行

      {
        "reportTypeId": "channel_annotations_a1",
        "name": "AirbyteYouTubeAnalyticsJob"
      }
    
  3. 実行後、Airbyteで再度YouTube Analytics Sourceのテストを実行し、通れば成功です。

参考記事:

4. AirbyteでConnectionを作成し実行

  1. 成功したYouTube Analytics Sourceを選択してConnectionを作成
  2. ConnectionのSyncを実行
    • 初回実行時にはデータが取得できない場合があります。Improve error messages for YouTube Analytics source #26800の中で、レポートが生成されるまで24時間待つ必要があるかもしれないと書いてあるので、その仕様の可能性があります。
  3. 約24時間後に再度Connectionを実行し、データが正常に取得できていれば成功です。

まとめ

本記事がAirbyte OSSを使用してYouTube Analyticsのデータを取得する際の参考になれば幸いです。

wwwave's Techblog

Discussion