رابط برنامهنویسی کاربردی داده یوتیوب (نسخه ۳) از طریق PubSubHubbub ، یک پروتکل انتشار/اشتراک سرور به سرور برای منابع قابل دسترسی از طریق وب، از اعلانهای فوری پشتیبانی میکند. اعلانها از طریق وبهوکهای HTTP به مشترکین ارسال میشوند که بسیار کارآمدتر از راهحلهای مبتنی بر نظرسنجی است. با PubSubHubbub، سرور شما تقریباً به صورت بلادرنگ از رویدادها مطلع میشود، بدون اینکه نیاز به تعیین فاصله زمانی بهینه نظرسنجی یا واکشی مکرر دادههایی که تغییر نکردهاند، داشته باشد.
سرور فراخوانی PubSubHubbub شما زمانی که یک کانال هر یک از فعالیتهای زیر را انجام میدهد، اعلانهای فید Atom را دریافت میکند:
- یک ویدیو آپلود میکند
- عنوان یک ویدیو را بهروزرسانی میکند
- توضیحات یک ویدیو را بهروزرسانی میکند
مراحل زیر نحوه اشتراک در اعلانها را توضیح میدهد:
یک سرور فراخوانی راهاندازی کنید که بتواند اعلانهای فید Atom ورودی را مدیریت کند.
برای دریافت اعلانهای فوری، از گوگل هاب برای عضویت استفاده کنید:
حالت را روی
subscribeتنظیم کنید. (یا برایunsubscribeحالت را روی لغو اشتراک تنظیم کنید.)آدرس اینترنتی (URL) مربوط به فراخوانی مجدد را روی آدرس اینترنتی (URL) که در مرحله 1 تنظیم کردهاید، تنظیم کنید.
آدرس اینترنتی موضوع را روی
https://www.youtube.com/feeds/videos.xml?channel_id= CHANNEL_IDتنظیم کنید، که در آنCHANNEL_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>