একটি স্ট্রিম রিকোয়েস্ট একটি লাইভস্ট্রিম ইভেন্টের জন্য একটি নতুন সেশন নিবন্ধন করে। আরও তথ্যের জন্য, 'একটি স্ট্রিম রিকোয়েস্ট করুন' দেখুন।
এই পৃষ্ঠায় স্ট্রিম অনুরোধ প্রমাণীকরণের জন্য HMAC টোকেন ব্যবহারের বিষয়ে আলোচনা করা হয়েছে।
শুরু করার আগে
- পূর্বশর্তগুলো পূরণ করুন।
- আপনার গুগল অ্যাড ম্যানেজার অ্যাকাউন্টের লাইভস্ট্রিম ইভেন্টে স্ট্রিম ক্রিয়েট অথেন্টিকেশন কীগুলো সক্রিয় করা আছে কিনা, তা নিশ্চিত করুন।
একটি HMAC টোকেন তৈরি করুন
টোকেন তৈরি করতে, নিম্নলিখিতগুলি করুন:
- আপনার স্ট্রিম সেশন অনুরোধের জন্য প্রয়োজনীয় পাথ এবং কোয়েরি প্যারামিটার সংগ্রহ করুন। সম্পূর্ণ তালিকার জন্য, পদ্ধতি: স্ট্রিম দেখুন।
আপনার প্যারামিটার কী এবং ভ্যালু স্ট্রিংগুলো একত্রিত করুন। আপনাকে অবশ্যই প্যারামিটারগুলো বর্ণানুক্রমিকভাবে সাজাতে হবে এবং টিল্ড (
~অক্ষর দিয়ে আলাদা করতে হবে, উদাহরণস্বরূপ:custom_asset_key=CUSTOM_ASSET_KEY~exp=EXPIRATION~network_code=NETWORK_CODEনিম্নলিখিতগুলি প্রতিস্থাপন করুন:
-
CUSTOM_ASSET_KEY: আবশ্যক। লাইভস্ট্রিম ইভেন্টের কাস্টম অ্যাসেট কী। -
EXPIRATION: আবশ্যক। ইউনিক্স ইপক টাইম অনুযায়ী টোকেনটির মেয়াদোত্তীর্ণের টাইমস্ট্যাম্প। -
NETWORK_CODE: আবশ্যক। এটি আপনার গুগল অ্যাড ম্যানেজার অ্যাকাউন্টের নেটওয়ার্ক কোড।
-
আপনার DAI প্রমাণীকরণ কী ব্যবহার করে টোকেন স্ট্রিংটির একটি SHA-256 হ্যাশ গণনা করুন।
হ্যাশ আউটপুটটি হেক্সাডেসিমেল ফরম্যাটে সাজান।
টোকেন স্ট্রিংটিতে স্বাক্ষর করতে, পূর্বে সংগৃহীত প্যারামিটারগুলোর শেষে স্বাক্ষরটি যুক্ত করুন:
custom_asset_key=...~hmac=HMAC_SIGNATUREআপনার DAI অথেন্টিকেশন কী ব্যবহার করে টোকেন স্ট্রিংটিকে হ্যাশ করে তৈরি করা সিগনেচারটি দিয়ে
HMAC_SIGNATUREপ্রতিস্থাপন করুন।স্বাক্ষরিত টোকেন স্ট্রিংটি নিরাপদে প্রেরণ করতে, এতে ইউআরএল-এনকোডিং প্রয়োগ করুন।
নিম্নলিখিত উদাহরণটি একটি টোকেন স্ট্রিংকে স্বাক্ষর ও এনকোড করে, যার মেয়াদ ৬০ সেকেন্ডের মধ্যে শেষ হয়ে যায়:
# 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
লাইভস্ট্রিম সেশনের অনুরোধ করতে HMAC টোকেন ব্যবহার করুন।
আপনার স্ট্রিম তৈরির অনুরোধটি একটি HMAC টোকেন দিয়ে প্রমাণীকরণ করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:
এইচএলএস
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
}
প্রতিক্রিয়ার কাঠামো এবং স্ট্যাটাস কোডগুলো বুঝতে, 'Method: stream' অংশটি দেখুন।
প্রমাণীকরণ ব্যর্থ হলে, আপনি নিম্নলিখিত ত্রুটিটি দেখতে পাবেন:
<!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
ড্যাশ
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"
}
প্রতিক্রিয়ার কাঠামো এবং স্ট্যাটাস কোডগুলো বুঝতে, 'Method: stream' অংশটি দেখুন।
প্রমাণীকরণ ব্যর্থ হলে, আপনি নিম্নলিখিত ত্রুটিটি দেখতে পাবেন:
<!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>