دليل

TikTok LIVE WebSocket API

اتصل بأي بث TikTok LIVE عبر WebSocket. استقبل رسائل الدردشة والهدايا وعدد المشاهدين والمباريات وبيانات التفاعل لحظيًا بزمن استجابة أقل من 50ms. يعمل مع أي لغة برمجة.

كيف يعمل TikTok LIVE WebSocket

يوفر TikTool نقطة اتصال WebSocket مُدارة على wss://api.tik.tools تبث الأحداث لحظيًا من أي بث TikTok LIVE. تتصل بمفتاح API واسم مستخدم TikTok، ويتولى الخادم كل التفاوض على البروتوكول والمصادقة ومنطق إعادة الاتصال.

بخلاف الاتصال المباشر ببروتوكول البنية التحتية للبث في TikTok (الذي يتعطل كثيرًا)، فإن WebSocket API من TikTool وسيط مستقر بمستوى الإنتاج.

بداية سريعة - اتصل في 3 أسطر

JavaScript / Node.js

import { TikTokLive } from '@tiktool/live'

const client = new TikTokLive({ uniqueId: 'streamer_username', apiKey: 'YOUR_KEY' })
client.on('chat', e => console.log(`${e.user.uniqueId}: ${e.comment}`))
client.connect()

أو اتصل مباشرة عبر WebSocket الأصلي (بدون SDK):

const ws = new WebSocket('wss://api.tik.tools?uniqueId=USERNAME&apiKey=YOUR_KEY')

ws.onmessage = (msg) => {
  const event = JSON.parse(msg.data)
  console.log(event.event, event.data)
}

Python

import asyncio, websockets, json

async def connect():
    uri = "wss://api.tik.tools?uniqueId=USERNAME&apiKey=YOUR_KEY"
    async with websockets.connect(uri) as ws:
        async for message in ws:
            event = json.loads(message)
            print(event["event"], event.get("data", {}))

أي لغة

أي لغة تدعم WebSocket تعمل - Go و Rust و Java و C# و Ruby و PHP. اتصل فقط بـ:

wss://api.tik.tools?uniqueId=TIKTOK_USERNAME&apiKey=YOUR_API_KEY

معاملات اتصال WebSocket

المعاملمطلوبالوصف
uniqueId✓اسم مستخدم TikTok لصاحب البث (بدون @)
apiKey✓مفتاح TikTool API الخاص بك
jwtKeyمصادقة عبر JWT (بديل لـ apiKey لعملاء المتصفح المعتمدين على الرموز)

أنواع الأحداث

كل رسالة WebSocket كائن JSON يحتوي على الحقلين event و data. هذه الأحداث التي ستستقبلها:

chat

رسالة دردشة جديدة من مشاهد. تتضمن بيانات المستخدم ونص الرسالة والشارات.

gift

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

like

أعجب مشاهد بالبث. يتضمن إجمالي عدد الإعجابات.

member

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

social

متابعة / مشاركة / إضافة للمفضلة. الحقل data.action يحدد أيها (follow أو share أو favourite).

roomUserSeq

تحديث عدد المشاهدين. يتضمن viewerCount الحالي و topViewers.

subscribe

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

battle

حدث مباراة LinkMic. يتضمن حالة المباراة والنقاط والمدة والمشاركين.

battleArmies

تحديث فرق المباراة. نقاط الفرق وترتيب المشاركين.

linkMic

تحديث تخطيط ضيوف LinkMic. يتضمن معرّفات المقاعد والضيوف في البث متعدد المضيفين.

roomPin

ثبّت صاحب البث رسالة دردشة.

liveIntro

تحديث مقدمة البث. يتضمن عنوان البث ووصفه.

emoteChat

رمز تعبيري مخصص أُرسل في الدردشة. يتضمن معرّف الرمز ورابط صورته.

envelope

حدث صندوق كنز / مغلف أحمر في البث.

question

سؤال أرسله مشاهد في جلسة الأسئلة والأجوبة.

rankUpdate

تحديث ترتيب صاحب البث في منطقته.

barrage

رسالة إعلان أعلى الشاشة.

superFan

أصبح مشاهد Super Fan أو ارتقى مستواه. يتضمن المستوى الجديد.

superFanJoin

انضم Super Fan إلى الغرفة.

superFanBox

حدث صندوق أو مكافأة Super Fan.

control

التحكم في دورة حياة البث (إيقاف مؤقت، إنهاء، إلخ).

حدود الاتصال حسب الباقة

الباقةالاتصالاتالسعر
Sandbox (مجانية)15باقة Sandbox
Pro50من $15 أسبوعيًا
Ultra250من $45 أسبوعيًا
Agency500 + Firehoseمن $119 أسبوعيًا

معالجة الأخطاء وإعادة الاتصال

يُغلق WebSocket برموز إغلاق قياسية. يجب أن يتعامل العميل مع إعادة الاتصال:

// Auto-reconnect pattern (Node.js)
function connect() {
  const ws = new WebSocket('wss://api.tik.tools?uniqueId=USERNAME&apiKey=KEY')

  ws.onmessage = (msg) => {
    const event = JSON.parse(msg.data)
    // Process event
  }

  ws.onclose = (e) => {
    console.log(`Disconnected (${e.code}). Reconnecting in 3s...`)
    setTimeout(connect, 3000)
  }

  ws.onerror = (err) => {
    console.error('WebSocket error:', err.message)
    ws.close()
  }
}

connect()

الأسئلة الشائعة

كيف أتصل ببث TikTok مباشر عبر WebSocket؟

ما لغات البرمجة التي تعمل مع TikTok LIVE WebSocket؟

هل TikTok LIVE WebSocket API مجاني؟

ما الفرق بين هذا ومكتبات البث المباشر مفتوحة المصدر؟

ما زمن استجابة اتصال WebSocket؟