مرجع الأحداث · FIREHOSE مباشر · يبث الآن

مفردات أحداث TikTok LIVE كاملة

الدردشة. الهدايا. الإعجابات. الانضمام. المتابعات. المباريات. الاشتراكات. كل حدث في بث TikTok LIVE يصل عبر WebSocket واحد مع بيانات وصفية غنية. الشريط أدناه هو الـ firehose العام الحقيقي الآن، وليس نموذجًا تجريبيًا.

شريط الأحداث المباشر

0 حدث في المخزن المؤقت · بث عام حقيقي

في انتظار الحدث المباشر التالي...

الـ firehose العام مخفي البيانات، لكن كل حدث دفعة حقيقية من غرفة TikTok LIVE حقيقية. اتصل بمفتاحك الخاص لتستقبل الحمولة كاملة بدون إخفاء (أسماء مستخدمين حقيقية، وصور حقيقية، وأعداد ماسات حقيقية). الشيء الوحيد الذي يتغير بين الباقات هو حد الاتصالات المتزامنة.

اشترك في الـ firehose من بيئتك

اختر لغتك. انسخ. شغّل. مفتاح Sandbox من /pricing.

import { TiktokLiveClient } from '@tiktool/live'

const client = new TiktokLiveClient({
  apiKey: process.env.TIKTOOL_API_KEY,
  uniqueId: 'tiktok_handle_here',
})

client.on('gift', (e) => {
  console.log(`${e.user.uniqueId} sent ${e.giftName} (${e.diamondCount} diamonds)`)
})

client.on('chat', (e) => console.log(`${e.user.uniqueId}: ${e.comment}`))
client.on('member', (e) => console.log(`+ join ${e.user.uniqueId}`))
client.on('like', (e) => console.log(`+ ${e.likeCount} likes`))
client.on('linkMicBattle', (e) => console.log('battle update', e.battleUsers))

await client.connect()

كل حدث، وما يطلقه، وما في حمولته

كل الأحداث تشترك في الغلاف { event: string, data: object }. أدناه: كل نوع حدث والبيانات التي يحملها.

chatمتكرر جدًا

يُطلق عندما يرسل مشاهد رسالة دردشة. الحدث الأكثر شيوعًا.

userObjectuniqueId, nickname, profilePictureUrl, badges
commentStringنص الرسالة
userIdStringمعرّف مستخدم TikTok الرقمي
{
  "event": "chat",
  "data": {
    "user": {
      "uniqueId": "viewer42",
      "nickname": "Viewer 42"
    },
    "comment": "Hello!",
    "userId": "7123456789"
  }
}

giftمتوسط

يُطلق عندما يرسل مشاهد هدية افتراضية. يتضمن اسم الهدية وقيمتها بالماسات وبيانات السلسلة.

userObjectالمرسل
giftNameStringمثل "Rose" و "Galaxy"
giftIdNumberمعرّف الهدية الرقمي
diamondCountNumberالقيمة بالماسات
repeatCountNumberعدد مرات السلسلة
repeatEndBooleantrue عند انتهاء السلسلة
{
  "event": "gift",
  "data": {
    "user": {
      "uniqueId": "big_fan"
    },
    "giftName": "Rose",
    "giftId": 5655,
    "diamondCount": 1,
    "repeatCount": 5,
    "repeatEnd": true
  }
}

likeمتكرر جدًا

يُطلق عندما يضغط مشاهد زر الإعجاب. يتضمن إجمالي الإعجابات المتراكمة.

userObjectصاحب الإعجاب
likeCountNumberعدد هذا الحدث
totalLikeCountNumberإجمالي البث
{
  "event": "like",
  "data": {
    "user": {
      "uniqueId": "liker1"
    },
    "likeCount": 15,
    "totalLikeCount": 12500
  }
}

memberمتوسط

يُطلق عندما ينضم مشاهد إلى غرفة البث المباشر.

userObjectالمستخدم المنضم
{
  "event": "member",
  "data": {
    "user": {
      "uniqueId": "new_viewer",
      "nickname": "New Viewer"
    }
  }
}

followمنخفض

يُطلق عندما يتابع مشاهد صاحب البث أثناء البث.

userObjectالمستخدم المتابِع
{
  "event": "follow",
  "data": {
    "user": {
      "uniqueId": "new_follower"
    }
  }
}

