YouTube दस्तावेज़ के अनुसार लाइवस्ट्रीम में कैप्शन भेजने की संभावना प्रदान कर रहा है यहां . हालाँकि, यह मार्गदर्शिका Youtube Studio Classic के एक लिंक को संदर्भित करती है, जो अब मौजूद नहीं है। नए लाइव कंट्रोल रूम में, मुझे केवल उपशीर्षक के लिए एक लिंक मिल सकता है जो इस तरह दिखता है

http://upload.youtube.com/closedcaption?cid=....

और इसमें ns या sparams जैसे पैरामीटर शामिल नहीं हैं।

मैं लाइव कंट्रोल रूम के साथ कैप्शन कैसे प्रदान कर सकता हूं? अन्य पृष्ठों पर भी कुछ भ्रामक जानकारी है - क्या मैं केवल एक साधारण HTTP POST का उपयोग कर सकता हूँ या क्या मुझे समर्थित सॉफ़्टवेयर?

यदि POST का उपयोग करना संभव नहीं है, तो क्या मैं उसके लिए Livestreaming API का उपयोग कर सकता हूं?

1
Jakob Schödl 14 अप्रैल 2020, 18:07

2 जवाब

सबसे बढ़िया उत्तर

यह मेरे लिए नीचे दिए गए पायथन कोड का उपयोग करके काम करता है।

import time
import requests
from datetime  import datetime

  word = "this is caption " + str(seq)

  ytlink = "http://upload.youtube.com/closedcaption?cid=xxx-xxx-xxx-xxx="+str(seq)

  post_fields = datetime.utcnow().strftime('%Y-%m-%dT%H:%M:%S.%f')[:-3] + ' \n' + word + '\n' 

  headers = {'content-type': 'text/plain'}
  r = requests.post(url=ytlink, data=post_fields.encode('utf-8'), 
  headers=headers)

  print(ytlink)
  print(r.text)

मूल रूप से, अब दूसरों की आवश्यकता नहीं होगी।

2
Nattawu 8 मई 2020, 15:17

यह सी # के साथ भी काम करता है। (क्षमा करें, मुझे लगता है कि यह सही प्रकार का कोड उदाहरण नहीं है, मैं पहली बार कुछ भी उत्तर देने का प्रयास कर रहा हूं ...)

string CAPTION_TEXT = "This text is displayed as caption.<br>"; // note, br used for linebreak in caption
string STREAM_ID = "aaaa-bbbb-cccc-dddd-eeee";
int sequence = 1;
string url = "http://upload.youtube.com/closedcaption?cid="+STREAM_ID+"&seq="+sequence; // increment sequence every time you send
string message = dateTime.ToString("yyyy-MM-dd") + "T" +
            dateTime.ToString("HH") + ":" +
            dateTime.ToString("mm") + ":" +
            dateTime.ToString("ss.fff")+
            " region:reg1#cue1\n"+
            CAPTION_TEXT+"\n"
var content = new StringContent(message);
var client = new HttpClient();
var response = await client.PostAsync(url, content);
int statusCode = (int)response.StatusCode;
if(statusCode == "200") SUCCESS();
0
JSilvanus 27 मार्च 2021, 21:37