LiveChatMessages: streamList

इस तरीके से, सर्वर-स्ट्रीमिंग कनेक्शन सेट अप होता है. इससे आपको किसी चैट के लिए, कम इंतज़ार के समय में लाइव चैट मैसेज मिलते हैं. लाइव चैट के मैसेज देखने का यह सबसे बेहतर तरीका है. इससे आपके क्लाइंट को नए मैसेज उपलब्ध होते ही मिल जाते हैं. इसके लिए, आपको अपडेट के लिए पोल करने की ज़रूरत नहीं पड़ती.

पहली बार कनेक्ट करने पर, एपीआई हाल ही की चैट का इतिहास दिखाने वाले मैसेज की एक सीरीज़ भेजता है. नए मैसेज पोस्ट किए जाने पर, सर्वर उन्हें खुले कनेक्शन के ज़रिए भेजता रहेगा.

सर्वर से मिले हर जवाब में मौजूद मैसेज, सबसे पुराने से लेकर सबसे नए के क्रम में लगाए जाते हैं. हर जवाब में एक nextPageToken भी शामिल होता है. अगर आपका क्लाइंट डिसकनेक्ट हो जाता है, तो स्ट्रीम फिर से शुरू करने के लिए इस टोकन का इस्तेमाल किया जा सकता है. ऐसा करने के लिए, कनेक्शन के नए अनुरोध में pageToken पैरामीटर की वैल्यू के तौर पर, आपको मिला आखिरी nextPageToken दें. इसके बाद, एपीआई वहीं से मैसेज भेजना फिर से शुरू करेगा जहां आपने छोड़ा था.

कोटा पर असर: इस तरीके को कॉल करने पर, 5 यूनिट का कोटा खर्च होता है.

डेमो

इस एंडपॉइंट के Python डेमो के लिए, लाइव चैट स्ट्रीम करना गाइड देखें.

अनुरोध

पैरामीटर

यहां दी गई टेबल में उन पैरामीटर की सूची दी गई है जो इस क्वेरी के साथ काम करते हैं. यहां दिए गए सभी पैरामीटर, क्वेरी पैरामीटर हैं.

पैरामीटर
ज़रूरी पैरामीटर
liveChatId string
liveChatId पैरामीटर, उस चैट का आईडी तय करता है जिसके मैसेज दिखाए जाएंगे. ब्रॉडकास्ट से जुड़ा लाइव चैट आईडी, liveBroadcast संसाधन की snippet.liveChatId प्रॉपर्टी में दिखता है.
part string
part पैरामीटर से यह तय होता है कि एपीआई से मिली जानकारी में, liveChatMessage संसाधन के कौनसे हिस्से शामिल होंगे. id, snippet, और authorDetails इस्तेमाल की जा सकने वाली वैल्यू हैं.
वैकल्पिक पैरामीटर
hl string
hl पैरामीटर, एपीआई को YouTube वेबसाइट पर इस्तेमाल की जा सकने वाली किसी खास भाषा के लिए, स्थानीय मुद्रा दिखाने वाली स्ट्रिंग को वापस पाने का निर्देश देता है. उदाहरण के लिए, अंग्रेज़ी में मुद्रा को $1.50 के तौर पर दिखाया जाएगा, लेकिन फ़्रेंच में इसे 1,50$ के तौर पर दिखाया जाएगा.

पैरामीटर वैल्यू, i18nLanguages.list तरीके से मिली सूची में शामिल भाषा कोड होनी चाहिए.
maxResults unsigned integer

maxResults पैरामीटर से यह तय होता है कि नतीजों के सेट में ज़्यादा से ज़्यादा कितने मैसेज दिखाए जाने चाहिए. 200 से 2000 तक की वैल्यू डाली जा सकती हैं. डिफ़ॉल्ट वैल्यू 500 है.

कंटिन्यूएशन टोकन के बिना किए गए शुरुआती अनुरोध में, सिर्फ़ सबसे हाल के इवेंट शामिल होंगे. अगर maxResults दिया गया है, तो यह इससे छोटा हो सकता है.

एपीआई, उन इवेंट को वापस नहीं लाता जो बिना कंटिन्यूएशन टोकन के किए गए शुरुआती अनुरोध से मिले इवेंट से पुराने हैं.

pageToken string
pageToken पैरामीटर, नतीजों के सेट में मौजूद उस पेज की पहचान करता है जिसे दिखाया जाना चाहिए. एपीआई से मिली जानकारी में, nextPageToken प्रॉपर्टी उन अन्य पेजों की पहचान करती है जिन्हें वापस लाया जा सकता है.
profileImageSize unsigned integer
profileImageSize पैरामीटर, उपयोगकर्ता की प्रोफ़ाइल फ़ोटो का साइज़ तय करता है. यह साइज़, नतीजों के सेट में दिखना चाहिए. इमेज स्क्वेयर हों. डिफ़ॉल्ट वैल्यू 88 है. इसका मतलब है कि इमेज 88 पिक्सल x 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
इस संसाधन का Etag.
nextPageToken string
वह टोकन जिसका इस्तेमाल pageToken पैरामीटर की वैल्यू के तौर पर किया जा सकता है, ताकि नतीजों के सेट में अगला पेज वापस लाया जा सके.
offlineAt datetime
वह तारीख और समय जब लाइव स्ट्रीम ऑफ़लाइन हो गई थी. यह प्रॉपर्टी सिर्फ़ तब मौजूद होती है, जब स्ट्रीम पहले से ऑफ़लाइन हो. वैल्यू, आईएसओ 8601 (YYYY-MM-DDThh:mm:ss.sZ) फ़ॉर्मैट में दी गई है.
pageInfo object
pageInfo ऑब्जेक्ट, नतीजों के सेट के लिए पेजिंग की जानकारी को एन्कैप्सुलेट करता है.
pageInfo.totalResults integer
नतीजे के सेट में मौजूद नतीजों की कुल संख्या.
pageInfo.resultsPerPage integer
एपीआई से मिली जानकारी में शामिल नतीजों की संख्या.
items[] list
मैसेज की सूची. सूची में मौजूद हर आइटम, एक liveChatMessage संसाधन होता है.
activePollItem object
मैसेज में मौजूद पोल का डेटा. हर पोल एक liveChatMessage संसाधन होता है. इसका टाइप pollEvent होता है, जो किसी चालू पोल को दिखाता है. हर चैट में सिर्फ़ एक पोल हो सकता है.

गड़बड़ियां

यहां दी गई टेबल में, गड़बड़ी के उन मैसेज के बारे में बताया गया है जो इस तरीके को कॉल करने पर, एपीआई से मिल सकते हैं. ज़्यादा जानकारी के लिए, गड़बड़ी के मैसेज वाला दस्तावेज़ देखें.

कनेक्ट करने के लिए 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 के रीफ़्रेश रेट से ज़्यादा बार भेजे जाते हैं. इससे बैंडविड्थ की बर्बादी होती है.

* 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 के रीफ़्रेश रेट से ज़्यादा बार भेजे जाते हैं. इससे बैंडविड्थ की बर्बादी होती है.