مصادقة طلبات جلسات البث

يسجّل طلب البث جلسة لحدث بث مباشر. لمزيد من التفاصيل، يُرجى الاطّلاع على تقديم طلب بث.

تتناول هذه الصفحة استخدام الرمز المميز المستند إلى HMAC لمصادقة طلبات البث.

قبل البدء

قبل المتابعة، يُرجى اتّباع الخطوات التالية:

إنشاء رمز مميّز HMAC

لإنشاء رمز مميّز، اتّبِع الخطوات التالية:

  1. اجمع مفتاح أصول البث المباشر ووقت انتهاء صلاحيته. لمزيد من المعلومات، يُرجى الاطّلاع على تفعيل المصادقة لطلبات إنشاء جلسات بث "إعلانات ديناميكية أثناء البث".
  2. رتِّب المَعلمات التالية أبجديًا وافصل بينها باستخدام الرمز ~:

    event=ASSET_KEY~exp=EXPIRATION
    

    غيِّر القيم في السلسلة على الشكل التالي:

    • ASSET_KEY: مطلوب. مفتاح مادة عرض حدث البث المباشر
    • EXPIRATION: مطلوب. الطابع الزمني لانتهاء صلاحية الرمز المميّز بتوقيت حقبة Unix
  3. احتسِب قيمة تجزئة SHA-256 لسلسلة الرمز المميّز باستخدام مفتاح مصادقة DAI.

  4. يجب تنسيق ناتج التجزئة بتنسيق سداسي عشري.

  5. لتوقيع سلسلة الرموز المميّزة، أضِف التوقيع في نهاية المَعلمات التي تم جمعها سابقًا:

    event=...~hmac=HMAC_SIGNATURE
    

    استبدِل HMAC_SIGNATURE بالتوقيع الذي أنشأته من خلال تجزئة سلسلة الرمز المميز باستخدام مفتاح مصادقة DAI.

  6. لتمرير سلسلة الرمز المميّز الموقّع بأمان، طبِّق ترميز عنوان URL على سلسلة الرمز المميّز الموقّع.

يوقّع المثال التالي على سلسلة رموز مميزة ويشفّرها وتنتهي صلاحيتها خلال 60 ثانية:

# 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"
  }

للتعرّف على بنية الردّ ورموز الحالة، راجِع الطريقة: 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>