YouTube Data API(v3)は、ウェブアクセス可能なリソース用のサーバー間パブリッシュ/サブスクライブ プロトコルである PubSubHubbub を介したプッシュ通知をサポートしています。通知は HTTP Webhook 経由でサブスクライバーにプッシュされます。これは、ポーリング ベースのソリューションよりもはるかに効率的です。PubSubHubbub を使用すると、最適なポーリング間隔を決定したり、変更されていないデータを繰り返し取得したりすることなく、サーバーでイベントをほぼリアルタイムで検出できます。
チャンネルで次のいずれかのアクティビティが行われると、PubSubHubbub コールバック サーバーが Atom フィード通知を受信します。
- 動画をアップロードする
- 動画のタイトルを更新します
- 動画の説明を更新します
次の手順では、通知を登録する方法について説明します。
-
受信した Atom フィード通知を処理できるコールバック サーバーを設定します。
-
Google ハブを使用して、プッシュ通知を受け取るように登録します。
-
モードを
subscribeに設定します。(または、モードをunsubscribeに設定して定期購入を解約します)。 -
コールバック URL を、ステップ 1 で設定した URL に設定します。
-
トピック URL を
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_IDに設定します。ここで、CHANNEL_IDはプッシュ通知を取得する YouTube チャンネル ID です。
-
-
コールバック サーバーに送信された通知を処理します。通知の形式を以下に示します。
<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>