paint-brush
अधिकृत लाइव स्ट्रीम प्लेबैक के लिए एक निजी चैनल बनाने के लिए Amazon IVS का उपयोग करनाद्वारा@amazonivs
549 रीडिंग
549 रीडिंग

अधिकृत लाइव स्ट्रीम प्लेबैक के लिए एक निजी चैनल बनाने के लिए Amazon IVS का उपयोग करना

द्वारा Amazon Interactive Video Service (IVS) 6m2023/02/08
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

अमेज़ॅन इंटरएक्टिव वीडियो सर्विस (अमेज़ॅन आईवीएस) निजी चैनलों का समर्थन करता है। ये चैनल प्लेबैक को उन दर्शकों तक सीमित कर देंगे जिन्होंने एक टोकन प्राप्त किया है जो एक निजी कुंजी के साथ हस्ताक्षरित है और एक सार्वजनिक कुंजी के साथ सत्यापित है। हम देखेंगे कि प्लेबैक प्राधिकरण को कैसे सक्षम करें, प्लेबैक कुंजी जोड़ी बनाएं, टोकन उत्पन्न करें, और एक निजी स्ट्रीम चलाएं।
featured image - अधिकृत लाइव स्ट्रीम प्लेबैक के लिए एक निजी चैनल बनाने के लिए Amazon IVS का उपयोग करना
Amazon Interactive Video Service (IVS)  HackerNoon profile picture
0-item

हमने इस ब्लॉग पर Amazon इंटरएक्टिव वीडियो सर्विस (Amazon IVS) के साथ लाइव स्ट्रीमिंग अनुभव बनाने के कई अलग-अलग तरीकों पर ध्यान दिया है, लेकिन उन सभी उदाहरणों ने अब तक सार्वजनिक चैनलों पर ध्यान केंद्रित किया है, जिन्हें बिना किसी प्लेबैक प्राधिकरण के कोई भी देख सकता है। सत्यापित करें कि दर्शक को लाइव स्ट्रीम देखने की अनुमति है। कई लाइव स्ट्रीमिंग यूजर जनरेटेड कंटेंट (यूजीसी) प्लेटफॉर्म को स्ट्रीम देखने के लिए किसी प्राधिकरण की आवश्यकता नहीं होती है, लेकिन ऐसे उपयोग मामले हैं जहां हम अपने स्ट्रीम व्यूअर को अपने दर्शकों के एक सबसेट तक सीमित करना चाहते हैं। उदाहरण के लिए, हो सकता है कि हमारे सामग्री निर्माता अपने द्वारा उत्पादित सामग्री के लिए सदस्यता शुल्क लेना चाहते हों। या, शायद स्ट्रीम सामग्री के लिए लाइसेंसिंग की सीमाएँ हैं जो कुछ जनसांख्यिकी या भौगोलिक स्थानों पर वितरण को प्रतिबंधित करती हैं। उपयोग के मामलों को संबोधित करने के लिए जहां प्लेटफॉर्म को प्लेबैक प्राधिकरण लागू करना चाहिए, Amazon IVS निजी चैनलों का समर्थन करता है। ये चैनल प्लेबैक को उन दर्शकों तक सीमित कर देंगे जिन्होंने एक टोकन प्राप्त किया है जो एक निजी कुंजी के साथ हस्ताक्षरित है और एक सार्वजनिक कुंजी के साथ सत्यापित है। इस पोस्ट में, हम देखेंगे कि प्लेबैक प्राधिकरण को कैसे सक्षम किया जाए, प्लेबैक कुंजी जोड़ी कैसे बनाई जाए, एक टोकन उत्पन्न किया जाए और एक निजी स्ट्रीम कैसे चलाया जाए।

एक निजी चैनल बनाना

इस कार्यप्रवाह में पहला कदम एक निजी चैनल बनाना है। एक निजी चैनल बनाना एक सार्वजनिक चैनल बनाने के समान है - प्लेबैक प्राधिकरण को सक्षम करने के लिए चैनल बनाते समय एकमात्र अंतर एक सेटिंग है। हम Amazon IVS कंसोल के माध्यम से, AWS CLI के माध्यम से, या किसी भी AWS SDK के माध्यम से प्लेबैक प्राधिकरण को सक्षम कर सकते हैं।

