LiveStreams

liveStream रिसॉर्स में, YouTube पर ट्रांसमिट की जा रही वीडियो स्ट्रीम के बारे में जानकारी होती है. स्ट्रीम में वह कॉन्टेंट होता है जिसे YouTube के उपयोगकर्ताओं को ब्रॉडकास्ट किया जाएगा. बनाने के बाद, liveStream संसाधन को एक या उससे ज़्यादा liveBroadcast संसाधनों से बंधा जा सकता है.

तरीके

एपीआई, liveStreams संसाधनों के लिए इन तरीकों का इस्तेमाल करता है:

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

संसाधन का रेप्रज़ेंटेशन

यहां दिया गया JSON स्ट्रक्चर, liveStreams संसाधन का फ़ॉर्मैट दिखाता है:

{
  "kind": "youtube#liveStream",
  "etag": etag,
  "id": string,
  "snippet": {
    "publishedAt": datetime,
    "channelId": string,
    "title": string,
    "description": string,
    "isDefaultStream": boolean
  },
  "cdn": {
    "ingestionType": string,
    "ingestionInfo": {
      "streamName": string,
      "ingestionAddress": string,
      "backupIngestionAddress": string
    },
    "resolution": string,
    "frameRate": string
  },
  "status": {
    "streamStatus": string,
    "healthStatus": {
      "status": string,
      "lastUpdateTimeSeconds": unsigned long,
      "configurationIssues": [
        {
          "type": string,
          "severity": string,
          "reason": string,
          "description": string
        }
      ]
    }
  },
  "contentDetails": {
    "closedCaptionsIngestionUrl": string,
    "isReusable": boolean
  }
}

प्रॉपर्टी

इस टेबल में, इस संसाधन में दिखने वाली प्रॉपर्टी के बारे में बताया गया है:

प्रॉपर्टी
kind string
एपीआई संसाधन के टाइप की पहचान करता है. वैल्यू youtube#liveStream होगी.
etag etag
इस संसाधन का Etag.
id string
यह वह आईडी होता है जिसे YouTube, स्ट्रीम की खास पहचान करने के लिए असाइन करता है.
snippet object
snippet ऑब्जेक्ट में स्ट्रीम की बुनियादी जानकारी होती है. इसमें स्ट्रीम का चैनल, टाइटल, और ब्यौरा शामिल होता है.
snippet.publishedAt datetime
स्ट्रीम बनाने की तारीख और समय. वैल्यू को ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) फ़ॉर्मैट में दिया गया है.
snippet.channelId string
यह एक आईडी होता है. इसका इस्तेमाल YouTube, स्ट्रीम करने वाले चैनल की खास ढंग से पहचान करने के लिए करता है.
snippet.title string
स्ट्रीम का टाइटल. वैल्यू, 1 से 128 वर्णों की होनी चाहिए.
snippet.description string
स्ट्रीम का ब्यौरा. वैल्यू 10,000 वर्णों से ज़्यादा नहीं हो सकती.
snippet.isDefaultStream boolean
इस प्रॉपर्टी का इस्तेमाल 1 सितंबर, 2020 या इसके बाद नहीं किया जा सकेगा. इसके बाद, जब चैनल पर लाइव स्ट्रीम करने की सुविधा चालू होगी, तब YouTube डिफ़ॉल्ट स्ट्रीम और डिफ़ॉल्ट ब्रॉडकास्ट बनाना बंद कर देगा. ज़्यादा जानकारी के लिए, हटाए गए टैग और एट्रिब्यूट से जुड़ी सूचना देखें.
इस प्रॉपर्टी से पता चलता है कि यह स्ट्रीम, चैनल के लिए डिफ़ॉल्ट स्ट्रीम है या नहीं.

डिफ़ॉल्ट स्ट्रीम कैसे काम करती हैं

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

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

