স্ট্রিম সেশন অনুরোধগুলি প্রমাণীকরণ করুন

একটি স্ট্রিম রিকোয়েস্ট একটি লাইভস্ট্রিম ইভেন্টের জন্য সেশন নিবন্ধন করে। বিস্তারিত জানতে, 'একটি স্ট্রিম রিকোয়েস্ট করুন' দেখুন।

এই পৃষ্ঠায় স্ট্রিম অনুরোধ প্রমাণীকরণের জন্য HMAC টোকেন ব্যবহারের বিষয়ে আলোচনা করা হয়েছে।

শুরু করার আগে

চালিয়ে যাওয়ার আগে, নিম্নলিখিতগুলি করুন:

একটি HMAC টোকেন তৈরি করুন

টোকেন তৈরি করতে, নিম্নলিখিতগুলি করুন:

  1. আপনার লাইভস্ট্রিমের অ্যাসেট কী এবং মেয়াদ শেষ হওয়ার সময় সংগ্রহ করুন। আরও তথ্যের জন্য, DAI স্ট্রিম সেশন তৈরির অনুরোধের জন্য প্রমাণীকরণ সক্ষম করুন দেখুন।
  2. নিম্নলিখিত প্যারামিটারগুলো বর্ণানুক্রমে সাজান এবং টিল্ড ( ~ চিহ্ন দিয়ে প্যারামিটারগুলো আলাদা করুন:

    event=ASSET_KEY~exp=EXPIRATION
    

    নিম্নলিখিতগুলি প্রতিস্থাপন করুন:

    • ASSET_KEY : আবশ্যক। লাইভস্ট্রিম ইভেন্টের অ্যাসেট কী।
    • EXPIRATION : আবশ্যক। ইউনিক্স ইপক টাইম অনুযায়ী টোকেনটির মেয়াদোত্তীর্ণের টাইমস্ট্যাম্প।
  3. আপনার DAI প্রমাণীকরণ কী ব্যবহার করে টোকেন স্ট্রিংটির একটি SHA-256 হ্যাশ গণনা করুন।

  4. হ্যাশ আউটপুটটি হেক্সাডেসিমেল ফরম্যাটে সাজান।

  5. টোকেন স্ট্রিংটিতে স্বাক্ষর করতে, পূর্বে সংগৃহীত প্যারামিটারগুলোর শেষে স্বাক্ষরটি যুক্ত করুন:

    event=...~hmac=HMAC_SIGNATURE
    

    আপনার DAI অথেন্টিকেশন কী ব্যবহার করে টোকেন স্ট্রিংটিকে হ্যাশ করে তৈরি করা সিগনেচারটি দিয়ে HMAC_SIGNATURE প্রতিস্থাপন করুন।

  6. স্বাক্ষরিত টোকেন স্ট্রিংটি নিরাপদে প্রেরণ করতে, এতে ইউআরএল-এনকোডিং প্রয়োগ করুন।

নিম্নলিখিত উদাহরণটি একটি টোকেন স্ট্রিংকে স্বাক্ষর ও এনকোড করে, যার মেয়াদ ৬০ সেকেন্ডের মধ্যে শেষ হয়ে যায়:

# Add 60 seconds to the current time
future_epoch=$((EPOCHSECONDS + 60))

echo "Current: $EPOCHSECONDS"
echo "Future: $future_epoch"
# Current: 1767389133
# Future: 1767389193

# Sample DAI stream authentication key
key="DE0E9..."

# Sort parameters in the token string
token="event=YRB0Bl0oQRCb5J-maPpJUQ~exp=1767389193"

# Generate the token's signature.
echo -n $token | openssl dgst -sha256 -mac HMAC -macopt key:$key
# SHA2-256(stdin)= 9935a013957e5ce893a7ee444d3d452fd0de7d273ff8b65471ddd4619b80d248

# Sign the token: event=YRB0Bl0oQRCb5J-maPpJUQ~exp=1767389193~hmac=9935a013957e5ce893a7ee444d3d452fd0de7d273ff8b65471ddd4619b80d248

# Encode the token: event%3DYRB0Bl0oQRCb5J%2DmaPpJUQ%7Eexp%3D1767389193%7Ehmac%3D9935a013957e5ce893a7ee444d3d452fd0de7d273ff8b65471ddd4619b80d248

লাইভস্ট্রিম সেশনের অনুরোধ করতে HMAC টোকেন ব্যবহার করুন।

আপনার স্ট্রিম তৈরির অনুরোধটি একটি HMAC টোকেন দিয়ে প্রমাণীকরণ করতে, নিম্নলিখিতগুলির মধ্যে একটি করুন:

Authorization অনুরোধ হেডার

  curl "https://dai.google.com/linear/v1/hls/event/YRB0Bl0oQRCb5J-maPpJUQ/stream" \
  -X POST \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -H "Authorization: DCLKDAI token=event%3DYRB0Bl0oQRCb5J%2DmaPpJUQ%7Eexp%3D1767389193%7Ehmac%3D9935a013957e5ce893a7ee444d3d452fd0de7d273ff8b65471ddd4619b80d248"

কোয়েরি স্ট্রিং প্যারামিটার

  curl "https://dai.google.com/linear/v1/hls/event/YRB0Bl0oQRCb5J-maPpJUQ/stream?auth-token=event%3DYRB0Bl0oQRCb5J%2DmaPpJUQ%7Eexp%3D1767389193%7Ehmac%3D9935a013957e5ce893a7ee444d3d452fd0de7d273ff8b65471ddd4619b80d248" \
  -X POST \
  -H "Content-Type: application/x-www-form-urlencoded"

ফর্ম ডেটা ফিল্ড

  curl "https://dai.google.com/linear/v1/hls/event/YRB0Bl0oQRCb5J-maPpJUQ/stream" \
  -X POST \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "auth-token=event%3DYRB0Bl0oQRCb5J%2DmaPpJUQ%7Eexp%3D1767389193%7Ehmac%3D9935a013957e5ce893a7ee444d3d452fd0de7d273ff8b65471ddd4619b80d248"

সফল হলে, আপনি নিম্নলিখিত JSON প্রতিক্রিয়াটি দেখতে পাবেন:

  {
  "hls_master_playlist": "https://dai.google.com/linear/hls/pa/event/YRB0Bl0oQRCb5J-maPpJUQ/stream/e91f907e-6a0a-4795-8c96-c8e36e89cbf6:DLS/master.m3u8",
  "media_verification_url": "https://dai.google.com/view/p/service/linear/stream/e91f907e-6a0a-4795-8c96-c8e36e89cbf6:DLS/loc/DLS/network/21775744923/event/YRB0Bl0oQRCb5J-maPpJUQ/media/",
  "metadata_url": "https://dai.google.com/linear/v1/pa/event/YRB0Bl0oQRCb5J-maPpJUQ/stream/e91f907e-6a0a-4795-8c96-c8e36e89cbf6:DLS/metadata",
  "polling_frequency": 10,
  "session_update_url": "https://dai.google.com/linear/v1/pa/event/YRB0Bl0oQRCb5J-maPpJUQ/stream/e91f907e-6a0a-4795-8c96-c8e36e89cbf6:DLS/session",
  "stream_id": "e91f907e-6a0a-4795-8c96-c8e36e89cbf6:DLS",
  "stream_manifest": "https://dai.google.com/linear/hls/pa/event/YRB0Bl0oQRCb5J-maPpJUQ/stream/e91f907e-6a0a-4795-8c96-c8e36e89cbf6:DLS/master.m3u8"
  }

রেসপন্স স্ট্রাকচার এবং স্ট্যাটাস কোডগুলো বুঝতে, মেথড: স্ট্রিম দেখুন। অথেনটিকেশন ব্যর্থ হলে, আপনি নিম্নলিখিত এররটি দেখতে পাবেন:

  <!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>