@tiktool/live 2.6.5 → 2.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -16
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
#
|
|
1
|
+
# TikTok LIVE API — Node.js & TypeScript
|
|
2
2
|
|
|
3
|
-
###
|
|
3
|
+
### The managed TikTok Live Connector — receive chat, gifts, viewers, battles & 18+ events from any TikTok LIVE stream via WebSocket.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@tiktool/live)
|
|
6
|
+
[](https://www.npmjs.com/package/@tiktool/live)
|
|
6
7
|
[](https://opensource.org/licenses/MIT)
|
|
7
8
|
[](https://nodejs.org)
|
|
8
9
|
[](https://www.typescriptlang.org)
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
> **99.9% uptime** — Never breaks when TikTok updates. No protobuf, no reverse engineering, no maintenance. Also available for [Python](https://pypi.org/project/tiktok-live-api/), [Java, Go, C#, and any language via WebSocket](https://tik.tools/docs).
|
|
11
12
|
|
|
12
|
-
|
|
13
|
+
**🎤 NEW:** [Real-Time Live Captions](#-real-time-live-captions) — AI-powered speech-to-text transcription & translation with speaker diarization. **No other TikTok library offers this.**
|
|
13
14
|
|
|
14
|
-
[
|
|
15
|
+
[Try It Now](#-try-it-now--5-minute-live-demo) · [Events](#-events) · [Live Captions](#-real-time-live-captions) · [API](#-api-reference) · [Rate Limits](#-rate-limits) · [Get API Key](https://tik.tools)
|
|
15
16
|
|
|
16
17
|
---
|
|
17
18
|
|
|
@@ -21,24 +22,81 @@ Real-time chat, gifts, viewers, battles, follows & 18+ event types from any TikT
|
|
|
21
22
|
npm install @tiktool/live
|
|
22
23
|
```
|
|
23
24
|
|
|
24
|
-
Get your free API key at [tik.tools](https://tik.tools)
|
|
25
|
+
Get your free API key at [tik.tools](https://tik.tools) — then run the demo below.
|
|
25
26
|
|
|
26
|
-
|
|
27
|
+
## 🚀 Try It Now — 5-Minute Live Demo
|
|
28
|
+
|
|
29
|
+
Copy-paste this into a file and run it. Connects to a live TikTok stream, prints every event for 5 minutes, then exits. Works on the free Sandbox tier.
|
|
30
|
+
|
|
31
|
+
**Save as `demo.mjs` and run with `node demo.mjs`:**
|
|
32
|
+
|
|
33
|
+
```javascript
|
|
34
|
+
// demo.mjs — TikTok LIVE in 5 minutes
|
|
35
|
+
// npm install @tiktool/live
|
|
27
36
|
import { TikTokLive } from '@tiktool/live';
|
|
28
37
|
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
apiKey: 'YOUR_API_KEY',
|
|
32
|
-
});
|
|
38
|
+
const API_KEY = 'YOUR_API_KEY'; // Get free key → https://tik.tools
|
|
39
|
+
const LIVE_USERNAME = 'tv_asahi_news'; // Any live TikTok username
|
|
33
40
|
|
|
34
|
-
live
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
live.on('
|
|
41
|
+
const live = new TikTokLive({ uniqueId: LIVE_USERNAME, apiKey: API_KEY });
|
|
42
|
+
let events = 0;
|
|
43
|
+
|
|
44
|
+
live.on('chat', e => { events++; console.log(`💬 ${e.user.uniqueId}: ${e.comment}`); });
|
|
45
|
+
live.on('gift', e => { events++; console.log(`🎁 ${e.user.uniqueId} sent ${e.giftName} (${e.diamondCount}💎)`); });
|
|
46
|
+
live.on('like', e => { events++; console.log(`❤️ ${e.user.uniqueId} liked × ${e.likeCount}`); });
|
|
47
|
+
live.on('member', e => { events++; console.log(`👋 ${e.user.uniqueId} joined`); });
|
|
48
|
+
live.on('follow', e => { events++; console.log(`➕ ${e.user.uniqueId} followed`); });
|
|
49
|
+
live.on('share', e => { events++; console.log(`🔗 ${e.user.uniqueId} shared`); });
|
|
50
|
+
live.on('roomUserSeq', e => { events++; console.log(`👀 Viewers: ${e.viewerCount}`); });
|
|
51
|
+
live.on('subscribe', e => { events++; console.log(`⭐ ${e.user.uniqueId} subscribed`); });
|
|
52
|
+
live.on('battle', e => { events++; console.log(`⚔️ Battle update`); });
|
|
53
|
+
|
|
54
|
+
live.on('connected', () => console.log(`\n✅ Connected to @${LIVE_USERNAME} — listening for 5 min...\n`));
|
|
55
|
+
live.on('disconnected', () => console.log(`\n📊 Done! Received ${events} events.\n`));
|
|
38
56
|
|
|
39
57
|
await live.connect();
|
|
58
|
+
setTimeout(() => { live.disconnect(); }, 300_000);
|
|
40
59
|
```
|
|
41
60
|
|
|
61
|
+
<details>
|
|
62
|
+
<summary><strong>🔌 Pure WebSocket version (no SDK, any language)</strong></summary>
|
|
63
|
+
|
|
64
|
+
Works with any WebSocket client. No dependencies except `ws` (Node.js) or your language's WebSocket library.
|
|
65
|
+
|
|
66
|
+
```javascript
|
|
67
|
+
// ws-demo.mjs — Pure WebSocket, zero SDK
|
|
68
|
+
// npm install ws
|
|
69
|
+
import WebSocket from 'ws';
|
|
70
|
+
|
|
71
|
+
const API_KEY = 'YOUR_API_KEY';
|
|
72
|
+
const LIVE_USERNAME = 'tv_asahi_news';
|
|
73
|
+
|
|
74
|
+
const ws = new WebSocket(`wss://api.tik.tools?uniqueId=${LIVE_USERNAME}&apiKey=${API_KEY}`);
|
|
75
|
+
let events = 0;
|
|
76
|
+
|
|
77
|
+
ws.on('open', () => console.log(`\n✅ Connected to @${LIVE_USERNAME} — listening for 5 min...\n`));
|
|
78
|
+
ws.on('message', (raw) => {
|
|
79
|
+
const msg = JSON.parse(raw);
|
|
80
|
+
events++;
|
|
81
|
+
const d = msg.data || {};
|
|
82
|
+
const user = d.user?.uniqueId || d.uniqueId || '';
|
|
83
|
+
switch (msg.event) {
|
|
84
|
+
case 'chat': console.log(`💬 ${user}: ${d.comment}`); break;
|
|
85
|
+
case 'gift': console.log(`🎁 ${user} sent ${d.giftName} (${d.diamondCount}💎)`); break;
|
|
86
|
+
case 'like': console.log(`❤️ ${user} liked × ${d.likeCount}`); break;
|
|
87
|
+
case 'member': console.log(`👋 ${user} joined`); break;
|
|
88
|
+
case 'roomUserSeq': console.log(`👀 Viewers: ${d.viewerCount}`); break;
|
|
89
|
+
case 'roomInfo': console.log(`📡 Room: ${msg.roomId}`); break;
|
|
90
|
+
default: console.log(`📦 ${msg.event}`); break;
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
ws.on('close', () => console.log(`\n📊 Done! Received ${events} events.\n`));
|
|
94
|
+
|
|
95
|
+
setTimeout(() => ws.close(), 300_000);
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
</details>
|
|
99
|
+
|
|
42
100
|
---
|
|
43
101
|
|
|
44
102
|
## How It Works
|
|
@@ -256,7 +314,7 @@ All API requests require an API key. Get yours at [tik.tools](https://tik.tools)
|
|
|
256
314
|
|
|
257
315
|
| Tier | Requests/Day | Rate Limit | WS Connections | WS Duration | WS Connects | Bulk Check | CAPTCHA | Feed Discovery | Price |
|
|
258
316
|
|------|-------------|-----------|----------------|-------------|-------------|------------|---------|----------------|-------|
|
|
259
|
-
| **Sandbox** | 50 | 5/min | 1 |
|
|
317
|
+
| **Sandbox** | 50 | 5/min | 1 | 5 min | 10/hr · 30/day | 1 | ✕ | ✕ | Free |
|
|
260
318
|
| **Basic** | 10,000 | 60/min | 3 | 8 hours | 60/hr · 200/day | 10 | ✕ | ✕ | From $7/wk |
|
|
261
319
|
| **Pro** | 75,000 | Unlimited | 50 | 8 hours | Unlimited | 50 | 50/day | 100/day | From $15/wk |
|
|
262
320
|
| **Ultra** | 300,000 | Unlimited | 500 | 8 hours | Unlimited | 500 | 500/day | 2,000/day | From $45/wk |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tiktool/live",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.7",
|
|
4
4
|
"description": "TikTok LIVE API Client — Real-time chat, gifts, viewers, live captions (speech-to-text), AI transcription & translation from any TikTok livestream.",
|
|
5
5
|
"author": "tiktool",
|
|
6
6
|
"license": "MIT",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"homepage": "https://tik.tools",
|
|
35
35
|
"repository": {
|
|
36
36
|
"type": "git",
|
|
37
|
-
"url": "https://github.com/tiktool/live"
|
|
37
|
+
"url": "git+https://github.com/tiktool/tiktok-live-api.git"
|
|
38
38
|
},
|
|
39
39
|
"bugs": {
|
|
40
40
|
"url": "https://github.com/tiktool/live/issues"
|