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.
Cerințe preliminare
- Python 3.8+ instalat
- O cheie API TikTools gratuită - obține una aici
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 websocketsimport 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 requestsimport 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.pyRezultat 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 watchingPaș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)