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ç.
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 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())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 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'}")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.pyBeklenen Çı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 watchingSonraki 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ı)