स्ट्रीम का अनुरोध करने पर, लाइव स्ट्रीम इवेंट के लिए एक नया सेशन रजिस्टर होता है. ज़्यादा जानकारी के लिए, स्ट्रीम करने का अनुरोध करना लेख पढ़ें
इस पेज पर, स्ट्रीम के अनुरोधों की पुष्टि करने के लिए एचएमएसी टोकन का इस्तेमाल करने के बारे में बताया गया है.
शुरू करने से पहले
- ज़रूरी शर्तें पूरी करें.
- पक्का करें कि Google Ad Manager खाते में, लाइव स्ट्रीम इवेंट के लिए स्ट्रीम बनाने के लिए पुष्टि करने वाले कुकी चालू हों.
HMAC टोकन जनरेट करना
टोकन जनरेट करने के लिए, यह तरीका अपनाएं:
- स्ट्रीम सेशन के अनुरोध के लिए ज़रूरी पाथ और क्वेरी पैरामीटर इकट्ठा करें. पूरी सूची देखने के लिए, तरीका: स्ट्रीम देखें.
अपने पैरामीटर की और वैल्यू स्ट्रिंग को मिलाएं. आपको पैरामीटर को वर्णमाला के क्रम में लगाना होगा. साथ ही, पैरामीटर को टिल्ड
~वर्ण से अलग करना होगा. उदाहरण के लिए:custom_asset_key=CUSTOM_ASSET_KEY~exp=EXPIRATION~network_code=NETWORK_CODEइनकी जगह ये डालें:
CUSTOM_ASSET_KEY: ज़रूरी है. लाइव स्ट्रीम इवेंट की कस्टम ऐसेट की कुंजी.EXPIRATION: ज़रूरी है. यूनिक्स ईपॉक टाइम में, टोकन की समयसीमा खत्म होने का टाइमस्टैंप.NETWORK_CODE: ज़रूरी है. आपके Google Ad Manager खाते का नेटवर्क कोड.
अपनी DAI पुष्टि करने वाले पासकोड का इस्तेमाल करके, टोकन स्ट्रिंग का SHA-256 हैश कैलकुलेट करें.
हैश आउटपुट को हेक्साडेसिमल फ़ॉर्मैट में दिखाओ.
टोकन स्ट्रिंग पर हस्ताक्षर करने के लिए, पहले से इकट्ठा किए गए पैरामीटर के आखिर में सिग्नेचर जोड़ें:
custom_asset_key=...~hmac=HMAC_SIGNATUREHMAC_SIGNATUREकी जगह, उस हस्ताक्षर का इस्तेमाल करें जिसे आपने DAI ऑथेंटिकेशन कुंजी का इस्तेमाल करके, टोकन स्ट्रिंग को हैश करके जनरेट किया है.साइन किए गए टोकन स्ट्रिंग को सुरक्षित तरीके से पास करने के लिए, साइन किए गए टोकन स्ट्रिंग पर यूआरएल-कोडिंग लागू करें.
यहां एक उदाहरण दिया गया है, जिसमें 60 सेकंड में खत्म होने वाली टोकन स्ट्रिंग को साइन और कोड में बदला गया है:
# Add 60 seconds to the current time
future_epoch=$((EPOCHSECONDS + 60))
echo "Current: $EPOCHSECONDS"
echo "Future: $future_epoch"
# Current: 1774478306
# Future: 1774478366
# Sample DAI stream authentication key
key="DE0E9..."
# Sort parameters in the token string
token="custom_asset_key=hls-pod-serving-redirect-auth-stream-pod~exp=1774478366~network_code=21775744923"
# Generate the token's signature.
echo -n $token | openssl dgst -sha256 -mac HMAC -macopt key:$key
# SHA2-256(stdin)= 17cdf7079b735320dbc66e4c9d677ae0380fb0ef3cf9ce90fdd55d0667574365
# Sign the token: custom_asset_key=hls-pod-serving-redirect-auth-stream-pod~exp=1774478366~network_code=21775744923~hmac=17cdf7079b735320dbc66e4c9d677ae0380fb0ef3cf9ce90fdd55d0667574365
# Encode the token: custom_asset_key%3Dhls-pod-serving-redirect-auth-stream-podexp%3D1774478366network_code%3D21775744923~hmac%3D17cdf7079b735320dbc66e4c9d677ae0380fb0ef3cf9ce90fdd55d0667574365
लाइव स्ट्रीम सेशन का अनुरोध करने के लिए, एचएमएसी टोकन का इस्तेमाल करना
एचएमएसी टोकन की मदद से, स्ट्रीम बनाने के अनुरोध की पुष्टि करने के लिए, इनमें से कोई एक तरीका अपनाएं:
एचएलएस
Authorization अनुरोध का हेडर
curl "https://dai.google.com/ssai/pods/api/v1/network/21775744923/custom_asset/hls-pod-serving-redirect-auth-stream-pod/stream" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: DCLKDAI token=custom_asset_key%3Dhls-pod-serving-redirect-auth-stream-podexp%3D1774478366network_code%3D21775744923~hmac%3D17cdf7079b735320dbc66e4c9d677ae0380fb0ef3cf9ce90fdd55d0667574365"
क्वेरी स्ट्रिंग पैरामीटर
curl "https://dai.google.com/ssai/pods/api/v1/network/21775744923/custom_asset/hls-pod-serving-redirect-auth-stream-pod/stream?auth-token=custom_asset_key%3Dhls-pod-serving-redirect-auth-stream-podexp%3D1774478366network_code%3D21775744923~hmac%3D17cdf7079b735320dbc66e4c9d677ae0380fb0ef3cf9ce90fdd55d0667574365" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded"
फ़ॉर्म डेटा फ़ील्ड
curl "https://dai.google.com/ssai/pods/api/v1/network/21775744923/custom_asset/hls-pod-serving-redirect-auth-stream-pod/stream" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "auth-token=custom_asset_key%3Dhls-pod-serving-redirect-auth-stream-podexp%3D1774478366network_code%3D21775744923~hmac%3D17cdf7079b735320dbc66e4c9d677ae0380fb0ef3cf9ce90fdd55d0667574365"
अगर अनुरोध सही से काम करता है, तो आपको यह JSON रिस्पॉन्स दिखेगा:
{
"stream_id":"6299a01b-450d-4879-a5c8-fe3cf2188aee:CBF2",
"media_verification_url":"https://dai.google.com/view/p/service/linear/stream/6299a01b-450d-4879-a5c8-fe3cf2188aee:CBF2/loc/CBF2/network/21775744923/event/C5BT3czhT2Sc7OIbM8ibqA/media/","metadata_url":"https://dai.google.com/linear/pods/hls/pa/event/C5BT3czhT2Sc7OIbM8ibqA/stream/6299a01b-450d-4879-a5c8-fe3cf2188aee:CBF2/metadata",
"session_update_url":"https://dai.google.com/linear/v1/pa/event/C5BT3czhT2Sc7OIbM8ibqA/stream/6299a01b-450d-4879-a5c8-fe3cf2188aee:CBF2/session",
"polling_frequency":10
}
जवाब के स्ट्रक्चर और स्टेटस कोड को समझने के लिए, तरीका: स्ट्रीम देखें.
पुष्टि न होने पर, आपको यह गड़बड़ी दिखेगी:
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 401 (Unauthorized)!!1</title>
...
<a href=//www.google.com/><span id=logo aria-label=Google></span></a>
<p><b>401.</b> <ins>That’s an error.</ins>
<p><ins>That’s all we know.</ins>s
DASH
Authorization अनुरोध का हेडर
curl "https://dai.google.com/ssai/pods/api/v1/network/21775744923/custom_asset/dash-pod-serving-redirect-auth-stream-pod/stream"\
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Authorization: DCLKDAI token=custom_asset_key%3Ddash-pod-serving-redirect-auth-stream-podexp%3D1772817105network_code%3D21775744923~hmac%3Dc7e10f51f544610cdda28fdee903472839bf1154701ae371c0196d8f63c8bdda"
क्वेरी स्ट्रिंग पैरामीटर
curl "https://dai.google.com/ssai/pods/api/v1/network/21775744923/custom_asset/dash-pod-serving-redirect-auth-stream-pod/stream?auth-token=custom_asset_key%3Ddash-pod-serving-redirect-auth-stream-podexp%3D1772817105network_code%3D21775744923~hmac%3Dc7e10f51f544610cdda28fdee903472839bf1154701ae371c0196d8f63c8bdda" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded"
फ़ॉर्म डेटा फ़ील्ड
curl "https://dai.google.com/ssai/pods/api/v1/network/21775744923/custom_asset/dash-pod-serving-redirect-auth-stream-pod/stream" \
-X POST \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "auth-token=custom_asset_key%3Ddash-pod-serving-redirect-auth-stream-podexp%3D1772817105network_code%3D21775744923~hmac%3Dc7e10f51f544610cdda28fdee903472839bf1154701ae371c0196d8f63c8bdda"
अगर अनुरोध सही से काम करता है, तो आपको यह JSON रिस्पॉन्स दिखेगा:
{
"stream_id": "e66568dc-cb5c-4859-b645-e12d9b5b821b:ATL",
"media_verification_url": "https://dai.google.com/view/p/service/linear/stream/e66568dc-cb5c-4859-b645-e12d9b5b821b:ATL/loc/ATL/network/21775744923/event/YMTFNxBxTR66kFv-krZHcQ/media/",
"metadata_url": "https://dai.google.com/linear/pods/dash/pa/event/YMTFNxBxTR66kFv-krZHcQ/stream/e66568dc-cb5c-4859-b645-e12d9b5b821b:ATL/metadata",
"session_update_url": "https://dai.google.com/linear/v1/pa/event/YMTFNxBxTR66kFv-krZHcQ/stream/e66568dc-cb5c-4859-b645-e12d9b5b821b:ATL/session",
"polling_frequency": 10,
"pod_manifest_url": "https://dai.google.com/linear/pods/v1/dash/event/YMTFNxBxTR66kFv-krZHcQ/stream/e66568dc-cb5c-4859-b645-e12d9b5b821b:ATL/pod/$pod-id$/manifest.mpd",
"manifest_format": "dash"
}
जवाब के स्ट्रक्चर और स्टेटस कोड को समझने के लिए, तरीका: स्ट्रीम देखें.
पुष्टि न होने पर, आपको यह गड़बड़ी दिखेगी:
<!DOCTYPE html>
<html lang=en>
<meta charset=utf-8>
<meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
<title>Error 401 (Unauthorized)!!1</title>
...
<a href=//www.google.com/><span id=logo aria-label=Google></span></a>
<p><b>401.</b> <ins>That’s an error.</ins>
<p><ins>That’s all we know.</ins>