LiveChatMessages: streamList

এই পদ্ধতি একটি সার্ভার-স্ট্রিমিং কানেকশন তৈরি করে যা আপনাকে কম লেটেন্সি সহ নির্দিষ্ট চ্যাটের জন্য লাইভ চ্যাট মেসেজ পেতে দেয়। লাইভ চ্যাট মেসেজ দেখার এটি সবচেয়ে কার্যকর উপায়, কারণ এটি নতুন মেসেজ উপলভ্য হওয়ার সাথে সাথেই আপনার ক্লায়েন্টকে পুশ করে, যার ফলে আপনাকে আপডেটের জন্য পোল করতে হয় না।

আপনি প্রথমবার কানেক্ট করলে, API সাম্প্রতিক চ্যাট ইতিহাস সহ মেসেজের একটি সিরিজ পাঠায়। নতুন মেসেজ পোস্ট করা হলে, সার্ভার খোলা কানেকশনের মাধ্যমে সেগুলি পাঠানো চালিয়ে যাবে।

প্রতিটি সার্ভার রেসপন্সে মেসেজগুলি সবচেয়ে পুরনো থেকে সবচেয়ে নতুন ক্রমে সাজানো হয়। এছাড়াও, প্রতিটি উত্তরে একটি nextPageToken অন্তর্ভুক্ত থাকে। আপনার ক্লায়েন্ট ডিসকানেক্ট হয়ে গেলে, স্ট্রিম আবার চালু করতে আপনি এই টোকেন ব্যবহার করতে পারবেন। এটি করতে, আপনার নতুন কানেকশন অনুরোধে pageToken প্যারামিটারের ভ্যালু হিসেবে আপনার পাওয়া শেষ nextPageToken প্রদান করুন। আপনি যেখানে শেষ করেছিলেন, API সেখান থেকেই আবার মেসেজ পাঠানো শুরু করবে।

কোটার উপর প্রভাব: এই পদ্ধতিতে কল করলে কোটা খরচ ৫ ইউনিট হয়।

ডেমো

এই এন্ডপয়েন্টের Python ডেমোর জন্য, লাইভ চ্যাট স্ট্রিমিং গাইড দেখুন।

অনুরোধ করুন

প্যারামিটারগুলি

এই কোয়েরিতে যেসব প্যারামিটার কাজ করে তা নিম্নলিখিত সারণীতে দেওয়া হল। তালিকায় থাকা সব প্যারামিটারই হল কোয়েরি প্যারামিটার।

প্যারামিটারগুলি
প্রয়োজনীয় প্যারামিটার
liveChatId string
liveChatId প্যারামিটারটি সেই চ্যাটের আইডি নির্দিষ্ট করে যার মেসেজ ফেরত দেওয়া হবে। কোনও ব্রডকাস্টের সাথে যুক্ত লাইভ চ্যাট আইডি liveBroadcast রিসোর্সের snippet.liveChatId প্রপার্টিতে রিটার্ন করা হয়।
part string
part প্যারামিটার liveChatMessage রিসোর্স পার্ট নির্দিষ্ট করে যা API রেসপন্সে অন্তর্ভুক্ত থাকবে। সাপোর্ট করা ভ্যালু হল id, snippet এবং authorDetails।
ঐচ্ছিক প্যারামিটার
hl string
YouTube ওয়েবসাইট যে নির্দিষ্ট অ্যাপ্লিকেশন ভাষা সাপোর্ট করে সেটির জন্য hl প্যারামিটার API-কে লোকালাইজ করা কারেন্সি ডিসপ্লে স্ট্রিং রিট্রিভ করার নির্দেশ দেয়। যেমন, ইংরেজিতে কারেন্সি $1.50 হিসেবে দেখানো হবে, কিন্তু ফরাসিতে এটি 1,50$ হিসেবে দেখানো হবে।

প্যারামিটারের মান অবশ্যই i18nLanguages.list পদ্ধতি দ্বারা রিটার্ন করা তালিকায় অন্তর্ভুক্ত একটি ভাষা কোড হতে হবে।
maxResults unsigned integer

maxResults প্যারামিটার ফলাফলের সেটে সর্বাধিক কতগুলি মেসেজ রিটার্ন করা উচিত তা নির্দিষ্ট করে। গ্রহণযোগ্য ভ্যালু হল 200 থেকে 2000, অন্তর্ভুক্ত। ডিফল্ট মান হল 500।