आइए Amazon IVS कंसोल के माध्यम से एक निजी चैनल बनाने का तरीका देखें। कंसोल में चैनलों की सूची में, चैनल बनाएं क्लिक करें.

अमेज़न आईवीएस चैनल सूची

चैनल बनाएं पृष्ठ पर, एक चैनल नाम दर्ज करें (#1), कस्टम कॉन्फ़िगरेशन (#2) चुनें, और वीडियो प्लेबैक के लिए टोकन-प्राधिकरण आवश्यकता सक्षम करें चालू करें (#3)।

प्लेबैक प्राधिकरण सक्षम करना

यदि आप चैनल बनाने के लिए सीएलआई का उपयोग करना पसंद करते हैं, तो आप --authorized विकल्प जोड़ सकते हैं।

 $ aws ivs create-channel --name demo-private-channel --latency-mode LOW --type STANDARD --authorized


वास्तव में, आप अपने उपयोगकर्ता के चैनल बनाने के लिए शायद AWS SDK का उपयोग करने जा रहे हैं। इस मामले में, आप authorized प्लेबैक के लिए सेट करने के लिए उचित तर्क निर्धारित करने के लिए अपनी पसंदीदा भाषा के लिए एडब्ल्यूएस एसडीके दस्तावेज का उल्लेख कर सकते हैं। उदाहरण के लिए, यहाँ JavaScript v3 के लिए AWS SDK के लिए CreateChannelCommandInput के दस्तावेज़ दिए गए हैं जो बताते हैं कि चैनल बनाते समय हम एक बूलियन authorized संपत्ति सेट कर सकते हैं।

अब जब हमने प्लेबैक प्राधिकरण को सक्षम कर दिया है, अगर हम चैनल पर प्रसारण करते हैं और प्लेबैक टोकन को जनरेट और पास किए बिना लाइव प्लेबैक देखने का प्रयास करते हैं, तो हमें प्लेबैक त्रुटि प्राप्त होगी। यहाँ Amazon IVS प्लेयर SDK का उपयोग करके प्लेबैक का एक उदाहरण दिया गया है जहाँ हमने प्लेबैक त्रुटियों को पकड़ने के लिए एक ERROR श्रोता जोड़ा है।

 const streamUrl = '[private channel Playback Url]'; const ivsPlayer = IVSPlayer.create(); ivsPlayer.attachHTMLVideoElement(document.getElementById('video-player')); ivsPlayer.load(streamUrl); ivsPlayer.play(); ivsPlayer.addEventListener(IVSPlayer.PlayerEventType.ERROR, (err) => { console.log(err); });


किसी निजी चैनल की ओर इंगित किए जाने पर इसे ब्राउज़र में चलाने से कंसोल में निम्न त्रुटि लॉग हो जाएगी।

 { "type": "ErrorAuthorization", "code": 7, "source": "MasterPlaylist", "message": "invalid_playback_auth_token" }


यह पुष्टि करता है कि हमारा चैनल वास्तव में निजी है, और प्लेबैक को अधिकृत करने के लिए प्लेबैक यूआरएल के साथ जनरेट और पास करने के लिए एक token की आवश्यकता होती है।

प्लेबैक कुंजी बनाना

इससे पहले कि हम प्लेबैक टोकन उत्पन्न कर सकें, हमें एक निजी/सार्वजनिक कुंजी जोड़ी बनानी होगी और इसे Amazon IVS कंसोल पर अपलोड करना होगा। इस कुंजी जोड़ी का उपयोग JWT टोकन उत्पन्न करने के लिए किया जाएगा जो कि निजी कुंजी के साथ हस्ताक्षरित है, और प्लेबैक को अधिकृत करने के लिए सार्वजनिक कुंजी के साथ सत्यापित है।

Amazon IVS कंसोल के साथ प्लेबैक कुंजियों को प्रबंधित करने के लिए, बाएं नेविगेशन साइडबार में प्लेबैक कुंजियों का चयन करें।

हाइलाइट किए गए प्लेबैक कुंजी लिंक के साथ कंसोल नेविगेशन

हम या तो कंसोल के साथ एक कुंजी बना सकते हैं, या मैन्युअल रूप से अपनी स्थानीय मशीन पर OpenSSL ऑफ़लाइन के साथ बना सकते हैं। सीधे कंसोल में कुंजी जोड़ी बनाने के लिए। इसके लिए क्रिएट प्लेबैक की पर क्लिक करें।

प्लेबैक कुंजी लिंक बनाएं

कुंजी को एक नाम दें और बनाएं क्लिक करें.

प्लेबैक कुंजी संवाद बनाएँ

इस जोड़ी की सार्वजनिक कुंजी आपके AWS खाते में सहेजी गई है और इसका उपयोग किसी भी प्लेबैक अनुरोध को सत्यापित करने के लिए किया जाएगा जिसमें निजी कुंजी के साथ हस्ताक्षरित टोकन शामिल है। कुंजी जोड़ी उत्पन्न करने के लिए Amazon IVS कंसोल का उपयोग करते समय, निजी कुंजी तुरंत आपकी मशीन पर डाउनलोड हो जाती है और कंसोल में सहेजी नहीं जाती है या आगे डाउनलोड के लिए उपलब्ध नहीं होती है।

एक कुंजी जोड़ी ऑफ़लाइन बनाना

यदि आप अपनी स्वयं की कुंजी जोड़ी बनाना पसंद करते हैं, तो आप वह ऑफ़लाइन कर सकते हैं और फिर सार्वजनिक कुंजी को Amazon IVS कंसोल में आयात कर सकते हैं। यहाँ OpenSSL के साथ एक प्रमुख जोड़ी बनाने का एक उदाहरण दिया गया है।

 $ openssl ecparam -name secp384r1 -genkey -noout -out demo-private-channel-private-key-1.pem $ openssl ec -in demo-private-channel-private-key-1.pem -pubout -out demo-private-channel-public-key-1.pem


सार्वजनिक कुंजी आयात करने के लिए, प्लेबैक कुंजी सूची पृष्ठ पर आयात पर क्लिक करें।

आयात कुंजी बटन

आयातित कुंजी को एक नाम दें, और सार्वजनिक कुंजी फ़ाइल के लिए ब्राउज़ करें (या सार्वजनिक कुंजी फ़ाइल सामग्री पेस्ट करें)।

आयात कुंजी संवाद

यह एडब्ल्यूएस सीएलआई के माध्यम से भी किया जा सकता है:

 $ aws ivs \ import-playback-key-pair \ --name demo-private-channel-playback-key-1 \ --public-key-material "`cat /path/to/your/public-key.pem`"


या एडब्ल्यूएस एसडीके (जावास्क्रिप्ट उदाहरण के लिए डॉक्स ) के माध्यम से।

निजी चैनल प्लेबैक

अब जबकि हमने एक निजी चैनल और एक प्लेबैक कुंजी युग्म बना लिया है, हम हस्ताक्षरित प्लेबैक प्राधिकरण टोकन उत्पन्न करने के लिए तैयार हैं। आपके आवेदन में, आपका व्यावसायिक तर्क तय करेगा कि किन उपयोगकर्ताओं को प्राधिकरण टोकन दिया जाना चाहिए। जैसा कि ऊपर उल्लेख किया गया है, हो सकता है कि आपका एप्लिकेशन लॉजिक पहले जाँच करे कि उपयोगकर्ता डेटाबेस से क्वेरी करके चैनल का एक वैध ग्राहक है। या, भौगोलिक प्रतिबंधों के मामले में, शायद आपको यह सुनिश्चित करने के लिए दर्शक का आईपी पता देखना होगा कि वह उस क्षेत्र से संबद्ध है जो स्ट्रीम को देखने में सक्षम है। सटीक कार्यान्वयन अलग-अलग होगा, लेकिन एक बार जब आप यह निर्धारित कर लेते हैं कि क्या दर्शक वास्तव में स्ट्रीम देखने के लिए अधिकृत है, तो आप नीचे वर्णित टोकन जनरेशन विधि के साथ आगे बढ़ सकते हैं।

सावधान: बैकएंड पर आप जिस भाषा का उपयोग कर रहे हैं, उसके आधार पर टोकन जेनरेशन अलग-अलग होगी। आवश्यकताओं के विवरण के लिए उपयोगकर्ता मार्गदर्शिका देखें।

Node.js के साथ एक टोकन उत्पन्न करने के लिए, हम jsonwebtoken लाइब्रेरी ( डॉक्स ) का उपयोग कर सकते हैं। यह लाइब्रेरी प्रक्रिया को आसान बनाएगी और हमें Amazon IVS की आवश्यकता के अनुसार SHA-384 साइनिंग एल्गोरिद्म के साथ अपने पेलोड पर हस्ताक्षर करने की अनुमति देगी। हमारे पेलोड में चैनल एआरएन होना चाहिए, एक विशिष्ट डोमेन (या सभी डोमेन के लिए * ) और एक टोकन समाप्ति टाइमस्टैम्प के लिए प्लेबैक को सीमित करने के लिए एक access-control-origin । पेलोड पर हस्ताक्षर करने के लिए, हम इसे नीचे के रूप में स्वरूपित करेंगे और उस निजी कुंजी का उपयोग करेंगे जिसे हमने ऊपर बनाया और आयात किया था।

नोट: टोकन का उपयोग निजी चैनल पर प्लेबैक शुरू करने के लिए किया जाता है, इसलिए समाप्ति अवधि केवल टोकन जनरेशन और प्लेबैक प्रारंभ के बीच के समय पर लागू होती है। यह उस समय से संबंधित नहीं है जब उपयोगकर्ता किसी दिए गए स्ट्रीम को चला सकता है। प्लेबैक अधिकृत होने के बाद, यह तब तक जारी रह सकता है जब तक कि उपयोगकर्ता वेब पेज को डिस्कनेक्ट या पुनः लोड नहीं करता।

यहाँ Node.js का उपयोग करके बैकएंड (एक माइक्रोसर्विस या सर्वर रहित एप्लिकेशन के माध्यम से) पर एक टोकन उत्पन्न करने का एक तरीका है।

 import jwt from "jsonwebtoken"; const getToken = () => { const privateChannelArn = process.env.DEMO_PRIVATE_CHANNEL_ARN; // private channel ARN const privateChannelPrivateKey = process.env.DEMO_PRIVATE_CHANNEL_PRIVATE_KEY; // playback private key const payload = { "aws:channel-arn": privateChannelArn, "aws:access-control-allow-origin": "*", "exp": Date.now() + (60 * 1000), // expires in 1 minute }; const token = jwt.sign(payload, privateChannelPrivateKey, { algorithm: 'ES384' }); return token; }


हमारे फ्रंटएंड में, हम बैकएंड से टोकन को पुनः प्राप्त कर सकते हैं और इसे निजी चैनल के प्लेबैक यूआरएल में जोड़ सकते हैं। नीचे दिए गए उदाहरण में, मैंने संक्षिप्तता के लिए प्लेबैक यूआरएल ( streamUrl ) को छोटा कर दिया है।

 const streamUrl = `https://[truncated].m3u8?token=${token}` const ivsPlayer = IVSPlayer.create(); ivsPlayer.attachHTMLVideoElement(document.getElementById('video-player')); ivsPlayer.load(streamUrl); ivsPlayer.play();


सारांश

इस पोस्ट में हमने निजी चैनल बनाने, प्लेबैक कीपेयर बनाने और आयात करने और प्लेबैक प्राधिकरण के लिए JWT टोकन बनाने का तरीका सीखा। निजी चैनलों के बारे में अधिक जानने के लिए, उपयोगकर्ता मार्गदर्शिका देखें।