YouTube Data API (v3) รองรับข้อความ Push ผ่าน PubSubHubbub ซึ่งเป็นโปรโตคอลการเผยแพร่/การติดตามแบบเซิร์ฟเวอร์ต่อเซิร์ฟเวอร์สำหรับทรัพยากรที่เข้าถึงได้บนเว็บ ระบบจะส่งการแจ้งเตือนไปยังผู้ติดตามผ่านเว็บฮุก HTTP ซึ่งมีประสิทธิภาพมากกว่าโซลูชันที่อิงตามการสำรวจ PubSubHubbub ช่วยให้เซิร์ฟเวอร์ของคุณทราบเกี่ยวกับเหตุการณ์ต่างๆ แบบเรียลไทม์โดยไม่ต้องกำหนดช่วงการสำรวจที่เหมาะสมหรือดึงข้อมูลที่ไม่มีการเปลี่ยนแปลงซ้ำๆ
เซิร์ฟเวอร์การเรียกกลับของ PubSubHubbub จะได้รับการแจ้งเตือนฟีด Atom เมื่อช่องทำกิจกรรมต่อไปนี้
- อัปโหลดวิดีโอ
- อัปเดตชื่อวิดีโอ
- อัปเดตคำอธิบายของวิดีโอ
ขั้นตอนต่อไปนี้จะอธิบายวิธีสมัครรับการแจ้งเตือน
-
ตั้งค่าเซิร์ฟเวอร์การเรียกกลับที่จัดการการแจ้งเตือนฟีด Atom ที่เข้ามาได้
-
ใช้ฮับ Google เพื่อติดตามรับข้อความ Push โดยทำดังนี้
-
ตั้งค่า mode เป็น
subscribe(หรือตั้งค่าโหมดเป็นunsubscribeเพื่อยกเลิกการสมัครใช้บริการ) -
ตั้งค่า URL เรียกกลับเป็น URL ที่คุณตั้งค่าไว้ในขั้นตอนที่ 1
-
ตั้งค่า URL ของหัวข้อเป็น
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_IDโดยที่CHANNEL_IDคือรหัสช่อง YouTube ที่คุณต้องการดึงการแจ้งเตือนแบบพุช
-
-
ประมวลผลการแจ้งเตือนที่ส่งไปยังเซิร์ฟเวอร์เรียกกลับ รูปแบบการแจ้งเตือนแสดงอยู่ด้านล่าง โปรดทราบว่าคุณสามารถใช้ค่าขององค์ประกอบ
<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>