Pourquoi utiliser TikTools en Python ?
Le client Python TikTokLive, sous licence MIT, se connecte directement au protocole de diffusion de TikTok et délègue la signature à un backend géré (par défaut Euler Stream, qui a sa propre offre gratuite et ses offres payantes). C'est un modèle client auto-hébergé + signature gérée, maintenu par l'équipe Euler Stream.
TikTools est un service API géré indépendant avec sa propre infrastructure de signature. Il gère les changements de protocole côté serveur, affiche un objectif de disponibilité de 99.9% et fonctionne avec n'importe quel langage via un WebSocket standard. Aucune gestion de protocole requise - connecte-toi et reçois les événements. Choisis le modèle qui convient à ton équipe.
Prérequis
- Python 3.8+ installé
- Une clé API TikTools gratuite - obtiens-la ici
Option 1 : asyncio + websockets
L'approche la plus simple - utilise la bibliothèque standard websockets pour te connecter à l'API 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())Option 2 : API REST avec requests
Pour récupérer des données ponctuellement (infos de salle, profils utilisateurs), utilise l'API REST :
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'}")Lancer les scripts
# Set your API key as environment variable
export TIKTOOL_API_KEY=your_api_key_here
# Run the WebSocket example
python tiktok_live.pySortie attendue
✅ 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Étapes suivantes
- Stocke les événements dans une base de données - envoie les événements vers PostgreSQL, MongoDB ou SQLite
- Crée un tableau de bord - utilise Flask ou FastAPI pour créer un tableau de bord web en temps réel
- Analyse par IA - envoie les messages du chat à GPT/Claude pour une analyse de sentiment
- Multi-stream - suis plusieurs streams simultanément (offre Pro : 50 connexions)