Γιατί TikTools για Python;
Ο client Python TikTokLive, με άδεια MIT, συνδέεται απευθείας στο πρωτόκολλο μετάδοσης του TikTok και αναθέτει το signing σε managed backend (το προεπιλεγμένο είναι το Euler Stream, που έχει δικό του δωρεάν πακέτο και επί πληρωμή πακέτα). Είναι μοντέλο self-hosted client + managed signing, που το συντηρεί η ομάδα του Euler Stream.
Το TikTools είναι ανεξάρτητη managed υπηρεσία API με δική της υποδομή signing. Αναλαμβάνει τις αλλαγές του πρωτοκόλλου στον server, δημοσιεύει στόχο uptime 99,9% και δουλεύει με κάθε γλώσσα μέσω standard WebSocket. Δεν χρειάζεται να ασχοληθείς με το πρωτόκολλο - απλώς συνδέεσαι και λαμβάνεις events. Διάλεξε όποιο μοντέλο ταιριάζει στην ομάδα σου.
Προαπαιτούμενα
- Εγκατεστημένη Python 3.8+
- Ένα δωρεάν TikTools API key - πάρε ένα εδώ
Επιλογή 1: asyncio + websockets
Ο πιο απλός τρόπος - χρησιμοποίησε τη standard βιβλιοθήκη websockets για να συνδεθείς στο TikTools WebSocket API:
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())Επιλογή 2: REST API με requests
Για μεμονωμένες λήψεις δεδομένων (πληροφορίες room, προφίλ χρηστών), χρησιμοποίησε το 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'}")Τρέξιμο των scripts
# Set your API key as environment variable
export TIKTOOL_API_KEY=your_api_key_here
# Run the WebSocket example
python tiktok_live.pyΑναμενόμενη έξοδος
✅ 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Επόμενα βήματα
- Αποθήκευσε events σε βάση δεδομένων - στείλε τα events σε PostgreSQL, MongoDB ή SQLite
- Φτιάξε dashboard - χρησιμοποίησε Flask ή FastAPI για web dashboard σε πραγματικό χρόνο
- Ανάλυση με AI - δώσε τα μηνύματα του chat σε GPT/Claude για ανάλυση συναισθήματος
- Πολλά streams - παρακολούθησε πολλά streams ταυτόχρονα (πακέτο Pro: 50 συνδέσεις)