プッシュ通知に登録する

YouTube Data API(v3)は、ウェブアクセス可能なリソース用のサーバー間パブリッシュ/サブスクライブ プロトコルである PubSubHubbub を介したプッシュ通知をサポートしています。通知は HTTP Webhook 経由でサブスクライバーにプッシュされます。これは、ポーリング ベースのソリューションよりもはるかに効率的です。PubSubHubbub を使用すると、最適なポーリング間隔を決定したり、変更されていないデータを繰り返し取得したりすることなく、サーバーでイベントをほぼリアルタイムで検出できます。

チャンネルで次のいずれかのアクティビティが行われると、PubSubHubbub コールバック サーバーが Atom フィード通知を受信します。

  • 動画をアップロードする
  • 動画のタイトルを更新します
  • 動画の説明を更新します

次の手順では、通知を登録する方法について説明します。

  1. 受信した Atom フィード通知を処理できるコールバック サーバーを設定します。

  2. Google ハブを使用して、プッシュ通知を受け取るように登録します。

    • モードsubscribe に設定します。(または、モードを unsubscribe に設定して定期購入を解約します)。

    • コールバック URL を、ステップ 1 で設定した URL に設定します。

    • トピック URLhttps://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID に設定します。ここで、CHANNEL_ID はプッシュ通知を取得する YouTube チャンネル ID です。

  3. コールバック サーバーに送信された通知を処理します。通知の形式を以下に示します。<yt:videoId> 要素の値を使用して、新しく追加または更新された動画を識別できます。<yt:channelId> 要素の値を使用して、その動画を所有するチャンネルを特定することもできます。

    <feed xmlns:yt="http://www.youtube.com/xml/schemas/2015"
             xmlns="http://www.w3.org/2005/Atom">
      <link rel="hub" href="https://pubsubhubbub.appspot.com"/>
      <link rel="self" href="https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID"/>
      <title>YouTube video feed</title>
      <updated>2015-04-01T19:05:24.552394234+00:00</updated>
      <entry>
        <id>yt:video:VIDEO_ID</id>
        <yt:videoId>VIDEO_ID</yt:videoId>
        <yt:channelId>CHANNEL_ID</yt:channelId>
        <title>Video title</title>
        <link rel="alternate" href="http://www.youtube.com/watch?v=VIDEO_ID"/>
        <author>
         <name>Channel title</name>
         <uri>http://www.youtube.com/channel/CHANNEL_ID</uri>
        </author>
        <published>2015-03-06T21:40:57+00:00</published>
        <updated>2015-03-09T19:05:24.552394234+00:00</updated>
      </entry>
    </feed>