YouTube लाइव स्ट्रीमिंग एपीआई के बारे में खास जानकारी

YouTube Live Streaming API से, आपको YouTube पर लाइव इवेंट बनाने, अपडेट करने, और मैनेज करने की सुविधा मिलती है. इस एपीआई का इस्तेमाल करके, इवेंट (ब्रॉडकास्ट) को शेड्यूल किया जा सकता है और उन्हें वीडियो स्ट्रीम से जोड़ा जा सकता है. ये स्ट्रीम, असल ब्रॉडकास्ट कॉन्टेंट के तौर पर दिखती हैं.

Live Streaming API में YouTube Data API और YouTube Content ID API के कॉम्पोनेंट शामिल होते हैं. Data API, YouTube के उपयोगकर्ताओं को उनके YouTube खाते मैनेज करने की सुविधा देता है. वहीं, YouTube Content ID API, YouTube के अधिकारों को मैनेज करने वाले सिस्टम के साथ इंटरैक्ट करने की सुविधा देता है. हालांकि, लाइव स्ट्रीमिंग एपीआई बनाने वाले सभी संसाधन सिर्फ़ लाइव इवेंट बनाने और मैनेज करने के लिए इस्तेमाल किए जाते हैं.

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

मुख्य सिद्धांत

ब्रॉडकास्ट
ब्रॉडकास्ट ऐसे इवेंट को दिखाता है जिसे YouTube पर जैसे भी देखा जा सकता है. ब्रॉडकास्ट को रिकॉर्ड और YouTube वीडियो के रूप में भी सेव किया जा सकता है, ताकि लोग उन्हें देखने के बाद देख सकें.
स्ट्रीम
स्ट्रीम उस ऑडियो-वीडियो कॉन्टेंट की पहचान करती है जिसकी जानकारी YouTube को दी जा रही है. हर ब्रॉडकास्ट एक वीडियो स्ट्रीम से जुड़ा होता है.
क्यूपॉइंट
क्यूपॉइंट ऐसे विज्ञापन के लिए ब्रेक को दिखाता है जिसे लाइव ब्रॉडकास्ट में शामिल किया जा सकता है.

एपीआई के इस्तेमाल के उदाहरण

नीचे दी गई सूची में, आपके ऐप्लिकेशन में एपीआई का इस्तेमाल करने के कई तरीके बताए गए हैं:

  • ब्रॉडकास्ट शेड्यूल करें और ब्रॉडकास्ट की सेटिंग तय करें. आपका ऐप्लिकेशन उपयोगकर्ताओं को ब्रॉडकास्ट सेटिंग पहले से तय करने और फिर किसी खास ब्रॉडकास्ट पर लागू करने के लिए सेटिंग चुनने की सुविधा दे सकता था.

  • वीडियो स्ट्रीम और ब्रॉडकास्ट जोड़ें.

  • ब्रॉडकास्टर को एक ही समय पर (YouTube Data API का इस्तेमाल करके) किसी ब्रॉडकास्ट और उसके वीडियो के बारे में जानकारी देने की सुविधा दें.

  • ब्रॉडकास्ट की स्थितियों (testing, live वगैरह) के बीच ट्रांज़िशन को आसान बनाएं और उपयोगकर्ताओं को क्यूपॉइंट डालने की सुविधा दें.