जब कोई स्ट्रीम खत्म हो जाती है, तो YouTube उस ब्रॉडकास्ट को YouTube वीडियो में बदल देता है और वीडियो को एक YouTube वीडियो आईडी असाइन करता है. कन्वर्ज़न पूरा होने के बाद, वीडियो को चैनल पर अपलोड किए गए वीडियो की सूची में शामिल कर लिया जाता है. ब्रॉडकास्ट खत्म होने के तुरंत बाद, वीडियो उपलब्ध नहीं होता. साथ ही, वीडियो उपलब्ध होने में लगने वाला समय, ब्रॉडकास्ट की कुल अवधि पर निर्भर करता है.
cdn object
cdn ऑब्जेक्ट, लाइव स्ट्रीम के कॉन्टेंट डिलीवरी नेटवर्क (सीडीएन) की सेटिंग तय करता है. इन सेटिंग से यह पता चलता है कि YouTube पर आपका कॉन्टेंट किस तरह से स्ट्रीम किया जाता है.
cdn.format string
यह प्रॉपर्टी 18 अप्रैल, 2016 से बंद कर दी गई है. साथ ही, 17 अगस्त, 2020 से यह काम नहीं करेगी. इस तारीख के बाद भी इस प्रॉपर्टी का इस्तेमाल करने वाले अनुरोध काम नहीं करेंगे.

इसके बजाय, फ़्रेम रेट और रिज़ॉल्यूशन की जानकारी अलग-अलग देने के लिए, cdn.frameRate और cdn.resolution प्रॉपर्टी का इस्तेमाल करें.
cdn.ingestionType string
वीडियो स्ट्रीम को ट्रांसमिट करने के लिए इस्तेमाल किया जाने वाला तरीका या प्रोटोकॉल.

इस प्रॉपर्टी के लिए ये वैल्यू मान्य हैं:
  • dash
  • hls
  • rtmp (इसमें आरटीएमपीएस शामिल है)
cdn.ingestionInfo object
ingestionInfo ऑब्जेक्ट में YouTube की दी गई वह जानकारी होती है जो आपको YouTube पर स्ट्रीम करने के लिए ज़रूरी होती है.
cdn.ingestionInfo.streamName string
वीडियो स्ट्रीम को YouTube से असाइन किया गया नाम.
cdn.ingestionInfo.ingestionAddress string
वीडियो डालने के लिए इस्तेमाल किया जाने वाला मुख्य यूआरएल. आरटीएमपी, DASH या एचएलएस का इस्तेमाल करने पर, आपको YouTube पर वीडियो स्ट्रीम करने के लिए इसका इस्तेमाल करना चाहिए. आपको इस यूआरएल पर वीडियो स्ट्रीम करना होगा.

वीडियो स्ट्रीम को कोड में बदलने के लिए, जिस ऐप्लिकेशन या टूल का इस्तेमाल किया जाता है उसके आधार पर, आपको स्ट्रीम का यूआरएल और स्ट्रीम का नाम अलग-अलग डालना पड़ सकता है. इसके अलावा, आपको उन्हें इस फ़ॉर्मैट में जोड़ना पड़ सकता है:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.backupIngestionAddress string
बैकअप डेटा डालने के लिए यूआरएल. आरटीएमपी, DASH या एचएलएस का इस्तेमाल करने पर, आपको YouTube पर वीडियो स्ट्रीम करने के लिए इसका इस्तेमाल करना चाहिए. आपके पास इस यूआरएल पर, ingestionAddress को भेजे जा रहे कॉन्टेंट को एक साथ स्ट्रीम करने का विकल्प है.
cdn.ingestionInfo.rtmpsIngestionAddress string
डेटा डालने के लिए मुख्य यूआरएल. RTMPS का इस्तेमाल करने पर, आपको YouTube पर वीडियो स्ट्रीम करने के लिए इसका इस्तेमाल करना चाहिए. आपको वीडियो को इस यूआरएल पर स्ट्रीम करना होगा.

वीडियो स्ट्रीम को कोड में बदलने के लिए, जिस ऐप्लिकेशन या टूल का इस्तेमाल किया जाता है उसके आधार पर, आपको स्ट्रीम का यूआरएल और स्ट्रीम का नाम अलग-अलग डालना पड़ सकता है. इसके अलावा, आपको उन्हें इस फ़ॉर्मैट में जोड़ना पड़ सकता है:
STREAM_URL/STREAM_NAME
cdn.ingestionInfo.rtmpsBackupIngestionAddress string
डेटा का बैकअप लेने के लिए इस्तेमाल किया जाने वाला यूआरएल. RTMPS का इस्तेमाल करने पर, आपको YouTube पर वीडियो स्ट्रीम करने के लिए इसका इस्तेमाल करना चाहिए.
cdn.resolution string
इनबाउंड वीडियो डेटा का रिज़ॉल्यूशन.

