YouTube Data API (v3), web'de erişilebilen kaynaklar için sunucudan sunucuya yayınlama/abone olma protokolü olan PubSubHubbub aracılığıyla push bildirimlerini destekler. Bildirimler, HTTP webhook'ları aracılığıyla abonelere gönderilir. Bu yöntem, yoklamaya dayalı çözümlere kıyasla çok daha verimlidir. PubSubHubbub ile sunucunuz, optimum yoklama aralığını belirlemesi veya değişmeyen verileri tekrar tekrar getirmesi gerekmeden etkinlikleri neredeyse anlık olarak öğrenir.
Bir kanal aşağıdaki etkinliklerden herhangi birini yaptığında PubSubHubbub geri çağırma sunucunuz Atom feed bildirimleri alır:
- video yükleme
- Bir videonun başlığını günceller
- Videonun açıklamasını günceller.
Bildirimlere nasıl abone olacağınız aşağıdaki adımlarda açıklanmıştır:
-
Gelen Atom feed'i bildirimlerini işleyebilen bir geri arama sunucusu ayarlayın.
-
Push bildirimleri almak için Google hub'ını kullanın:
-
Modu
subscribeolarak ayarlayın. (Aboneliği iptal etmek için moduunsubscribeolarak da ayarlayabilirsiniz.) -
Geri çağırma URL'sini 1. adımda ayarladığınız URL olarak belirleyin.
-
Konu URL'sini
https://www.youtube.com/xml/feeds/videos.xml?channel_id=CHANNEL_IDolarak ayarlayın. BuradaCHANNEL_ID, anlık bildirimleri almak istediğiniz YouTube kanalının kimliğidir.
-
-
Geri arama sunucunuza gönderilen işlem bildirimlerini işleyin. Bildirim biçimi aşağıda gösterilmiştir. Yeni eklenen veya güncellenen videoyu tanımlamak için
<yt:videoId>öğesinin değerini kullanabileceğinizi unutmayın. Ayrıca, videonun sahibi olan kanalı belirlemek için<yt:channelId>öğesinin değerini de kullanabilirsiniz.<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>