Berlangganan Notifikasi Push

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 HTTP, yang jauh lebih efisien daripada solusi berbasis polling. Dengan PubSubHubbub, server Anda mencari tahu tentang peristiwa hampir secara real-time, tanpa harus menentukan interval polling yang optimal atau mengambil data yang tidak berubah berulang kali.

Server callback PubSubHubbub Anda menerima notifikasi feed Atom saat saluran melakukan salah satu aktivitas berikut:

  • mengupload video
  • memperbarui judul video
  • memperbarui deskripsi video

Langkah-langkah berikut menjelaskan cara berlangganan notifikasi:

  1. Siapkan server callback yang dapat menangani notifikasi feed Atom yang masuk.

  2. Gunakan hub Google untuk berlangganan guna menerima notifikasi push:

    • Setel mode ke subscribe. (Atau setel mode ke unsubscribe untuk membatalkan langganan.)

    • Tetapkan URL callback ke URL yang Anda siapkan di langkah 1.

    • Setel URL topik ke https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID, dengan CHANNEL_ID sebagai ID channel YouTube yang notifikasi push-nya ingin Anda dapatkan.

  3. Proses notifikasi yang dikirimkan ke server callback Anda. Format notifikasi ditampilkan di bawah ini. 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/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>