কন্টিনিউয়েশন টোকেন ছাড়া করা প্রাথমিক অনুরোধে শুধুমাত্র সবচেয়ে সাম্প্রতিক ইভেন্ট থাকবে। এটি maxResults-এর থেকে ছোট হতে পারে, যদি এটি প্রদান করা হয়।

API এমন ইভেন্ট ফিরিয়ে আনে না যা কন্টিনিউয়েশন টোকেন ছাড়া করা প্রাথমিক অনুরোধের মাধ্যমে ফিরিয়ে আনা ইভেন্টের চেয়ে পুরনো।

pageToken string
pageToken প্যারামিটার, ফলাফল সেটের মধ্যে এমন একটি নির্দিষ্ট পৃষ্ঠা শনাক্ত করে যা রিটার্ন করা উচিত। API রেসপন্সে, nextPageToken প্রপার্টি অন্যান্য পৃষ্ঠা শনাক্ত করে যা ফিরিয়ে আনা যেতে পারে।
profileImageSize unsigned integer
profileImageSize প্যারামিটার ব্যবহারকারীর প্রোফাইল ছবির সাইজ নির্দিষ্ট করে যা ফলাফল সেটে রিটার্ন করা উচিত। ছবিগুলি বর্গাকার। ডিফল্ট ভ্যালু হল 88, অর্থাৎ ছবিগুলি ৮৮ পিক্সেল বাই ৮৮ পিক্সেল হবে। 16 থেকে 720 পর্যন্ত মান গ্রহণযোগ্য, এর মধ্যে এই দুটি মানও অন্তর্ভুক্ত।

অনুরোধের বডি

এই পদ্ধতি কল করার সময় অনুরোধের বডি প্রদান করবেন না।

রেসপন্স

সফল হলে, এই পদ্ধতিটি নিম্নলিখিত স্ট্রাকচার সহ একটি রেসপন্স বডি প্রদান করে:

{
  "kind": "youtube#liveChatMessageListResponse",
  "etag": etag,
  "nextPageToken": string,
  "pollingIntervalMillis": unsigned integer,
  "offlineAt": datetime,
  "pageInfo": {
    "totalResults": integer,
    "resultsPerPage": integer
  },
  "items": [
    liveChatMessage Resource
  ],
  "activePollItem": liveChatMessage Resource
}

প্রপার্টি

এই রিসোর্সে যেসব প্রপার্টি দেখা যায়, নিম্নলিখিত সারণীতে সেগুলি সম্পর্কে বলা হয়েছে:

প্রপার্টি
kind string
API রিসোর্সের ধরন শনাক্ত করে। ভ্যালু হবে youtube#liveChatMessageListResponse।
etag etag
এই রিসোর্সের Etag.
nextPageToken string
ফলাফল সেটের পরবর্তী পৃষ্ঠা ফিরিয়ে আনতে pageToken প্যারামিটারের ভ্যালু হিসেবে যে টোকেন ব্যবহার করা যেতে পারে।
offlineAt datetime
যে তারিখ ও সময়ে অন্তর্নিহিত লাইভ স্ট্রিম অফলাইন হয়ে গেছে। স্ট্রিমটি আগে থেকেই অফলাইন থাকলে তবেই এই প্রপার্টি দেখানো হয়। ভ্যালু ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) ফর্ম্যাটে উল্লেখ করা হয়েছে।
pageInfo object
pageInfo অবজেক্টটি ফলাফল সেটের জন্য পেজিং তথ্য এনক্যাপসুলেট করে।
pageInfo.totalResults integer
ফলাফলের সেটে মোট ফলাফলের সংখ্যা।
pageInfo.resultsPerPage integer
API রেসপন্সে অন্তর্ভুক্ত ফলাফলের সংখ্যা।
items[] list
মেসেজের তালিকা। তালিকার প্রতিটি আইটেম হল একটি liveChatMessage রিসোর্স।
activePollItem object
মেসেজে পোল ডেটা। প্রতিটি পোল হল pollEvent ধরনের liveChatMessage রিসোর্স, যা একটি অ্যাক্টিভ পোলকে দেখায়। প্রতিটি চ্যাটে শুধুমাত্র একটি পোল থাকতে পারে।

সমস্যা

এই পদ্ধতিতে কল করার উত্তরে API যেসব সমস্যার মেসেজ রিটার্ন করতে পারে, তা নিম্নলিখিত সারণীতে শনাক্ত করা হয়েছে। আরও বিবরণের জন্য সমস্যার মেসেজ সংক্রান্ত ডকুমেন্টেশন দেখুন।

