Tutorial

TikTok LIVE API Οδηγός Python

Συνδέσου σε οποιοδήποτε TikTok LIVE stream από Python με το TikTools WebSocket API. Λάβε μηνύματα chat, δώρα, αριθμό θεατών και άλλα σε πραγματικό χρόνο - έτοιμο για production, πλήρως managed.

Γιατί 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. Διάλεξε όποιο μοντέλο ταιριάζει στην ομάδα σου.

Μοντέλο hosting✓ Πλήρως managed - uptime 99,9%~ Self-hosted client + managed signing
Στήσιμο✓ pip install websockets~ pip install TikTokLive
Συντήρηση✓ Μηδενική - γίνεται στον server~ Ενημερώσεις client + signing backend

Προαπαιτούμενα

Επιλογή 1: asyncio + websockets

Ο πιο απλός τρόπος - χρησιμοποίησε τη standard βιβλιοθήκη websockets για να συνδεθείς στο TikTools WebSocket API:

pip install websockets
import 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 requests
import 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 συνδέσεις)