@tiktool/live 2.6.5 ā 2.6.6
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 +75 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -41,6 +41,81 @@ await live.connect();
|
|
|
41
41
|
|
|
42
42
|
---
|
|
43
43
|
|
|
44
|
+
## š Try It Now ā 60-Second Live Demo
|
|
45
|
+
|
|
46
|
+
Copy-paste this into a file and run it. Connects to a live TikTok stream, prints every event for 60 seconds, then exits. Works on the free Sandbox tier.
|
|
47
|
+
|
|
48
|
+
**Save as `demo.mjs` and run with `node demo.mjs`:**
|
|
49
|
+
|
|
50
|
+
```javascript
|
|
51
|
+
// demo.mjs ā TikTok LIVE in 60 seconds
|
|
52
|
+
// npm install @tiktool/live
|
|
53
|
+
import { TikTokLive } from '@tiktool/live';
|
|
54
|
+
|
|
55
|
+
const API_KEY = 'YOUR_API_KEY'; // Get free key ā https://tik.tools
|
|
56
|
+
const LIVE_USERNAME = 'tv_asahi_news'; // Any live TikTok username
|
|
57
|
+
|
|
58
|
+
const live = new TikTokLive({ uniqueId: LIVE_USERNAME, apiKey: API_KEY });
|
|
59
|
+
let events = 0;
|
|
60
|
+
|
|
61
|
+
live.on('chat', e => { events++; console.log(`š¬ ${e.user.uniqueId}: ${e.comment}`); });
|
|
62
|
+
live.on('gift', e => { events++; console.log(`š ${e.user.uniqueId} sent ${e.giftName} (${e.diamondCount}š)`); });
|
|
63
|
+
live.on('like', e => { events++; console.log(`ā¤ļø ${e.user.uniqueId} liked Ć ${e.likeCount}`); });
|
|
64
|
+
live.on('member', e => { events++; console.log(`š ${e.user.uniqueId} joined`); });
|
|
65
|
+
live.on('follow', e => { events++; console.log(`ā ${e.user.uniqueId} followed`); });
|
|
66
|
+
live.on('share', e => { events++; console.log(`š ${e.user.uniqueId} shared`); });
|
|
67
|
+
live.on('roomUserSeq', e => { events++; console.log(`š Viewers: ${e.viewerCount}`); });
|
|
68
|
+
live.on('subscribe', e => { events++; console.log(`ā ${e.user.uniqueId} subscribed`); });
|
|
69
|
+
live.on('battle', e => { events++; console.log(`āļø Battle update`); });
|
|
70
|
+
|
|
71
|
+
live.on('connected', () => console.log(`\nā
Connected to @${LIVE_USERNAME} ā listening for 60s...\n`));
|
|
72
|
+
live.on('disconnected', () => console.log(`\nš Done! Received ${events} events.\n`));
|
|
73
|
+
|
|
74
|
+
await live.connect();
|
|
75
|
+
setTimeout(() => { live.disconnect(); }, 60_000);
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
<details>
|
|
79
|
+
<summary><strong>š Pure WebSocket version (no SDK, any language)</strong></summary>
|
|
80
|
+
|
|
81
|
+
Works with any WebSocket client. No dependencies except `ws` (Node.js) or your language's WebSocket library.
|
|
82
|
+
|
|
83
|
+
```javascript
|
|
84
|
+
// ws-demo.mjs ā Pure WebSocket, zero SDK
|
|
85
|
+
// npm install ws
|
|
86
|
+
import WebSocket from 'ws';
|
|
87
|
+
|
|
88
|
+
const API_KEY = 'YOUR_API_KEY';
|
|
89
|
+
const LIVE_USERNAME = 'tv_asahi_news';
|
|
90
|
+
|
|
91
|
+
const ws = new WebSocket(`wss://api.tik.tools?uniqueId=${LIVE_USERNAME}&apiKey=${API_KEY}`);
|
|
92
|
+
let events = 0;
|
|
93
|
+
|
|
94
|
+
ws.on('open', () => console.log(`\nā
Connected to @${LIVE_USERNAME} ā listening for 60s...\n`));
|
|
95
|
+
ws.on('message', (raw) => {
|
|
96
|
+
const msg = JSON.parse(raw);
|
|
97
|
+
events++;
|
|
98
|
+
const d = msg.data || {};
|
|
99
|
+
const user = d.user?.uniqueId || d.uniqueId || '';
|
|
100
|
+
switch (msg.event) {
|
|
101
|
+
case 'chat': console.log(`š¬ ${user}: ${d.comment}`); break;
|
|
102
|
+
case 'gift': console.log(`š ${user} sent ${d.giftName} (${d.diamondCount}š)`); break;
|
|
103
|
+
case 'like': console.log(`ā¤ļø ${user} liked Ć ${d.likeCount}`); break;
|
|
104
|
+
case 'member': console.log(`š ${user} joined`); break;
|
|
105
|
+
case 'roomUserSeq': console.log(`š Viewers: ${d.viewerCount}`); break;
|
|
106
|
+
case 'roomInfo': console.log(`š” Room: ${msg.roomId}`); break;
|
|
107
|
+
default: console.log(`š¦ ${msg.event}`); break;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
ws.on('close', () => console.log(`\nš Done! Received ${events} events.\n`));
|
|
111
|
+
|
|
112
|
+
setTimeout(() => ws.close(), 60_000);
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
</details>
|
|
116
|
+
|
|
117
|
+
---
|
|
118
|
+
|
|
44
119
|
## How It Works
|
|
45
120
|
|
|
46
121
|
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tiktool/live",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.6",
|
|
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",
|