shareمنخفض

يُطلق عندما يشارك مشاهد البث المباشر.

userObjectالمستخدم المشارِك
{
  "event": "share",
  "data": {
    "user": {
      "uniqueId": "sharer"
    }
  }
}

roomUserSeqدوري

تحديث دوري لعدد المشاهدين. الطريقة الأساسية لتتبّع عدد المشاهدين لحظيًا. يرسله SDK أيضًا باسم viewer_count (اسم بديل بالحمولة نفسها).

viewerCountNumberالمشاهدون الآن
topViewersArrayمرتبون حسب التفاعل
{
  "event": "roomUserSeq",
  "data": {
    "viewerCount": 1234,
    "topViewers": [
      {
        "user": {
          "uniqueId": "top_fan"
        },
        "coinCount": 5000
      }
    ]
  }
}

subscribeنادر

يُطلق عندما يشترك مشاهد في قناة صاحب البث.

userObjectالمشترك
{
  "event": "subscribe",
  "data": {
    "user": {
      "uniqueId": "subscriber1"
    }
  }
}

linkMicBattleأثناء المباريات

يُطلق عند بدء مباراة TikTok LIVE أو تحديثها أو انتهائها. يتضمن النقاط والمشاركين.

battleUsersArrayالمشاركون مع نقاطهم
typeNumber1=بدء، 2=تحديث، 3=انتهاء
{
  "event": "linkMicBattle",
  "data": {
    "type": 1,
    "battleUsers": [
      {
        "uniqueId": "streamer1"
      },
      {
        "uniqueId": "streamer2"
      }
    ]
  }
}

roomPinنادر

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

pinnedMessageObjectمحتوى الرسالة والمرسل
{
  "event": "roomPin",
  "data": {
    "pinnedMessage": {
      "text": "Welcome!",
      "user": {
        "uniqueId": "streamer"
      }
    }
  }
}

أسئلة شائعة

هل أحتاج إلى باقة مدفوعة لاستقبال الأحداث؟

ليس للتقييم. يعمل مفتاح Sandbox لمدة 7 أيام ويوفر بيانات الأحداث الحقيقية الكاملة (أسماء مستخدمين حقيقية، وماسات حقيقية، إلخ) - يوقّع عميلك اتصال WebSocket الأساسي بملف تعريف الارتباط الخاص به من TikTok. خلال فترة التقييم تكون الحدود 3 اتصالات WebSocket متزامنة و 5,000 طلب REST يوميًا. بعد 7 أيام تلزم باقة مدفوعة؛ باقة Basic بسعر $7 أسبوعيًا توفر 20 اتصال WS متزامنًا و 10,000 طلب يوميًا.

ما الحدث الأكثر تكرارًا في بث مزدحم؟

`like` و `chat` هما الأكثر تكرارًا. و `gift` هو الإشارة الأعلى قيمة لكل حدث.

هل يمكنني الاشتراك في عدة صناع محتوى على TikTok في الوقت نفسه؟

نعم. افتح WebSocket لكل uniqueId. باقة Pro تسمح بـ 50 اتصال WS متزامنًا، و Ultra بـ 250.

كيف أعرف متى تنتهي سلسلة الهدايا؟

الهدايا القابلة للتكرار فقط (`giftType` 1) تشكّل سلسلة: راقب `repeatEnd === true`، أو أغلقها بنفسك عندما لا يصل إطار جديد لبضع ثوانٍ، وخذ أعلى قيمة `repeatCount`. الهدايا الأخرى لا ترسل إطار انتهاء أبدًا: الإرسال بكمية مثل 8x إطار واحد بقيمة `repeatCount` 8، فاحسبه عند وصوله. وفي الحالتين، إجمالي الماسات = `diamondCount * repeatCount`.

ما زمن الاستجابة مقارنة بالبث الفعلي؟

تصل الأحداث بعد ~150-400ms من وقوعها على TikTok. أسرع من بث الفيديو نفسه على معظم شبكات CDN.

هل تُطلق أحداث المباريات لكلا صانعي المحتوى؟

نعم. اتصل بأي من صانعي المحتوى في المباراة، وسيستقبل كلاهما حدث `linkMicBattle` نفسه مع بيانات `battleUsers` للطرفين.