इस प्रॉपर्टी के लिए मान्य वैल्यू ये हैं:
  • 240p
  • 360p
  • 480p
  • 720p
  • 1080p
  • 1440p
  • 2160p
  • variable: इस सेटिंग का इस्तेमाल करके, यह बताएं कि YouTube को स्ट्रीम किए जा रहे वीडियो के रिज़ॉल्यूशन का पता अपने-आप चलना चाहिए. आपको cdn.frameRate को variable पर भी सेट करना होगा.
    एन्कोडर की सुझाई गई सेटिंग के लिए, YouTube सहायता केंद्र पर जाएं.
cdn.frameRate string
इनबाउंड वीडियो डेटा का फ़्रेम रेट.

इस प्रॉपर्टी के लिए मान्य वैल्यू ये हैं:
  • 30fps
  • 60fps
  • variable: इस सेटिंग का इस्तेमाल करके, यह बताएं कि YouTube को स्ट्रीम किए जा रहे वीडियो के फ़्रेम रेट का पता अपने-आप लगाना चाहिए. आपको cdn.resolution को variable पर भी सेट करना होगा.
    एन्कोडर की सुझाई गई सेटिंग के लिए, YouTube सहायता केंद्र पर जाएं.
status object
status ऑब्जेक्ट में, लाइव स्ट्रीम की स्थिति की जानकारी होती है.
status.streamStatus string
स्ट्रीम की स्थिति.

इस प्रॉपर्टी के लिए मान्य वैल्यू ये हैं:
  • active – स्ट्रीम चालू है. इसका मतलब है कि उपयोगकर्ता को स्ट्रीम से डेटा मिल रहा है.
  • created – स्ट्रीम बनाई गई है, लेकिन इसमें सीडीएन की मान्य सेटिंग नहीं हैं.
  • error – स्ट्रीम में कोई गड़बड़ी है.
  • inactive – स्ट्रीम बंद है. इसका मतलब है कि उपयोगकर्ता को स्ट्रीम से डेटा नहीं मिल रहा है.
  • ready – स्ट्रीम में मान्य सीडीएन सेटिंग हैं.
status.healthStatus object
इस ऑब्जेक्ट में, लाइव स्ट्रीम की परफ़ॉर्मेंस की जानकारी होती है. इसका इस्तेमाल, स्ट्रीमिंग से जुड़ी समस्याओं की पहचान करने, उनका पता लगाने, और उन्हें हल करने के लिए किया जा सकता है.
status.healthStatus.status string
इस स्ट्रीम का स्टेटस कोड.

इस प्रॉपर्टी के लिए मान्य वैल्यू ये हैं:
  • good – कॉन्फ़िगरेशन से जुड़ी ऐसी कोई समस्या नहीं है जिसकी गंभीरता warning या उससे ज़्यादा हो.
  • ok – कॉन्फ़िगरेशन से जुड़ी ऐसी कोई समस्या नहीं है जिसकी गंभीरता error हो.
  • bad – स्ट्रीम में कुछ समस्याएं हैं, जिनकी गंभीरता error है.
  • noData – YouTube के लाइव स्ट्रीमिंग बैकएंड सर्वर के पास, स्ट्रीम की स्थिति के बारे में कोई जानकारी नहीं होती.
status.healthStatus.lastUpdateTimeSeconds unsigned long
स्ट्रीम की परफ़ॉर्मेंस का स्टेटस पिछली बार कब अपडेट किया गया था. इस वैल्यू में, सेकंड में यूनिक्स टाइमस्टैंप दिखता है.
status.healthStatus.configurationIssues[] list
इस ऑब्जेक्ट में, स्ट्रीम पर असर डालने वाली कॉन्फ़िगरेशन से जुड़ी समस्याओं की सूची होती है.
status.healthStatus.configurationIssues[].type string
इससे पता चलता है कि स्ट्रीम पर किस तरह की गड़बड़ी का असर पड़ा है.
status.healthStatus.configurationIssues[].severity string
इससे पता चलता है कि स्ट्रीम में समस्या कितनी गंभीर है.

