LiveChatMessages: streamList

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

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

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

ডেমো

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

অনুরোধ

প্যারামিটার

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

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

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

maxResults প্যারামিটারটি ফলাফল সেটে ফেরত আসা বার্তার সর্বোচ্চ সংখ্যা নির্দিষ্ট করে। গ্রহণযোগ্য মান হলো 200 থেকে 2000 (উভয় সংখ্যাসহ)। ডিফল্ট মান হলো 500

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

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

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
এপিআই রিসোর্সের ধরন শনাক্ত করে। এর মান হবে youtube#liveChatMessageListResponse
etag etag
এই রিসোর্সের ই-ট্যাগ।
nextPageToken string
যে টোকেনটি রেজাল্ট সেটের পরবর্তী পৃষ্ঠাটি পাওয়ার জন্য pageToken প্যারামিটারের মান হিসেবে ব্যবহার করা যায়।
offlineAt datetime
যে তারিখ ও সময়ে মূল লাইভস্ট্রিমটি অফলাইন হয়েছিল। এই প্রপার্টিটি কেবল তখনই উপস্থিত থাকে যখন স্ট্রিমটি আগে থেকেই অফলাইন থাকে। এর মান ISO 8601 ( YYYY-MM-DDThh:mm:ss.sZ ) ফরম্যাটে নির্দিষ্ট করা হয়।
pageInfo object
pageInfo অবজেক্টটি রেজাল্ট সেটের পেজিং তথ্য ধারণ করে।
pageInfo. totalResults integer
ফলাফল সেটে থাকা মোট ফলাফলের সংখ্যা।
pageInfo. resultsPerPage integer
এপিআই প্রতিক্রিয়ায় অন্তর্ভুক্ত ফলাফলের সংখ্যা।
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 লাইভ চ্যাট নিষ্ক্রিয় করা হয়েছে। নির্দিষ্ট লাইভ চ্যাটটি নিষ্ক্রিয় করা আছে।
FAILED_PRECONDITION (9) * Precondition check failed লাইভ চ্যাট শেষ হয়েছে। শেষ হয়ে যাওয়া লাইভ চ্যাটের মেসেজগুলো আপনি পুনরুদ্ধার করতে পারবেন না।
NOT_FOUND (5) Requested entity was not found আপনি যে লাইভ চ্যাটটি পুনরুদ্ধার করার চেষ্টা করছেন তা খুঁজে পাওয়া যাচ্ছে না। অনুরোধের liveChatId প্যারামিটারের মানটি সঠিক কিনা তা নিশ্চিত করতে যাচাই করুন।
RESOURCE_EXHAUSTED (8) Resource has been exhausted (eg check quota) পূর্ববর্তী অনুরোধের খুব দ্রুত পরেই এই অনুরোধটি পাঠানো হয়েছিল। এই ত্রুটিটি ঘটে যখন বার্তা পুনরুদ্ধার করার জন্য এপিআই অনুরোধগুলি ইউটিউবের রিফ্রেশ রেটের চেয়ে বেশি ঘন ঘন পাঠানো হয়, যা অপ্রয়োজনীয়ভাবে ব্যান্ডউইথ নষ্ট করে।

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

ওয়েব ট্র্যাফিক ব্যবহার করে সংযোগ করার সময়:

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