शुरू करने से पहले

  1. Google API Console ऐक्सेस करने, एपीआई पासकोड का अनुरोध करने, और अपना ऐप्लिकेशन रजिस्टर करने के लिए, आपको Google खाते की ज़रूरत होगी.

  2. Google के साथ अपना ऐप्लिकेशन रजिस्टर करें, ताकि वह एपीआई अनुरोध सबमिट कर सके.

  3. अपना आवेदन रजिस्टर करने के बाद, उन सेवाओं में से किसी एक के तौर पर YouTube Data API को चुनें जिनका इस्तेमाल आपका ऐप्लिकेशन करता है:

    1. API Console पर जाएं और वह प्रोजेक्ट चुनें जिसे आपने अभी-अभी रजिस्टर किया है.
    2. चालू किए गए एपीआई पेज पर जाएं. एपीआई की सूची में जाकर, यह पक्का करें कि YouTube Data API v3 के लिए स्थिति चालू हो. साथ ही, अगर आप YouTube कॉन्टेंट पार्टनर हैं, तो YouTube Content ID API भी आपका स्टेटस चालू है.

  4. JSON (JavaScript ऑब्जेक्ट नोटेशन) डेटा फ़ॉर्मैट के मुख्य कॉन्सेप्ट के बारे में जानें. JSON एक सामान्य और भाषा पर निर्भर डेटा फ़ॉर्मैट है, जो आर्बिट्रेरी डेटा स्ट्रक्चर को आसान टेक्स्ट फ़ॉर्मैट में दिखाता है. ज़्यादा जानकारी के लिए, json.org देखें.

एपीआई अनुरोधों को अनुमति देना

जैसा कि ऊपर बताया गया है, लाइव स्ट्रीमिंग एपीआई ऐसी सुविधा का इस्तेमाल करता है जो तकनीकी रूप से YouTube Data API या YouTube Content ID API का हिस्सा है. YouTube को अपनी एसेट का मेटाडेटा, मालिकाना हक की जानकारी, और नीति से जुड़ी जानकारी देने के लिए, Content ID API का इस्तेमाल किया जा सकता है. (लाइव वीडियो ब्रॉडकास्ट, एसेट का एक उदाहरण है.) इस एपीआई की मदद से, वीडियो पर दावा किया जा सकता है. साथ ही, अपने वीडियो के लिए विज्ञापन नीतियां सेट की जा सकती हैं.

इस सेक्शन में, Content ID API के अनुरोधों के लिए अनुमति से जुड़ी ज़रूरी शर्तों के बारे में बताया गया है. ये शर्तें, Live Streaming API के अन्य अनुरोधों को अनुमति देने की ज़रूरी शर्तों से अलग हैं.

Data API पर कॉल किया जा रहा है
एपीआई अनुरोध को, उस Google खाते से अनुमति मिलनी चाहिए जिसके पास ब्रॉडकास्ट करने वाले YouTube चैनल का मालिकाना हक हो.
Content ID API पर कॉल किया जा रहा है
एपीआई अनुरोध को, उस Google खाते से अनुमति दी जानी चाहिए जो कॉन्टेंट के उस मालिक से जुड़ा हो जिसके पास ब्रॉडकास्ट करने वाले YouTube चैनल का मालिकाना हक है.

संसाधन और संसाधन के टाइप

संसाधन, यूनीक आइडेंटिफ़ायर वाली व्यक्तिगत डेटा इकाई होता है. इस टेबल में, अलग-अलग तरह के उन संसाधनों के बारे में बताया गया है जिन्हें Live Streaming API का इस्तेमाल करके इस्तेमाल किया जाएगा. तकनीकी रूप से, ये सभी संसाधन असल में YouTube Data API या YouTube Content ID API के हिस्से के तौर पर बताए गए हैं. हालांकि, liveBroadcast, liveStream, और cuepoint संसाधनों का इस्तेमाल सिर्फ़ लाइव इवेंट बनाने और उन्हें मैनेज करने के लिए किया जाता है.

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

