सीधे सामग्री पर जाएँ

Kick क्लिप और VOD: लिंक डाउनलोडर को क्या बताता है

आप जो लिंक पेस्ट करते हैं, उसके हिसाब से Kick तीन अलग सवालों के जवाब देता है: क्लिप, पिछला प्रसारण, या ऐसा चैनल जो अभी संयोग से लाइव है। डाउनलोडर पहले URL पढ़ता है और सही चुनाव करता है।

Kick का अपना पता ढाँचा ही सबसे साफ़ नक़्शा है कि आपके हाथ में क्या है। क्लिप एक छोटा, काटा-छाँटा पल है। VOD पूरा पिछला प्रसारण है। चैनल पेज इनमें से कोई नहीं, और अगर स्ट्रीमर उस वक्त लाइव है, तो डाउनलोड करने को कुछ नहीं — लाइव स्ट्रीम का कोई अंत नहीं होता, इसलिए कोई फ़ाइल नहीं।

तीन लिंक, और हर एक क्या बनता है

लिंक का रूपरिज़ॉल्वर क्या करता है
kick.com/<channel>/clips/clip_…क्लिप API पढ़ता है और क्लिप की मूल क्वालिटी लौटाता है।
kick.com/<channel>/videos/<id> और /video/<id>वीडियो API पढ़ता है और VOD की मास्टर प्लेलिस्ट में मौजूद हर रेंडिशन की सूची बनाता है।
kick.com/<channel>चैनल की हाल की VOD की सूची बनाता है; लाइव चैनल इसके बजाय live लौटाता है।
सिर्फ़ क्लिप आईडीपहले चैनल माँगता है (need_channel), क्योंकि Kick की क्लिप API को दोनों चाहिए।

क्लिप आईडी का रूप तय है — clip_ के बाद ULID जैसा कोड — इसलिए रिज़ॉल्वर बिना किसी नेटवर्क कॉल के उसे पहचान लेता है। अकेली आईडी काफ़ी नहीं है; Kick की API पाथ में चैनल चाहती है, इसीलिए सिर्फ़ आईडी पेस्ट करने पर यह और माँगता है।

क्वालिटी कहाँ से आती हैं

VOD के लिए Kick एक HLS मास्टर प्लेलिस्ट प्रकाशित करता है: एक छोटी फ़ाइल जिसमें हर रेंडिशन की सूची होती है, हर एक के अपने रेज़ोल्यूशन, बैंडविड्थ और फ़्रेम रेट के साथ। रिज़ॉल्वर वही मास्टर पढ़ता है और कुछ नहीं — न फ़्रैगमेंट डाउनलोड करता है, न Kick से मर्ज की हुई फ़ाइल माँगता है, क्योंकि Kick वैसी देता ही नहीं।

क्लिप सरल हैं: उनमें आमतौर पर एक ही फ़ाइल उस क्वालिटी में होती है जिसमें क्लिप काटी गई थी, इसीलिए क्लिप डाउनलोड में शायद ही कभी कुछ चुनना पड़ता है।

लाइव स्ट्रीम क्यों अस्वीकार होती हैं

लाइव स्ट्रीम एक चलती खिड़की है, फ़ाइल नहीं। Kick लाइव चैनल को तीन जगह लाइव बताता है — VOD ऑब्जेक्ट, चैनल की वीडियो सूची और खुद चैनल पेज — और रिज़ॉल्वर तीनों को एक ही जवाब में बदल देता है: live। इसके बजाय कोई क्लिप या VOD आज़माएँ।

दो और हालतें गड़बड़ जैसी लगती हैं, पर हैं नहीं: processing का मतलब है कि प्रसारण कुछ मिनट पहले खत्म हुआ और Kick ने VOD काटना पूरा नहीं किया; और no_source का मतलब है कि VOD हटा दी गई या उसकी अवधि खत्म हो गई। दोनों Kick की हालत हैं, डाउनलोड की विफलता नहीं।

कुछ भी सेव नहीं होता

Kick के CDN access-control-allow-origin: * भेजते हैं, इसलिए ब्राउज़र फ़ाइल सीधे पढ़ सकता है। डाउनलोड पेज में ही चलता है, सीधे Kick के एज से आपकी डिस्क तक; रिज़ॉल्वर ने सिर्फ़ मेटाडेटा संभाला। कुछ भी री-एनकोड, वॉटरमार्क या सेव नहीं होता।

एक काम की बात: लंबी VOD डेस्कटॉप ब्राउज़र में सेव करना बेहतर है, जहाँ फ़ाइल सीधे डिस्क पर स्ट्रीम होती है। फ़ोन पर कई घंटे का प्रसारण डाउनलोड के दौरान मेमोरी में रखा जाता है, और फ़ाइल पूरी होने से पहले ब्राउज़र हार सकता है।

छोटी बात

सवाल

क्या मैं चलती हुई Kick लाइव स्ट्रीम डाउनलोड कर सकता हूँ?

नहीं। लाइव स्ट्रीम का न अंत होता है न फ़ाइल; Kick उसे लाइव बताता है और रिज़ॉल्वर अस्वीकार कर देता है। प्रसारण खत्म होने और Kick के प्रोसेसिंग पूरा करने के बाद VOD लिंक काम करता है।

VOD में कई क्वालिटी दिखती हैं पर क्लिप में सिर्फ़ एक, क्यों?

VOD के साथ एक HLS मास्टर प्लेलिस्ट आती है जिसमें Kick के एनकोड किए हर रेंडिशन होते हैं, इसलिए रिज़ॉल्वर हर एक की सूची बना सकता है। क्लिप एक ही फ़ाइल से काटी जाती है, इसलिए आमतौर पर वही एक क्वालिटी देने को होती है।

`source` क्वालिटी का क्या मतलब है?

यह खुद मास्टर प्लेलिस्ट है, तब दी जाती है जब अलग-अलग रेंडिशन पढ़े न जा सकें। वीडियो वही है, बस हर रेज़ोल्यूशन का अलग ब्यौरा नहीं।

इस लेख के टूल

सभी लेख