Eğitim

TikTok LIVE API Python Rehberi

TikTools WebSocket API'siyle Python'dan herhangi bir TikTok LIVE yayınına bağlan. Anlık sohbet mesajlarını, hediyeleri, izleyici sayısını ve daha fazlasını al; üretime hazır, tamamen yönetilen.

Python İçin Neden TikTools?

MIT lisanslı TikTokLive Python istemcisi doğrudan TikTok'un yayın protokolüne bağlanır ve imzalamayı yönetilen bir altyapıya devreder (varsayılanı, kendi ücretsiz planı ve ücretli paketleri olan Euler Stream). Euler Stream ekibinin sürdürdüğü, istemciyi kendin barındırdığın + imzalamanın yönetildiği bir modeldir.

TikTools, kendi imzalama altyapısına sahip bağımsız bir yönetilen API hizmeti. Protokol değişikliklerini sunucu tarafında karşılar, %99,9 çalışma süresi hedefi yayınlar ve standart WebSocket üzerinden her dille çalışır. Protokolle uğraşmana gerek yok: bağlan ve olayları al. Ekibine hangi model uyuyorsa onu seç.

Barındırma modeli✓ Tamamen yönetilen - %99,9 çalışma süresi~ Kendi barındırdığın istemci + yönetilen imzalama
Kurulum✓ pip install websockets~ pip install TikTokLive
Bakım yükü✓ Sıfır - sunucu tarafında halledilir~ İstemci + imzalama altyapısı güncellemeleri

Gereksinimler

  • Python 3.8+ kurulu
  • Ücretsiz bir TikTools API anahtarı - buradan al

Seçenek 1: asyncio + websockets

En basit yol: TikTools WebSocket API'sine bağlanmak için standart websockets kütüphanesini kullan:

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())

Seçenek 2: requests ile REST API

Tek seferlik veri çekme işleri için (oda bilgisi, kullanıcı profilleri) REST API'yi kullan:

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'}")

Betikleri Çalıştırma

# Set your API key as environment variable
export TIKTOOL_API_KEY=your_api_key_here

# Run the WebSocket example
python tiktok_live.py

Beklenen Çıktı

✅ 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

Sonraki Adımlar

  • Olayları veritabanında sakla - olayları PostgreSQL, MongoDB ya da SQLite'a aktar
  • Bir panel oluştur - Flask ya da FastAPI ile anlık bir web paneli kur
  • Yapay zeka analizi - duygu analizi için sohbet mesajlarını GPT/Claude'a gönder
  • Çoklu yayın - birden fazla yayını aynı anda izle (Pro plan: 50 bağlantı)