उदाहरण के तौर पर, एक liveBroadcast रिसॉर्स, YouTube के एक वीडियो रिसॉर्स से पूरी तरह जुड़ा होता है. असल में, liveBroadcast रिसॉर्स और video रिसॉर्स का आईडी एक ही है. लाइव स्ट्रीमिंग एपीआई का इस्तेमाल करके ब्रॉडकास्ट बनाने के बाद, वीडियो के बारे में ज़्यादा मेटाडेटा देने के लिए, YouTube Data API का इस्तेमाल किया जा सकता है.
liveStream इसमें उस वीडियो स्ट्रीम के बारे में जानकारी होती है जिसे YouTube पर भेजा जा रहा है. इस स्ट्रीम में वह कॉन्टेंट उपलब्ध होगा जिसे YouTube के उपयोगकर्ताओं को ब्रॉडकास्ट किया जाएगा. एक बार बनाए जाने के बाद, liveStream रिसॉर्स को सिर्फ़ एक liveBroadcast रिसॉर्स से जोड़ा जा सकता है. (इसी तरह, liveBroadcast रिसॉर्स को सिर्फ़ एक liveStream रिसॉर्स के लिए इस्तेमाल किया जा सकता है.
cuepoint ब्रॉडकास्ट की वीडियो स्ट्रीम में एक क्यूपॉइंट डालें, जिससे विज्ञापन के लिए ब्रेक ट्रिगर हो सकता है. ब्रॉडकास्ट के दौरान क्यूपॉइंट डालने के लिए, liveBroadcasts.cuepoint तरीके का इस्तेमाल करें.
video यह एक YouTube वीडियो के बारे में बताता है. जैसा कि ऊपर बताया गया है, liveBroadcast रिसॉर्स, video रिसॉर्स का ही एक एक्सटेंशन है. वीडियो के मेटाडेटा को अपडेट करने के लिए, YouTube Data API का इस्तेमाल किया जा सकता है. जैसे, रिकॉर्डिंग की जगह या वे इलाके जहां ब्रॉडकास्ट दिखेगा.
videoAdvertisingOptions किसी वीडियो (या ब्रॉडकास्ट) के लिए विज्ञापन की सेटिंग की जानकारी देता है. विज्ञापन के विकल्प सेट करने के लिए, YouTube Content ID API का इस्तेमाल किया जाता है.
asset बौद्धिक संपत्ति के बारे में जानकारी देता है. जैसे, फ़िल्म या शो का कोई एपिसोड. इस मामले में, ब्रॉडकास्ट वीडियो एसेट है. asset संसाधन बनाने और उन्हें मैनेज करने के लिए, YouTube Content ID API का इस्तेमाल किया जाएगा.
claim वीडियो को किसी एसेट से लिंक करता है, जिससे वीडियो मेल खाता है. ब्रॉडकास्ट वीडियो के मालिक के तौर पर अपनी पहचान करने के लिए, आपने YouTube Content ID API का इस्तेमाल करके दावा किया है.
policy इस नीति से ऐसे नियमों के बारे में पता चलता है जो उन स्थितियों के बारे में बताते हैं जिनमें आपको अपना कॉन्टेंट YouTube पर दिखाना है या YouTube पर दिखने से रोकना है. आपको अपने ब्रॉडकास्ट वीडियो पर एक नीति लागू करनी होगी. साथ ही, एक नीति भी तय करनी होगी. इस नीति को YouTube, उपयोगकर्ता के अपलोड किए गए उन वीडियो पर लागू करेगा जो आपके ब्रॉडकास्ट वीडियो से मिलते-जुलते हैं.

इस्तेमाल की जा सकने वाली कार्रवाइयां

यहां दी गई टेबल में, एपीआई पर काम करने वाले अलग-अलग तरीके दिखाए गए हैं:

ऑपरेशंस
list शून्य या ज़्यादा संसाधनों की सूची (GET) लेकर आता है.
insert नया संसाधन (POST) बनाता है.
update आपके अनुरोध में मौजूद डेटा दिखाने के लिए, (PUT) मौजूदा संसाधन में बदलाव करता है.
bind liveStream रिसॉर्स के साथ, liveBroadcast रिसॉर्स को लिंक करता है या ऐसा लिंक हटा देता है.
transition liveBroadcast संसाधन की स्थिति बदलता है और नई स्थिति से जुड़ी किसी भी प्रोसेस को शुरू करता है. उदाहरण के लिए, जब आप किसी ब्रॉडकास्ट की स्थिति को testing पर ट्रांसफ़र करते हैं, तो YouTube उस ब्रॉडकास्ट की मॉनिटर स्ट्रीम पर वीडियो को ट्रांसमिट करना शुरू कर देता है.
delete किसी खास संसाधन को (DELETE) हटाता है.

नीचे दी गई टेबल में उन कार्रवाइयों के बारे में बताया गया है जो अलग-अलग तरह के संसाधनों के लिए काम करती हैं. संसाधन डालने, अपडेट करने या मिटाने वाली कार्रवाइयों के लिए, हमेशा उपयोगकर्ता की अनुमति की ज़रूरत होती है. कुछ मामलों में, list के तरीकों में आधिकारिक और बिना अनुमति वाले, दोनों तरह के अनुरोध काम करते हैं. इसमें अनुमति वाले अनुरोध सिर्फ़ सार्वजनिक डेटा हासिल करते हैं, जबकि आधिकारिक अनुरोध से वह जानकारी भी हासिल की जा सकती है जिसकी पुष्टि मौजूदा उपयोगकर्ता के पास होती है.

ऐसी कार्रवाइयां की जा सकती हैं जिनका इस्तेमाल किया जा सकता है
list insert update bind transition cuepoint delete
liveBroadcast
liveStream

कुछ संसाधन

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

part पैरामीटर, ऐसे किसी भी एपीआई अनुरोध के लिए एक ज़रूरी पैरामीटर होता है जो YouTube Data API संसाधन को फिर से हासिल करता है या दिखाता है. पैरामीटर, एक या एक से ज़्यादा टॉप लेवल (नेस्ट नहीं की गई) ऐसी संसाधन प्रॉपर्टी की पहचान करता है जिन्हें एपीआई से जुड़े रिस्पॉन्स में शामिल किया जाना चाहिए. उदाहरण के लिए, liveStream संसाधन में ये हिस्से शामिल होते हैं:

  • snippet
  • cdn
  • status

ये सभी हिस्से ऐसे ऑब्जेक्ट हैं जिनमें नेस्ट की गई प्रॉपर्टी होती हैं. इन ऑब्जेक्ट को मेटाडेटा फ़ील्ड के ग्रुप के तौर पर माना जा सकता है. इन्हें एपीआई सर्वर हासिल कर सकता है (या नहीं कर सकता) भी. इसलिए, part पैरामीटर के लिए, आपको वे रिसॉर्स कॉम्पोनेंट चुनने होंगे जिनका इस्तेमाल आपका ऐप्लिकेशन असल में करता है. यह शर्त दो अहम मकसद के लिए है:

  • यह एपीआई सर्वर को उन मेटाडेटा फ़ील्ड की जानकारी हासिल करने से रोकता है जिनका इस्तेमाल आपका ऐप्लिकेशन नहीं करता. इससे इंतज़ार का समय कम हो जाता है.
  • यह आपके ऐप्लिकेशन को मिल सकने वाले ग़ैर-ज़रूरी डेटा की मात्रा को कम करके (या खत्म करके) बैंडविड्थ का इस्तेमाल कम करता है.

समय के साथ, संसाधनों में और सुविधाएं जुड़ती हैं, इसलिए आपको ये फ़ायदे सिर्फ़ मिलेंगे. इसकी वजह यह है कि आपका ऐप्लिकेशन हाल ही में लॉन्च की गई ऐसी प्रॉपर्टी के लिए अनुरोध नहीं करेगा जो उसके साथ काम नहीं करतीं.

सलाह और सबसे सही तरीके

अपने कॉन्टेंट पर दावा करें

अगर आपको ब्रॉडकास्ट के दौरान विज्ञापन दिखाने हैं, तो आपको इवेंट शुरू होने से पहले ब्रॉडकास्ट वीडियो पर दावा करना होगा. कॉन्टेंट पर दावा करने के लिए, यह ज़रूरी है कि आप Content ID प्रोग्राम में हिस्सा लेने वाले YouTube कॉन्टेंट पार्टनर हों.

अपने लाइव ब्रॉडकास्ट वीडियो पर दावा करने की प्रक्रिया, वीडियो पर दावा करने की सामान्य प्रक्रिया से अलग है. लाइव वीडियो पर दावा करते समय, आपको वीडियो के असल में मौजूद होने से पहले अपना दावा करना होगा. एपीआई इस पर काम करता है और ब्रॉडकास्ट की लाइफ़ दस्तावेज़ YouTube Content ID API कॉल की जानकारी देता है, जो आपको अपना दावा करने में मदद करती है.

अपने कॉन्टेंट की झलक देखना और उसकी जांच करना

इनबाउंड वीडियो स्ट्रीम मिलने पर, YouTube उस वीडियो को दो अलग-अलग आउटबाउंड स्ट्रीम पर ब्रॉडकास्ट कर सकता है:

  • मॉनिटर स्ट्रीम की मदद से, अपने वीडियो ब्रॉडकास्ट की झलक देखी जा सकती है और उसकी जांच की जा सकती है. यह एक निजी स्ट्रीम है, जिसे सिर्फ़ आप ऐक्सेस कर सकते हैं. ब्रॉडकास्ट की मॉनिटर स्ट्रीम चालू होने पर ही, ब्रॉडकास्ट को testing फ़ेज़ में ट्रांसफ़र किया जा सकता है. मॉनिटर स्ट्रीम, विज्ञापन के लिए ब्रेक नहीं दिखाती है.

  • ब्रॉडकास्ट स्ट्रीम वह स्ट्रीम है जो आपके दर्शकों को दिखती है. आप प्रसारण की निजता स्थिति को public, private या unlisted पर सेट कर सकते हैं. (निजी ब्रॉडकास्ट सिर्फ़ उन लोगों को दिखता है जिन्हें इसे देखने का न्योता साफ़ तौर पर भेजा गया हो. हालांकि, 'सबके लिए मौजूद नहीं' के तौर पर सेट किए गए ब्रॉडकास्ट को वे सभी लोग देख सकते हैं जिनके पास इसे देखने का लिंक होता है.)

    आप ब्रॉडकास्ट स्ट्रीम में देरी करने का विकल्प चुन सकते हैं, ताकि वह मॉनिटर स्ट्रीम के साथ न चले. ब्रॉडकास्ट स्ट्रीम में देरी करने से, ब्रॉडकास्ट में क्यूपॉइंट डालने के समय के लिए बेहतर कंट्रोल मिलता है.

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

YouTube का सुझाव है कि आप अपने ब्रॉडकास्ट के लिए मॉनिटर स्ट्रीम चालू करें, ताकि आप अपने कॉन्टेंट की जांच कर सकें. आपको चुनना चाहिए कि दर्शकों से बातचीत करने या किसी इवेंट की रीयल-टाइम कवरेज देने की आपकी इच्छा के बजाय, क्यूपॉइंट के समय को कंट्रोल करने की अपनी इच्छा के हिसाब से ब्रॉडकास्ट में देरी करनी है या नहीं.

ब्रॉडकास्ट स्ट्रीम के दौरान वीडियो के बीच में विज्ञापन दिखाना

ब्रॉडकास्ट के दौरान, एक क्यूपॉइंट डालकर यह बताया जा सकता है कि ब्रॉडकास्ट में जल्द से जल्द या तय किए गए समय पर विज्ञापन के लिए ब्रेक शुरू होना चाहिए. 'विज्ञापन के लिए ब्रेक' की मदद से, YouTube ब्रॉडकास्ट के दौरान बीच में विज्ञापन दिखा पाता है.

विज्ञापन के लिए ब्रेक की ये विशेषताएं होती हैं:

  1. इसमें पहले से तय समयावधि होती है, जिसे आप cuepoint संसाधन की durationSecs प्रॉपर्टी का इस्तेमाल करके सेट करते हैं. विज्ञापन के लिए ब्रेक खत्म होने के बाद, दर्शक लाइव ब्रॉडकास्ट पर वापस आ जाते हैं.

  2. विज्ञापन के लिए ब्रेक होने पर, वीडियो प्लेयर में एक विज्ञापन सिर्फ़ उन दर्शकों के लिए चलता है जो क्यूपॉइंट डाले जाने पर ब्रॉडकास्ट देख रहे होते हैं. जब दर्शक ब्रॉडकास्ट वाले पेज को रीफ़्रेश करते हैं या क्यूपॉइंट डालने के बाद, दर्शक ब्रॉडकास्ट देखना शुरू करते हैं, तब किसी विज्ञापन को नहीं दिखाया जाता.

नीचे दिए गए चरणों का क्रम, आपके ब्रॉडकास्ट के दौरान विज्ञापन के लिए ब्रेक डालने के सबसे सही तरीके के बारे में बताता है:

टाइम ऑफ़सेट सेट करें

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

  • अगर आपकी ब्रॉडकास्ट स्ट्रीम में देरी नहीं होती है, तो क्यूपॉइंट तुरंत डाला जा सकता है या किसी खास समय पर विज्ञापन के लिए ब्रेक शुरू करने के लिए, walltimeMs प्रॉपर्टी का इस्तेमाल किया जा सकता है.

    • विज्ञापन के लिए ब्रेक तुरंत शुरू करने के लिए, liveBroadcasts.cuepoint वाले तरीके को कॉल करें. अनुरोध के मुख्य हिस्से में मौजूद रिसॉर्स में, insertionOffsetTimeMs प्रॉपर्टी की वैल्यू को 0 पर सेट करें या उस प्रॉपर्टी के लिए कोई वैल्यू तय न करें. साथ ही, walltimeMs प्रॉपर्टी के लिए कोई वैल्यू न दें.

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

    • किसी खास समय पर विज्ञापन के लिए ब्रेक शुरू करने के लिए, liveBroadcasts.cuepoint तरीके को कॉल करें और पसंद का समय बताने के लिए, walltimeMs प्रॉपर्टी का इस्तेमाल करें. प्रॉपर्टी की वैल्यू एक पूर्णांक है, जो epoch टाइमस्टैंप को दिखाती है.

  • अगर आपकी ब्रॉडकास्ट स्ट्रीम में देरी होती है, तो ऊपर बताए गए तरीके से क्यूपॉइंट तुरंत डाला जा सकता है ऊपर बताए गए समय के हिसाब से क्यूपॉइंट डाला जा सकता है या विज्ञापन के लिए ब्रेक कब शुरू होगा, यह तय करने के लिए टाइम ऑफ़सेट तय किया जा सकता है. समय ऑफ़सेट आपके प्रसारण में उस समय का ज़िक्र करता है जब दर्शकों को विज्ञापन दिखाई देना चाहिए.

    ऑफ़सेट वैल्यू को आपके ब्रॉडकास्ट के लिए, मॉनिटर स्ट्रीम की शुरुआत से मिलीसेकंड में मापा जाता है. ध्यान दें कि अगर आपका ब्रॉडकास्ट टेस्टिंग के चरण में है, तो आपके ब्रॉडकास्ट की स्थिति testing में बदलने पर, मॉनिटर स्ट्रीम शुरू हो जाएगी. अगर ऐसा नहीं है, तो आपके ब्रॉडकास्ट की स्थिति live पर ट्रांसफ़र होने के बाद, आपकी मॉनिटर स्ट्रीम शुरू हो जाएगी.

    क्यूपॉइंट डालते समय, cuepoint रिसॉर्स की insertionOffsetTimeMs प्रॉपर्टी को पसंद के ऑफ़सेट पर सेट करें.

समय ऑफ़सेट मान की गणना करें

ऑफ़सेट वैल्यू को फिर से पाने के लिए, YouTube प्लेयर एपीआई के getCurrentTime फ़ंक्शन को उस प्लेयर के लिए कॉल करें जो मॉनिटर स्ट्रीम चला रहा है. उस समय ब्रॉडकास्ट स्ट्रीम में क्यूपॉइंट डालने के लिए, वापस मिली वैल्यू का इस्तेमाल करें.

ऑफ़सेट समय के लिए संभावित वैल्यू की गिनती इस रेंज से की जा सकती है:

[(elapsed_time - broadcast_delay + Δ), (elapsed_time - Δ)]

जब YouTube सटीक रूप से कोई क्यूपॉइंट नहीं डाल पाता है, तो Δ संभावित टाइम ऑफ़सेट के शुरू और खत्म होने पर पांच सेकंड का बफ़र होता है. उदाहरण के लिए:

  • ब्रॉडकास्ट में पांच मिनट का टेस्ट फ़ेज़ होता है.
  • मॉनिटर स्ट्रीम के बाद, ब्रॉडकास्ट स्ट्रीम में 60 सेकंड की देरी होती है.
  • ब्रॉडकास्टर, ब्रॉडकास्ट के live स्टेटस में ट्रांज़िशन होने के चार मिनट बाद, क्यूपॉइंट डाल रहा है. (यह ब्रॉडकास्ट स्ट्रीम दिखने के तीन मिनट बाद होता है.)

इस मामले में, ऑफ़सेट समय की संभावित रेंज [(485,000), (535,000)] है.

ये समय मिलीसेकंड में बताए जाते हैं और इनका हिसाब नीचे दी गई वैल्यू के हिसाब से लगाया जाता है:

  • elapsed_time=540000liveBroadcasts.cuepoint तरीके को कॉल करने पर, मॉनिटर स्ट्रीम नौ मिनट (540 सेकंड, 54,0000 मिलीसेकंड) तक चलती है.
  • broadcast_delay=60000 – ब्रॉडकास्ट स्ट्रीम में 60 सेकंड या 60, 000 मिलीसेकंड की देरी होती है.
  • Δ=5000 – पांच सेकंड का बफ़र, जब क्यूपॉइंट को भरोसेमंद तरीके से नहीं डाला जा सकता.

समस्या का हल और गड़बड़ी ठीक करना

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

  • जब कोई ब्रॉडकास्ट एक स्थिति से दूसरी में जाता है, तो हो सकता है कि कुछ समय के लिए ब्रॉडकास्ट को कोई दूसरी स्थिति के साथ असाइन कर दिया जाए. ऐसा तब होता है, जब YouTube, ट्रांज़िशन से जुड़ी कार्रवाइयां पूरी कर लेता है. उदाहरण के लिए, अगर आप ब्रॉडकास्ट की स्थिति को ready से testing में बदलने के लिए liveBroadcasts.transition अनुरोध भेजते हैं, तो YouTube, ब्रॉडकास्ट की स्थिति को testStarting पर सेट कर देगा. इसके बाद, स्थिति में बदलाव से जुड़ी कार्रवाइयां पूरी करेगा. उन सभी कार्रवाइयों के पूरे होने के बाद, YouTube, ब्रॉडकास्ट की स्थिति को testing पर अपडेट कर देगा. ऐसा करने पर, यह बताया जाएगा कि ट्रांज़िशन पूरा हो गया है.

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

    liveBroadcasts.transition तरीके के दस्तावेज़ में बताया गया है कि किसी तरीके को कॉल करने से पहले, आपको यह पुष्टि करनी होगी कि आपके ब्रॉडकास्ट से जुड़ी स्ट्रीम की status.streamStatus प्रॉपर्टी की वैल्यू active है.