一行設定完成遷移

只改一行設定,從 Euler Stream 換到 Tik.Tools

繼續用 TikTokLive(Python)或 tiktok-live-connector(Node),只要換掉簽章服務主機。事件名稱、SDK、程式碼全都一樣。

取得免費 API 金鑰
即時預覽

直接在這裡看替換後的效果

和 Euler 提供的握手流程相同:簽章權杖產生 -> WebSocket。下方的 iframe 執行的正是這段程式碼的 HTML 版本,連的是 api.tik.tools。複製貼上就能得到一樣的輸出。

euler-dropin.html執行中
捲動到這裡時載入預覽。
任選語言(Node / Python / HTML / LLM 提示詞)
一步一步來

兩個步驟,不用重構。

1

換掉簽章服務主機

在 SDK 初始化裡改兩行設定:把簽章後端從 https://tiktok.eulerstream.com 指向 https://api.tik.tools。現有的事件處理、直播間 ID 和 SDK 程式碼都不用動。所有tik.tools API 方案都能直接替換使用;示範金鑰 your_api_key 不用註冊就能用,但上限較低。

// Node — tiktok-live-connector v2.x (verified working against api.tik.tools)
import { TikTokLiveConnection, SignConfig, WebcastEvent } from 'tiktok-live-connector'

SignConfig.basePath = 'https://api.tik.tools'    // was: https://tiktok.eulerstream.com
SignConfig.apiKey   = 'tk_your_key'              // your tik.tools key

const conn = new TikTokLiveConnection('@username', { fetchRoomInfoOnConnect: false })
conn.on(WebcastEvent.CHAT, e => console.log(e.user.uniqueId, ':', e.comment))
await conn.connect()

// Or env-var (no code change at all):
//   SIGN_API_URL=https://api.tik.tools  SIGN_API_KEY=tk_your_key  node app.js
# Python — TikTokLive v6.6+ (one config swap, existing code unchanged)
from TikTokLive.client.web.web_settings import WebDefaults
from TikTokLive import TikTokLiveClient
from TikTokLive.events import CommentEvent

WebDefaults.tiktok_sign_url     = "https://api.tik.tools"   # was: https://tiktok.eulerstream.com
WebDefaults.tiktok_sign_api_key = "tk_your_key"

client = TikTokLiveClient(unique_id="@username")

@client.on(CommentEvent)
async def on_chat(ev): print(ev.user.unique_id, ":", ev.comment)

await client.connect()   # add fetch_live_check=False if running from a datacenter IP

# Or env-var (zero code change):
#   SIGN_API_URL=https://api.tik.tools SIGN_API_KEY=tk_your_key python app.py
// Direct @eulerstream/euler-api-sdk users — swap basePath
import { EulerStreamApiClient } from '@eulerstream/euler-api-sdk'

const client = new EulerStreamApiClient({
  basePath: 'https://api.tik.tools',
  apiKey:   'tk_your_key',
})

// Every webcast.* / premium.* / moderation.* method routes to tik.tools.
const res = await client.webcast.retrieveRoomId('username')
console.log(res.data.room_id)
2

取得正式 API 金鑰(準備好時)

示範金鑰 your_api_key 不用註冊就能用,但限制為每個 IP 1 條 WebSocket / 每次工作階段 10 分鐘 / 每小時 6 次連線。取得免費 Tik.Tools 金鑰,享有更高上限並完整對應 Euler 端點。

端點對應

每個 Euler 端點都 1:1 對應

Tik.Tools 鏡像了 Euler 的端點介面,已經支援 Euler 的 SDK 不用任何修補就能繼續運作。

Euler StreamTik.Tools(路徑相同)方案
POST /webcast/sign_urlPOST /webcast/sign_url示範
GET /webcast/check_aliveGET /webcast/check_alive示範
POST /webcast/fetchPOST /webcast/fetchBasic+
POST /webcast/ws_credentialsPOST /webcast/ws_credentialsBasic+
POST /webcast/sign_websocketPOST /webcast/sign_websocketBasic+
GET /webcast/room_idGET /webcast/room_id示範
POST /webcast/room_infoPOST /webcast/room_info示範
POST /webcast/bulk_live_checkPOST /webcast/bulk_live_checkBasic+
額外贈送(Euler 沒有):公開即時動態、排行榜示範
回應格式相同。sign_url 會回傳 { status_code, data: { signed_url, x_bogus, user_agent, cookies } }。你現有的解析器可以照常運作。
回應格式

一模一樣的 JSON,再加上遷移提示

POST https://api.tik.tools/webcast/sign_url?apiKey=your_api_key
Body: { "url": "<upstream URL>" }

Response:
{
  "status_code": 0,
  "data": {
    "signed_url": "<signed upstream URL>",
    "x_bogus": "...",
    "user_agent": "Mozilla/5.0 ...",
    "cookies": "ttwid=<fresh visitor cookie>"
  }
}

免費方案就能完成遷移和第一次正式部署

Sandbox + Basic 方案免費,不需要信用卡。正式上線時再享更高的速率限制。