इस प्रॉपर्टी की मान्य वैल्यू ये हैं:
  • info – वीडियो को दर्शकों को ब्रॉडकास्ट किया जाता है. इससे परफ़ॉर्मेंस पर कोई असर नहीं पड़ता.
  • warning – वीडियो दर्शकों को ब्रॉडकास्ट किया जाता है, लेकिन उसकी परफ़ॉर्मेंस अच्छी नहीं होती.
  • error – वीडियो को दर्शकों को ब्रॉडकास्ट नहीं किया जा सकता.
status.healthStatus.configurationIssues[].reason string
समस्या के बारे में कम शब्दों में जानकारी. LiveStream संसाधनों के लिए कॉन्फ़िगरेशन से जुड़ी समस्याएं दस्तावेज़ में, कॉन्फ़िगरेशन से जुड़ी हर तरह की समस्या की वजह बताई गई है.
status.healthStatus.configurationIssues[].description string
समस्या की पूरी जानकारी. जब भी संभव हो, ब्यौरे में समस्या को हल करने का तरीका बताया जाता है. LiveStream संसाधनों के लिए कॉन्फ़िगरेशन से जुड़ी समस्याएं दस्तावेज़ में, कॉन्फ़िगरेशन से जुड़ी सभी समस्याओं के टाइप और उनसे जुड़े ब्यौरे दिए गए हैं.
contentDetails object
content_details ऑब्जेक्ट में स्ट्रीम के बारे में जानकारी होती है. इसमें सबटाइटल डालने के लिए यूआरएल भी शामिल होता है.
contentDetails.closedCaptionsIngestionUrl string
डेटा डालने का वह यूआरएल जहां इस स्ट्रीम के सबटाइटल भेजे जाते हैं.
contentDetails.isReusable boolean
इससे पता चलता है कि स्ट्रीम को फिर से इस्तेमाल किया जा सकता है या नहीं. इसका मतलब है कि इसे कई ब्रॉडकास्ट से जोड़ा जा सकता है. आम तौर पर, ब्रॉडकास्टर एक ही स्ट्रीम का इस्तेमाल कई अलग-अलग ब्रॉडकास्ट के लिए करते हैं. हालांकि, ऐसा तब होता है, जब वे ब्रॉडकास्ट अलग-अलग समय पर होते हैं.

अगर इस वैल्यू को false पर सेट किया जाता है, तो स्ट्रीम को फिर से इस्तेमाल नहीं किया जा सकेगा. इसका मतलब है कि इसे सिर्फ़ एक ब्रॉडकास्ट से बंधा जा सकता है. एक बार इस्तेमाल होने वाली स्ट्रीम और बार-बार इस्तेमाल होने वाली स्ट्रीम में ये अंतर होते हैं:
  • जिस स्ट्रीम को फिर से इस्तेमाल नहीं किया जा सकता उसे सिर्फ़ एक ब्रॉडकास्ट से जोड़ा जा सकता है.
  • अगर स्ट्रीम को फिर से इस्तेमाल नहीं किया जा सकता, तो ब्रॉडकास्ट खत्म होने के बाद, अपने-आप होने वाली प्रोसेस की मदद से उसे मिटाया जा सकता है.
  • liveStreams.list मेथड, फिर से इस्तेमाल न की जा सकने वाली स्ट्रीम की सूची नहीं दिखाता. ऐसा तब होता है, जब मेथड को कॉल करके mine पैरामीटर को true पर सेट किया जाता है. फिर से इस्तेमाल न की जा सकने वाली स्ट्रीम के लिए, संसाधन को वापस पाने के लिए इस तरीके का इस्तेमाल करने का सिर्फ़ एक ही तरीका है. इसके लिए, स्ट्रीम की पहचान करने के लिए id पैरामीटर का इस्तेमाल करें.