কানেক্ট করার জন্য gRPC ব্যবহার করার সময়:

gRPC ত্রুটি কোড সমস্যার বিবরণ বিবরণ
PERMISSION_DENIED (7) The caller does not have permission নির্দিষ্ট লাইভ চ্যাটের মেসেজ রিট্রিভ করার জন্য আপনার কাছে প্রয়োজনীয় অনুমতি নেই।
INVALID_ARGUMENT (3) Request contains an invalid argument প্রদত্ত প্যারামিটার পার্স করা যায়নি। liveChatId এবং অন্যান্য প্যারামিটার সঠিক ফর্ম্যাটে আছে কিনা তা নিশ্চিত করুন।
FAILED_PRECONDITION (9)* Precondition check failed LIVE_CHAT_DISABLED. নির্দিষ্ট লাইভ চ্যাট বন্ধ করা আছে।
FAILED_PRECONDITION (9)* Precondition check failed লাইভ চ্যাট শেষ হয়েছে। শেষ হয়ে যাওয়া লাইভ চ্যাটের মেসেজ আপনি আর ফিরিয়ে আনতে পারবেন না।
NOT_FOUND (5) Requested entity was not found আপনি যে লাইভ চ্যাটটি ফিরিয়ে আনার চেষ্টা করছেন সেটি খুঁজে পাওয়া যাচ্ছে না। অনুরোধের liveChatId প্যারামিটারের ভ্যালু সঠিক কিনা তা চেক করুন।
RESOURCE_EXHAUSTED (8) Resource has been exhausted (e.g. check quota) আগের অনুরোধের পরে খুব দ্রুত এই অনুরোধটি পাঠানো হয়েছে। YouTube-এর রিফ্রেশ রেটের চেয়ে বেশি ঘন ঘন মেসেজ পাওয়ার জন্য API অনুরোধ পাঠানো হলে এই সমস্যা হয়, এর ফলে অযথা ব্যান্ডউইথ নষ্ট হয়।

* gRPC-এর সীমাবদ্ধতার কারণে, ত্রুটি কোডের উপর ভিত্তি করে LIVE_CHAT_DISABLED এবং LIVE_CHAT_ENDED-এর মধ্যে পার্থক্য করা সম্ভব নয়। YouTube এই সমস্যার সমাধান করার জন্য সক্রিয়ভাবে কাজ করছে।

কানেক্ট করার জন্য ওয়েব ট্রাফিক ব্যবহার করার সময়:

সমস্যার ধরন সমস্যার বিবরণ বিবরণ
HttpStatus.FORBIDDEN (403) forbidden নির্দিষ্ট লাইভ চ্যাটের মেসেজ রিট্রিভ করার জন্য আপনার কাছে প্রয়োজনীয় অনুমতি নেই।
HttpStatus.BAD_REQUEST (400) Reason for invalid request, e.g. pageTokenInvalid প্রদত্ত প্যারামিটার পার্স করা যায়নি। liveChatId এবং অন্যান্য প্যারামিটার সঠিক ফর্ম্যাটে আছে কিনা তা নিশ্চিত করুন।
HttpStatus.FORBIDDEN (403) liveChatDisabled LIVE_CHAT_DISABLED. নির্দিষ্ট লাইভ চ্যাট বন্ধ করা আছে।
HttpStatus.FORBIDDEN (403) liveChatEnded লাইভ চ্যাট শেষ হয়েছে। শেষ হয়ে যাওয়া লাইভ চ্যাটের মেসেজ আপনি ফিরিয়ে আনতে পারবেন না।
HttpStatus.NOT_FOUND (404) liveChatNotFound আপনি যে লাইভ চ্যাটটি ফিরিয়ে আনার চেষ্টা করছেন সেটি খুঁজে পাওয়া যাচ্ছে না। অনুরোধের liveChatId প্যারামিটারের ভ্যালু সঠিক কিনা তা চেক করুন।
HttpStatus.FORBIDDEN (403) rateLimitExceeded আগের অনুরোধের পরে খুব দ্রুত অনুরোধ পাঠানো হয়েছে। YouTube-এর রিফ্রেশ রেটের চেয়ে বেশি ঘন ঘন মেসেজ পাওয়ার জন্য API অনুরোধ পাঠানো হলে এই সমস্যা হয়, এর ফলে অযথা ব্যান্ডউইথ নষ্ট হয়।