一行配置完成迁移

一行配置,从 Euler Stream 迁移到 Tik.Tools

继续用 TikTokLive(Python)或 tiktok-live-connector(Node),只需换掉签名服务的 host。事件名不变,SDK 不变,代码不变。

获取免费 API Key
实时预览

无缝替换的效果,就在这里看

和 Euler 一样的握手流程:签发签名 token -> WebSocket。下方 iframe 运行的就是这段代码的 HTML 版本,直连 api.tik.tools。复制粘贴过去,输出完全一样。

euler-dropin.html运行中
滚动到此处后加载预览。
任选一种语言(Node / Python / HTML / LLM 提示词)
分步说明

两步搞定,零重构。

1

换掉签名服务的 host

在 SDK 初始化里改两行配置,把签名后端从 https://tiktok.eulerstream.com 指向 https://api.tik.tools。现有的事件处理函数、直播间 ID 和 SDK 代码都不用动。所有 tik.tools API 套餐 都可以无缝替换;演示 Key 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 Key

演示 Key your_api_key 无需注册即可使用,但限制为 1 个 WebSocket / 每次会话 10 分钟 / 每个 IP 每小时 6 次连接。获取免费 Tik.Tools Key,即可获得更高限额,并完整对齐 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 套餐免费,无需信用卡。正式上线后再升级获取更高的速率限制。