YouTube Data API (v3) obsługuje powiadomienia push przez PubSubHubbub, protokół publikowania/subskrypcji między serwerami przeznaczony do zasobów dostępnych w internecie. Powiadomienia są przekazywane subskrybentom za pomocą webhooków HTTP, co jest znacznie wydajniejsze niż rozwiązania oparte na odpytaniach. Dzięki PubSubHubbub Twój serwer wykrywa zdarzenia w czasie zbliżonym do rzeczywistego, bez konieczności określania optymalnego interwału odpytywania i wielokrotnego pobierania danych, które się nie zmieniły.
Serwer wywołania zwrotnego PubSubHubbub otrzymuje powiadomienia z kanału Atom, gdy kanał wykona dowolną z tych czynności:
- przesyła film
- aktualizuje tytuł filmu
- aktualizuje opis filmu,
Z tych instrukcji dowiesz się, jak zasubskrybować powiadomienia:
-
Skonfiguruj serwer wywołań zwrotnych, który będzie obsługiwać przychodzące powiadomienia z kanału Atom.
-
Skorzystaj z centrum Google, aby zasubskrybować powiadomienia push:
-
Ustaw tryb na
subscribe
. (Lub ustaw tryb naunsubscribe
, aby anulować subskrypcję). -
W polu URL wywołania zwrotnego ustaw adres URL skonfigurowany w kroku 1.
-
Ustaw URL tematu na
https://www.youtube.com/feeds/videos.xml?channel_id=CHANNEL_ID
, gdzieCHANNEL_ID
to identyfikator kanału w YouTube, z którego chcesz otrzymywać powiadomienia push.
-
-
Przetwarzaj powiadomienia wysyłane na serwer wywołań zwrotnych. Format powiadomień pokazany jest poniżej. Pamiętaj, że wartość elementu
<yt:videoId>
pozwala zidentyfikować nowo dodany lub zaktualizowany film. Możesz też wykorzystać wartość elementu<yt:channelId>
, aby zidentyfikować kanał, do którego należy film.<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>