几秒钟内从 TikTok-Live-Connector 迁移
已经在用 tiktok-live-connector?只需改一行 import,即可切换到托管的 TikTool API。事件名相同,方法相同,无需改动其他代码。
安装 SDK
npm install @tiktool/live修改一行 import
const { WebcastPushConnection } = require('tiktok-live-connector');const { WebcastPushConnection } = require('@tiktool/live');使用你的 TikTools API Key
signApiKey: 'EULER_API_KEY'signApiKey: 'TIKTOOL_API_KEY'在 tik.tools 获取免费 Key,无需信用卡。
完整可运行示例
这段代码在 tiktok-live-connector 和 @tiktool/live 下运行效果完全相同,只需修改 import。
// Before: const { WebcastPushConnection } = require('tiktok-live-connector');
const { WebcastPushConnection } = require('@tiktool/live');
const connection = new WebcastPushConnection('username', {
signApiKey: 'YOUR_TIKTOOL_API_KEY',
});
connection.on('chat', data => {
console.log(`${data.user.uniqueId}: ${data.comment}`);
});
connection.on('gift', data => {
console.log(`${data.user.uniqueId} sent ${data.giftName}`);
});
connection.on('roomUser', data => {
console.log(`Viewers: ${data.viewerCount}`);
});
connection.on('connected', state => {
console.log('Connected!', connection.getState());
});
connection.connect();100% 事件名兼容
所有 TTLC 事件名的用法完全不变。我们还会同时触发 TikTools 原生事件名。
| TTLC 事件名 | 状态 | 说明 |
|---|---|---|
chat | ✓ | 完全相同 |
member | ✓ | 完全相同 |
gift | ✓ | 完全相同 |
like | ✓ | 完全相同 |
follow | ✓ | 完全相同 |
share | ✓ | 完全相同 |
subscribe | ✓ | 完全相同 |
social | ✓ | 完全相同 |
roomUser | ✓ | roomUserSeq 的别名 - 两者都会触发 |
questionNew | ✓ | question 的别名 - 两者都会触发 |
linkMicBattle | ✓ | battle 的别名 - 两者都会触发 |
linkMicArmies | ✓ | battleArmies 的别名 - 两者都会触发 |
emote | ✓ | emoteChat 的别名 - 两者都会触发 |
envelope | ✓ | 完全相同 |
liveIntro | ✓ | 完全相同 |
roomPin | ✓ | 完全相同 |
barrage | ✓ | 完全相同 |
superFan | ✓ | 2.0.8 新增 - 已支持 |
superFanJoin | ✓ | 2.0.8 新增 - 已支持 |
superFanBox | ✓ | 2.0.8 新增 - 已支持 |
connected | ✓ | 完全相同 |
disconnected | ✓ | 完全相同 |
error | ✓ | 完全相同 |
streamEnd | ✓ | 完全相同 |
rawData | ✓ | 触发时附带完整原始事件 payload |
websocketConnected | ✓ | WS 连接建立时触发 |
为什么要切换到托管 API?
不再失效
TikTok 会定期更新协议,导致直连方案失效。TikTool 替你处理所有协议变更,零停机。
更快的事件推送
依托我们优化过的基础设施,事件延迟低于 50ms。你这边无需解码 protobuf。
零依赖
无需 protobufjs、ws-client,也无需 HTTP 签名。只需一个零外部依赖的 npm 包。
自动重连
内置指数退避重连。网络抖动或 TikTok 服务器重启时,连接都能保持。
用量控制台
在 tik.tools/dashboard 实时监控你的 API 用量、WebSocket 连接和事件量。
开发者支持
通过 Discord、邮件或站内在线客服获取帮助,响应时间不超过 4 小时。
常见问题
我的 TypeScript 类型还能用吗?
能。@tiktool/live 为每种事件 payload 提供完整的 TypeScript 类型定义,包括 chat、gift、roomUser 等全部事件。如果你之前用的是 TTLC 社区维护的类型,我们的类型更严格,并会随 TikTok 实际的 protobuf schema 持续更新。
TTLC 的 sessionId、processInitialData、requestPollingIntervalMs 等选项怎么办?
控制连接行为的构造函数选项,如 sessionId、requestPollingIntervalMs、enableExtendedGiftInfo 等,都会被接收并转发。不再适用的选项(如 processInitialData)会被静默忽略,你的配置对象无需清理。
TTLC 有时不需要 API Key 也能用。TikTool 需要吗?
需要,必须提供 signApiKey。在 tik.tools/login 获取免费 Sandbox Key 只需 30 秒,无需信用卡。Sandbox 包含每天 5,000 次 API 调用和 3 个并发 WebSocket 连接,足够开发和测试使用。
TikTok 更新协议时,实际会发生什么?
使用 TTLC 时,TikTok 定期更新签名算法和 protobuf schema 会导致库直接失效,有时在 TikTok 发版后几小时内就会出问题,而在开源维护者修复之前没有任何办法。使用 TikTool 时,协议更新由我们的托管服务器处理。你的代码感觉不到任何变化,事件照常到达。
额外福利:TTLC 没有的功能
Live Feed 发现
搜索并发现当前正在 TikTok 上直播的主播。可按语言、地区和观众数筛选。
Python SDK
提供完整的 Python SDK:pip install tiktok-live-api。API 相同,事件相同,只是语言不同。
准备好迁移了吗?
获取免费 API Key,无需信用卡。Sandbox 套餐包含每天 5,000 次请求和 3 个并发 WebSocket 连接,免费,仅限开发和评估使用。