Hướng dẫn

TikTok LIVE API Hướng dẫn Python

Kết nối tới mọi phiên TikTok LIVE từ Python bằng WebSocket API của TikTools. Nhận tin nhắn chat, quà tặng, số người xem và nhiều hơn nữa theo thời gian thực - sẵn sàng cho production, được quản lý hoàn toàn.

Vì sao nên dùng TikTools cho Python?

Client Python TikTokLive (giấy phép MIT) kết nối thẳng tới giao thức phát sóng của TikTok và giao việc ký cho một backend được quản lý (mặc định là Euler Stream, vốn có gói miễn phí và gói trả phí riêng). Đây là mô hình tự chạy client + ký request được quản lý, do đội ngũ Euler Stream duy trì.

TikTools là một dịch vụ API được quản lý độc lập với hạ tầng ký riêng. Mọi thay đổi giao thức được xử lý phía server, cam kết mục tiêu uptime 99.9%, và chạy với mọi ngôn ngữ qua WebSocket tiêu chuẩn. Không phải xử lý giao thức - chỉ cần kết nối và nhận sự kiện. Hãy chọn mô hình hợp với đội của bạn.

Mô hình vận hành✓ Được quản lý hoàn toàn - uptime 99.9%~ Tự chạy client + ký request được quản lý
Cài đặt✓ pip install websockets~ pip install TikTokLive
Phần phải bảo trì✓ Không có - xử lý phía server~ Cập nhật client + backend ký

Chuẩn bị

Cách 1: asyncio + websockets

Cách đơn giản nhất - dùng thư viện chuẩn websockets để kết nối tới WebSocket API của TikTools:

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

Cách 2: REST API với requests

Để lấy dữ liệu một lần (thông tin phòng, hồ sơ người dùng), hãy dùng 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'}")

Chạy các script

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

# Run the WebSocket example
python tiktok_live.py

Kết quả mong đợi

✅ 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

Bước tiếp theo

  • Lưu sự kiện vào cơ sở dữ liệu - đẩy sự kiện vào PostgreSQL, MongoDB hoặc SQLite
  • Xây dashboard - dùng Flask hoặc FastAPI để tạo dashboard web thời gian thực
  • Phân tích bằng AI - đưa tin nhắn chat cho GPT/Claude để phân tích cảm xúc
  • Nhiều phiên live - theo dõi nhiều phiên live cùng lúc (gói Pro: 50 kết nối)