¿Por qué usar TikTools con Python?
El cliente de Python TikTokLive, con licencia MIT, se conecta directamente al protocolo de transmisión de TikTok y delega las firmas a un backend gestionado (por defecto Euler Stream, que tiene su propio plan gratis y planes de pago). Es un modelo de cliente autoalojado + firmas gestionadas, mantenido por el equipo de Euler Stream.
TikTools es un servicio de API gestionado independiente con su propia infraestructura de firmas. Gestiona los cambios de protocolo del lado del servidor, publica un objetivo de disponibilidad del 99.9% y funciona con cualquier lenguaje mediante WebSocket estándar. No necesitas manejar el protocolo: solo conéctate y recibe eventos. Elige el modelo que mejor le funcione a tu equipo.
Requisitos previos
- Python 3.8+ instalado
- Una API key de TikTools gratis - consíguela aquí
Opción 1: asyncio + websockets
La forma más sencilla: usa la librería estándar websockets para conectarte a la API WebSocket de 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())Opción 2: API REST con requests
Para consultas puntuales (info de la sala, perfiles de usuario), usa la 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'}")Ejecutar los scripts
# Set your API key as environment variable
export TIKTOOL_API_KEY=your_api_key_here
# Run the WebSocket example
python tiktok_live.pyResultado esperado
✅ 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 watchingPróximos pasos
- Guarda eventos en una base de datos - envía los eventos a PostgreSQL, MongoDB o SQLite
- Crea un dashboard - usa Flask o FastAPI para crear un dashboard web en tiempo real
- Análisis con IA - pasa los mensajes del chat a GPT/Claude para análisis de sentimiento
- Varias transmisiones - monitorea varias transmisiones a la vez (plan Pro: 50 conexiones)