プッシュ通知に登録する

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

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

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

通知を登録する手順は次のとおりです。

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

  2. Google ハブを使用して、プッシュ通知の受信登録を行います。

    • [mode] を 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/xml/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>