YouTube Data API (v3) mendukung notifikasi push melalui PubSubHubbub, protokol publikasi/langganan server-ke-server untuk resource yang dapat diakses Web. Notifikasi dikirim ke pelanggan melalui webhook web HTTP, yang jauh lebih efisien daripada solusi berbasis polling. Dengan PubSubHubbub, server Anda mengetahui peristiwa hampir secara real-time, tanpa harus menentukan interval polling yang optimal atau berulang kali mengambil data yang tidak berubah.
Server callback PubSubHubbub Anda menerima notifikasi feed Atom saat channel melakukan salah satu aktivitas berikut:
- mengupload video
- memperbarui judul video
- memperbarui deskripsi video
Langkah-langkah berikut menjelaskan cara berlangganan notifikasi:
-
Siapkan server callback yang dapat menangani notifikasi feed Atom yang masuk.
-
Gunakan hub Google untuk berlangganan menerima notifikasi push:
-
Setel mode ke
subscribe. (Atau tetapkan mode keunsubscribeuntuk membatalkan langganan.) -
Tetapkan URL callback ke URL yang Anda siapkan pada langkah 1.
-
Tetapkan topic URL ke
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID, denganCHANNEL_IDadalah ID channel YouTube yang ingin Anda ambil notifikasi push-nya.
-
-
Memproses notifikasi yang dikirim ke server callback Anda. Format notifikasi ditampilkan di bawah. Perhatikan bahwa Anda dapat menggunakan nilai elemen
<yt:videoId>untuk mengidentifikasi video yang baru ditambahkan atau diperbarui. Anda juga dapat menggunakan nilai elemen<yt:channelId>untuk mengidentifikasi channel yang memiliki video tersebut.<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>