পুশ বিজ্ঞপ্তিতে সাবস্ক্রাইব করা

YouTube Data API (v3) PubSubHubbub-এর মাধ্যমে পুশ বিজ্ঞপ্তি কাজ করে, এটি হল ওয়েব-অ্যাক্সেসযোগ্য রিসোর্সের জন্য সার্ভার-টু-সার্ভার প্রকাশ/সাবস্ক্রাইব প্রোটোকল। সাবস্ক্রাইবারদের HTTP ওয়েব হুক ব্যবহার করে বিজ্ঞপ্তি পাঠানো হয়, যা পোলিং-ভিত্তিক সমাধানের চেয়ে অনেক বেশি কার্যকর। PubSubHubbub-এর সাহায্যে, আপনার সার্ভার প্রায় রিয়েল-টাইমে ইভেন্ট সম্পর্কে জানতে পারে, এর জন্য অপ্টিমাল পোলিং ইন্টারভ্যাল নির্ধারণ করতে হয় না বা পরিবর্তন হয়নি এমন ডেটা বারবার ফেচ করতে হয় না।

কোনও চ্যানেল নিম্নলিখিত অ্যাক্টিভিটিগুলির মধ্যে কোনওটি করলে, আপনার PubSubHubbub কলব্যাক সার্ভার Atom ফিড বিজ্ঞপ্তি পায়:

  • ভিডিও আপলোড করে
  • ভিডিওর শীর্ষক আপডেট করে
  • ভিডিওর বিবরণ আপডেট করে

বিজ্ঞপ্তিতে কীভাবে সাবস্ক্রাইব করবেন তা নিম্নলিখিত ধাপগুলি থেকে জানতে পারবেন:

  1. ইনকামিং Atom ফিড বিজ্ঞপ্তি ম্যানেজ করতে পারে এমন একটি কলব্যাক সার্ভার সেট-আপ করুন।

  2. পুশ বিজ্ঞপ্তি পেতে সাবস্ক্রাইব করতে Google হাব ব্যবহার করুন:

    • মোড subscribe হিসেবে সেট করুন। (অথবা সাবস্ক্রিপশন বাতিল করতে মোড unsubscribe হিসেবে সেট করুন।)

    • ধাপ ১-এ আপনি যে URL সেট-আপ করেছেন, কলব্যাক URL হিসেবে সেটি সেট করুন।

    • বিষয় URL-কে https://www.youtube.com/xml/feeds/videos.xml?channel_id=CHANNEL_ID হিসেবে সেট করুন, যেখানে CHANNEL_ID হল সেই YouTube চ্যানেল আইডি যার জন্য আপনি পুশ বিজ্ঞপ্তি পেতে চান।

  3. আপনার কলব্যাক সার্ভারে পাঠানো প্রসেস বিজ্ঞপ্তি। বিজ্ঞপ্তির ফর্ম্যাট নিচে দেখানো হল। মনে রাখবেন, নতুন যোগ করা বা আপডেট করা ভিডিও শনাক্ত করতে আপনি <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/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>