Tutorial

TikTok LIVE API Ghid Python

Conectează-te la orice LIVE TikTok din Python folosind API-ul WebSocket TikTools. Primește în timp real mesaje din chat, cadouri, numărul de spectatori și multe altele - pregătit pentru producție, complet administrat.

De ce TikTools pentru Python?

Clientul Python TikTokLive, cu licență MIT, se conectează direct la protocolul de transmisie TikTok și deleagă semnarea unui backend administrat (implicit Euler Stream, care are propriul plan gratuit și planuri plătite). Este un model cu client găzduit de tine + semnare administrată, întreținut de echipa Euler Stream.

TikTools este un serviciu API administrat independent, cu propria infrastructură de semnare. Gestionează modificările de protocol pe server, are un obiectiv publicat de disponibilitate de 99,9% și funcționează cu orice limbaj prin WebSocket standard. Nu trebuie să gestionezi protocolul - doar te conectezi și primești evenimente. Alege modelul care se potrivește echipei tale.

Model de găzduire✓ Complet administrat - disponibilitate 99,9%~ Client găzduit de tine + semnare administrată
Configurare✓ pip install websockets~ pip install TikTokLive
Întreținere necesară✓ Zero - gestionată pe server~ Actualizări pentru client + backendul de semnare

Cerințe preliminare

Opțiunea 1: asyncio + websockets

Cea mai simplă abordare - folosește biblioteca standard websockets ca să te conectezi la API-ul WebSocket TikTools:

pip install websockets
import asyncio
import websockets
import json
import os

API_KEY = os.environ.get("TIKTOOL_API_KEY", "YOUR_API_KEY")
STREAMER = "tv_asahi_news"  # TikTok username (without @)

async def connect():
    uri = f"wss://api.tik.tools?uniqueId={STREAMER}&apiKey={API_KEY}"

    async with websockets.connect(uri) as ws:
        print(f"✅ Connected to @{STREAMER}")

        async for message in ws:
            event = json.loads(message)
            event_type = event.get("event", "")
            data = event.get("data", {})

            if event_type == "chat":
                user = data.get("user", {}).get("uniqueId", "?")
                comment = data.get("comment", "")
                print(f"[CHAT] {user}: {comment}")

            elif event_type == "gift":
                user = data.get("user", {}).get("uniqueId", "?")
                gift = data.get("giftName", "?")
                diamonds = data.get("diamondCount", 0)
                print(f"[GIFT] {user} sent {gift} ({diamonds} 💎)")

            elif event_type == "member":
                user = data.get("user", {}).get("uniqueId", "?")
                print(f"[JOIN] {user} joined")

            elif event_type == "roomUserSeq":
                viewers = data.get("viewerCount", 0)
                print(f"[VIEWERS] {viewers} watching")

asyncio.run(connect())

Opțiunea 2: REST API cu requests

Pentru preluări punctuale de date (informații despre cameră, profiluri de utilizator), folosește REST API:

pip install requests
import requests

API_KEY = "YOUR_API_KEY"
BASE = "https://api.tik.tools"

# Get room info for a streamer
resp = requests.get(f"{BASE}/webcast/room_info/", params={
    "uniqueId": "tv_asahi_news",
    "apiKey": API_KEY,
})
data = resp.json()
print(f"Title: {data.get('title', 'N/A')}")
print(f"Viewers: {data.get('viewer_count', 0)}")
print(f"Status: {'LIVE' if data.get('alive') else 'OFFLINE'}")

Rularea scripturilor

# Set your API key as environment variable
export TIKTOOL_API_KEY=your_api_key_here

# Run the WebSocket example
python tiktok_live.py

Rezultat așteptat

✅ Connected to @tv_asahi_news
[VIEWERS] 1,234 watching
[CHAT] viewer42: Hello everyone!
[GIFT] big_fan sent Rose (1 💎)
[CHAT] news_watcher: Great coverage
[JOIN] new_viewer joined
[VIEWERS] 1,237 watching

Pașii următori

  • Stochează evenimentele într-o bază de date - trimite evenimentele în PostgreSQL, MongoDB sau SQLite
  • Construiește un panou - folosește Flask sau FastAPI pentru un panou web în timp real
  • Analiză AI - trimite mesajele din chat către GPT/Claude pentru analiza sentimentului
  • Mai multe LIVE-uri - urmărește mai multe LIVE-uri simultan (planul Pro: 50 de conexiuni)