Por que usar o TikTools com Python?
O cliente Python TikTokLive, com licença MIT, conecta direto no protocolo de transmissão do TikTok e delega a assinatura para um backend gerenciado (o padrão é o Euler Stream, que tem plano grátis e planos pagos próprios). É um modelo de cliente auto-hospedado + assinatura gerenciada, mantido pela equipe do Euler Stream.
O TikTools é um serviço de API gerenciado independente, com infraestrutura de assinatura própria. Ele lida com as mudanças de protocolo no servidor, publica uma meta de 99,9% de uptime e funciona com qualquer linguagem via WebSocket padrão. Nada de lidar com protocolo - é só conectar e receber eventos. Escolha o modelo que combina com sua equipe.
Pré-requisitos
- Python 3.8+ instalado
- Uma chave de API grátis do TikTools - pegue aqui
Opção 1: asyncio + websockets
O jeito mais simples - use a biblioteca padrão websockets para conectar na API WebSocket do 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ção 2: API REST com requests
Para buscas pontuais de dados (info da sala, perfis de usuário), use a 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'}")Rodando os scripts
# Set your API key as environment variable
export TIKTOOL_API_KEY=your_api_key_here
# Run the WebSocket example
python tiktok_live.pySaída esperada
✅ 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 passos
- Salve eventos em um banco de dados - mande os eventos para PostgreSQL, MongoDB ou SQLite
- Crie um painel - use Flask ou FastAPI para criar um painel web em tempo real
- Análise com IA - envie as mensagens do chat para GPT/Claude e analise o sentimento
- Várias lives - monitore várias lives ao mesmo tempo (plano Pro: 50 conexões)