@nxgiang/tiktok-api 1.3.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.
Files changed (122) hide show
  1. package/CHANGELOG.md +492 -0
  2. package/CODE_OF_CONDUCT.md +128 -0
  3. package/CONTRIBUTING.md +95 -0
  4. package/LICENSE +201 -0
  5. package/README.md +1663 -0
  6. package/bun.lock +367 -0
  7. package/helper/signature.js +390 -0
  8. package/helper/webmssdk.js +4586 -0
  9. package/helper/xbogus.js +563 -0
  10. package/install.sh +51 -0
  11. package/lib/cli/index.d.ts +2 -0
  12. package/lib/cli/index.js +809 -0
  13. package/lib/constants/api.d.ts +22 -0
  14. package/lib/constants/api.js +39 -0
  15. package/lib/constants/headers.d.ts +2 -0
  16. package/lib/constants/headers.js +5 -0
  17. package/lib/constants/index.d.ts +23 -0
  18. package/lib/constants/index.js +26 -0
  19. package/lib/constants/params.d.ts +19 -0
  20. package/lib/constants/params.js +531 -0
  21. package/lib/index.d.ts +93 -0
  22. package/lib/index.js +137 -0
  23. package/lib/lib/logger.d.ts +8 -0
  24. package/lib/lib/logger.js +25 -0
  25. package/lib/services/cookieManager.d.ts +10 -0
  26. package/lib/services/cookieManager.js +51 -0
  27. package/lib/services/downloadManager.d.ts +5 -0
  28. package/lib/services/downloadManager.js +188 -0
  29. package/lib/services/tiktokService.d.ts +14 -0
  30. package/lib/services/tiktokService.js +78 -0
  31. package/lib/types/common.d.ts +65 -0
  32. package/lib/types/common.js +2 -0
  33. package/lib/types/cookieManager.d.ts +13 -0
  34. package/lib/types/cookieManager.js +2 -0
  35. package/lib/types/downloader/musicaldownDownloader.d.ts +27 -0
  36. package/lib/types/downloader/musicaldownDownloader.js +2 -0
  37. package/lib/types/downloader/ssstikDownloader.d.ts +30 -0
  38. package/lib/types/downloader/ssstikDownloader.js +2 -0
  39. package/lib/types/downloader/tiktokApiDownloader.d.ts +38 -0
  40. package/lib/types/downloader/tiktokApiDownloader.js +2 -0
  41. package/lib/types/get/getCollection.d.ts +53 -0
  42. package/lib/types/get/getCollection.js +2 -0
  43. package/lib/types/get/getComments.d.ts +26 -0
  44. package/lib/types/get/getComments.js +2 -0
  45. package/lib/types/get/getMusicDetail.d.ts +49 -0
  46. package/lib/types/get/getMusicDetail.js +2 -0
  47. package/lib/types/get/getMusicVideos.d.ts +93 -0
  48. package/lib/types/get/getMusicVideos.js +2 -0
  49. package/lib/types/get/getPlaylist.d.ts +65 -0
  50. package/lib/types/get/getPlaylist.js +2 -0
  51. package/lib/types/get/getProfile.d.ts +71 -0
  52. package/lib/types/get/getProfile.js +2 -0
  53. package/lib/types/get/getTrendings.d.ts +61 -0
  54. package/lib/types/get/getTrendings.js +2 -0
  55. package/lib/types/get/getUserLiked.d.ts +90 -0
  56. package/lib/types/get/getUserLiked.js +2 -0
  57. package/lib/types/get/getUserPosts.d.ts +68 -0
  58. package/lib/types/get/getUserPosts.js +2 -0
  59. package/lib/types/get/getUserReposts.d.ts +104 -0
  60. package/lib/types/get/getUserReposts.js +2 -0
  61. package/lib/types/search/index.d.ts +15 -0
  62. package/lib/types/search/index.js +2 -0
  63. package/lib/types/search/liveSearch.d.ts +48 -0
  64. package/lib/types/search/liveSearch.js +2 -0
  65. package/lib/types/search/userSearch.d.ts +32 -0
  66. package/lib/types/search/userSearch.js +2 -0
  67. package/lib/types/search/videoSearch.d.ts +62 -0
  68. package/lib/types/search/videoSearch.js +2 -0
  69. package/lib/utils/downloader/musicaldownDownloader.d.ts +2 -0
  70. package/lib/utils/downloader/musicaldownDownloader.js +193 -0
  71. package/lib/utils/downloader/ssstikDownloader.d.ts +2 -0
  72. package/lib/utils/downloader/ssstikDownloader.js +177 -0
  73. package/lib/utils/downloader/tiktokAPIDownloader.d.ts +3 -0
  74. package/lib/utils/downloader/tiktokAPIDownloader.js +221 -0
  75. package/lib/utils/get/getCollection.d.ts +7 -0
  76. package/lib/utils/get/getCollection.js +113 -0
  77. package/lib/utils/get/getComments.d.ts +2 -0
  78. package/lib/utils/get/getComments.js +139 -0
  79. package/lib/utils/get/getMusicDetail.d.ts +2 -0
  80. package/lib/utils/get/getMusicDetail.js +68 -0
  81. package/lib/utils/get/getMusicVideos.d.ts +2 -0
  82. package/lib/utils/get/getMusicVideos.js +249 -0
  83. package/lib/utils/get/getPlaylist.d.ts +7 -0
  84. package/lib/utils/get/getPlaylist.js +115 -0
  85. package/lib/utils/get/getProfile.d.ts +2 -0
  86. package/lib/utils/get/getProfile.js +92 -0
  87. package/lib/utils/get/getTrendings.d.ts +7 -0
  88. package/lib/utils/get/getTrendings.js +120 -0
  89. package/lib/utils/get/getUserLiked.d.ts +2 -0
  90. package/lib/utils/get/getUserLiked.js +204 -0
  91. package/lib/utils/get/getUserPosts.d.ts +2 -0
  92. package/lib/utils/get/getUserPosts.js +199 -0
  93. package/lib/utils/get/getUserRepost.d.ts +2 -0
  94. package/lib/utils/get/getUserRepost.js +239 -0
  95. package/lib/utils/search/liveSearch.d.ts +2 -0
  96. package/lib/utils/search/liveSearch.js +99 -0
  97. package/lib/utils/search/userSearch.d.ts +2 -0
  98. package/lib/utils/search/userSearch.js +76 -0
  99. package/lib/utils/search/videoSearch.d.ts +2 -0
  100. package/lib/utils/search/videoSearch.js +140 -0
  101. package/lib/utils/urlExtractors.d.ts +3 -0
  102. package/lib/utils/urlExtractors.js +37 -0
  103. package/lib/utils/validator.d.ts +1 -0
  104. package/lib/utils/validator.js +13 -0
  105. package/package.json +60 -0
  106. package/test/collection-test.ts +73 -0
  107. package/test/comments-test.ts +54 -0
  108. package/test/downloader-v1-test.ts +49 -0
  109. package/test/downloader-v2-test.ts +47 -0
  110. package/test/downloader-v3-test.ts +35 -0
  111. package/test/music-detail-test.ts +97 -0
  112. package/test/music-videos-test.ts +86 -0
  113. package/test/playlist-test.ts +48 -0
  114. package/test/profile-test.ts +49 -0
  115. package/test/search-live-test.ts +42 -0
  116. package/test/search-user-test.ts +46 -0
  117. package/test/search-video-test.ts +53 -0
  118. package/test/trending-test.ts +128 -0
  119. package/test/userliked-test.ts +65 -0
  120. package/test/userposts-test.ts +56 -0
  121. package/test/userreposts-test.ts +57 -0
  122. package/tobyg74-tiktok-api-1.3.7.tgz +0 -0
package/README.md ADDED
@@ -0,0 +1,1663 @@
1
+ <h1 align="center">
2
+ Tiktok Downloader & Stalk User
3
+ </h1>
4
+
5
+ <div align="center">
6
+ <a href="https://github.com/TobyG74/tiktok-api-dl/graphs/contributors" title="contributors">
7
+ <img src="https://img.shields.io/github/contributors/TobyG74/tiktok-api-dl.svg?style=for-the-badge">
8
+ </a>
9
+ <a href="https://github.com/TobyG74/tiktok-api-dl/network/members" title="forks">
10
+ <img src="https://img.shields.io/github/forks/TobyG74/tiktok-api-dl.svg?style=for-the-badge">
11
+ </a>
12
+ <a href="https://github.com/TobyG74/tiktok-api-dl/issues" title="issues">
13
+ <img src="https://img.shields.io/github/issues/TobyG74/tiktok-api-dl.svg?style=for-the-badge">
14
+ </a>
15
+ <a href="https://github.com/TobyG74/tiktok-api-dl/stargazers" title="stargazer">
16
+ <img src="https://img.shields.io/github/stars/TobyG74/tiktok-api-dl.svg?style=for-the-badge">
17
+ </a>
18
+ </div>
19
+ <br>
20
+ <div align="center">
21
+ <a href="https://nodei.co/npm/@tobyg74/tiktok-api-dl" title="npm">
22
+ <img src="https://nodei.co/npm/@tobyg74/tiktok-api-dl.png?downloads=true&downloadRank=true&stars=true">
23
+ </a>
24
+ </div>
25
+ <br>
26
+ <div align="center">
27
+ <a href="https://whatsapp.com/channel/0029VaGQpAOKAwEfkKNh6Z0X" target="_blank"><img src="https://img.shields.io/badge/join our community-%2317ad1e.svg?style=for-the-badge&logo=whatsapp&logoColor=white" alt="Join Our Community"/></a>
28
+ </div>
29
+
30
+ <br>
31
+
32
+ # Table of Contents
33
+
34
+ - [Description](#description)
35
+ - [Quick Installation](#quick-installation)
36
+ - [Installation Methods](#installation-methods)
37
+ - [Using Installation Script](#using-installation-script)
38
+ - [Using NPM](#using-npm)
39
+ - [Using Yarn](#using-yarn)
40
+ - [Using Github](#using-github)
41
+ - [Usage Guide](#usage-guide)
42
+ - [Getting Tiktok Cookie](#getting-tiktok-cookie)
43
+ - [Using CLI](#using-cli)
44
+ - [Building from Source](#building-from-source)
45
+ - [CLI Usage](#cli-usage)
46
+ - [Example Cookie Usage](#example-cookie-usage)
47
+ - [Features](#features)
48
+ - [Tiktok Downloader](#tiktok-downloader)
49
+ - [Tiktok Search](#tiktok-search)
50
+ - [Tiktok Stalk User Profile](#tiktok-stalk-user-profile)
51
+ - [Tiktok Video User Comments](#tiktok-video-comments)
52
+ - [Tiktok Get User Posts](#tiktok-get-user-posts)
53
+ - [Tiktok Get User Reposts](#tiktok-get-user-reposts)
54
+ - [Tiktok Get User Favorite Videos](#tiktok-get-user-favorite-videos)
55
+ - [Tiktok Collection](#tiktok-collection)
56
+ - [Tiktok Playlist](#tiktok-playlist)
57
+ - [Tiktok Trending](#tiktok-trending)
58
+ - [Tiktok Get Videos by Music ID](#tiktok-get-videos-by-music-id)
59
+ - [Tiktok Get Music Detail](#tiktok-get-music-detail)
60
+ - [API Response Types](#api-response-types)
61
+ - [Tiktok Downloader](#tiktok-downloader-1)
62
+ - [Version 1 Response](#version-1-response)
63
+ - [Version 2 Response](#version-2-response)
64
+ - [Version 3 Response](#version-3-response)
65
+ - [Tiktok Search](#tiktok-search-1)
66
+ - [Tiktok Stalk User Profile](#tiktok-stalk-user-profile-1)
67
+ - [Tiktok Video Comments](#tiktok-video-comments-1)
68
+ - [Tiktok User Posts](#tiktok-user-posts)
69
+ - [Tiktok User Reposts](#tiktok-user-reposts)
70
+ - [Tiktok User Favorite Videos](#tiktok-user-favorite-videos)
71
+ - [Tiktok Collection](#tiktok-collection-1)
72
+ - [Tiktok Playlist](#tiktok-playlist-1)
73
+ - [Tiktok Trending](#tiktok-trending-1)
74
+ - [Tiktok Get Videos by Music ID](#tiktok-get-videos-by-music-id-1)
75
+ - [Tiktok Get Music Detail](#tiktok-get-music-detail-response)
76
+ - [Contributing](#contributing)
77
+ - [License](#license)
78
+
79
+ # Description
80
+
81
+ Note : `This project uses the API from Tiktok & Unofficial Tiktok API from Another Website. This project is not affiliated with Tiktok. `
82
+
83
+ - This project is made to help users to download videos, images / slides and music from Tiktok.
84
+ - This project is also made to help users to view someone's profile from Tiktok.
85
+ - This project is also made to help users to view comments from a video on Tiktok.
86
+ - This project is also made to help users to search for users, live streams and videos on Tiktok.
87
+ - This project is also made to help users to get user's posts, reposts and liked videos from Tiktok.
88
+ - This project is made to help users to get videos, images / slides from a Tiktok collection or playlist.
89
+ - This project is also made to help users to get trending content and creators from Tiktok.
90
+ - This project is also made to help users to get videos that use a specific music/audio track by music ID from Tiktok.
91
+ - This project is also made to help users to get detailed information about a music/audio track from Tiktok.
92
+
93
+ # Quick Installation
94
+
95
+ Install using our automated script:
96
+
97
+ ```bash
98
+ curl -o install.sh https://raw.githubusercontent.com/TobyG74/tiktok-api-dl/master/install.sh
99
+ chmod +x install.sh
100
+ ./install.sh
101
+ ```
102
+
103
+ The script automatically:
104
+
105
+ - Verifies Node.js installation and version
106
+ - Installs the library using npm or yarn
107
+ - Provides usage examples
108
+
109
+ # Installation Methods
110
+
111
+ ## Using NPM
112
+
113
+ ```bash
114
+ npm install @tobyg74/tiktok-api-dl
115
+ ```
116
+
117
+ ## Using Yarn
118
+
119
+ ```bash
120
+ yarn add @tobyg74/tiktok-api-dl
121
+ ```
122
+
123
+ ## Using Github
124
+
125
+ ```bash
126
+ npm install github:TobyG74/tiktok-api-dl
127
+ ```
128
+
129
+ # Usage Guide
130
+
131
+ ## Getting Tiktok Cookie
132
+
133
+ 1. Install [Cookie-Editor](https://chromewebstore.google.com/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm)
134
+ 2. Login to [Tiktok](https://tiktok.com)
135
+ 3. Open Cookie-Editor
136
+ 4. Copy the cookie and use it in your code: `COOKIE: "YOUR_COOKIE"`
137
+
138
+ ## Using CLI
139
+
140
+ ### Global Installation
141
+
142
+ ```bash
143
+ npm install -g @tobyg74/tiktok-api-dl
144
+ tiktokdl [command] [options]
145
+ ```
146
+
147
+ ### Direct Usage
148
+
149
+ ```bash
150
+ git clone https://github.com/TobyG74/tiktok-api-dl.git
151
+ cd tiktok-api-dl
152
+ npm install
153
+ npx ts-node src/cli/index.ts [command] [options]
154
+ ```
155
+
156
+ ### NPM Script
157
+
158
+ ```bash
159
+ npm run cli [command] [options]
160
+ ```
161
+
162
+ ### CLI Usage
163
+
164
+ ```bash
165
+ $ tiktokdl -h
166
+ Usage: tiktokdl [options] [command]
167
+
168
+ Tiktok downloader and search CLI tool
169
+
170
+ Options:
171
+ -V, --version output the version number
172
+ -h, --help display help for command
173
+
174
+ Commands:
175
+ download [options] <url> Download Tiktok Video / Slide / Music
176
+ cookie Cookie Manager
177
+ search Search Tiktok users or live streams
178
+ getvideocomments [options] <url> Get comments from a Tiktok video
179
+ getuserposts [options] <username> Get posts from a Tiktok user
180
+ getuserreposts [options] <username> Get reposts from a Tiktok user
181
+ stalk [options] <username> Stalk a Tiktok user
182
+ help [command] display help for command
183
+ ```
184
+
185
+ ### Example Cookie Usage
186
+
187
+ ```bash
188
+ # Set Tiktok Cookie to use in commands
189
+ tiktokdl cookie set "YOUR_COOKIE"
190
+
191
+ # Get Tiktok Cookie
192
+ tiktokdl cookie get
193
+
194
+ # Delete Tiktok Cookie
195
+ tiktokdl cookie delete
196
+ ```
197
+
198
+ ## Building from Source
199
+
200
+ ```bash
201
+ git clone https://github.com/TobyG74/tiktok-api-dl.git
202
+ cd tiktok-api-dl
203
+ npm install
204
+ npm run build
205
+ ```
206
+
207
+ # Features
208
+
209
+ ## Tiktok Downloader
210
+
211
+ ```javascript
212
+ const Tiktok = require("@tobyg74/tiktok-api-dl")
213
+
214
+ const url = "https://vt.tiktok.com/xxxxxxxx"
215
+ Tiktok.Downloader(url, {
216
+ version: "v1", // "v1" | "v2" | "v3"
217
+ proxy: "YOUR_PROXY", // optional
218
+ showOriginalResponse: true // optional, v1 only
219
+ }).then((result) => console.log(result))
220
+ ```
221
+
222
+ ### CLI Usage
223
+
224
+ ```bash
225
+ # Download Tiktok Video
226
+ tiktokdl download "https://vt.tiktok.com/xxxxxxxx"
227
+
228
+ # Download Tiktok Video with version
229
+ tiktokdl download "https://vt.tiktok.com/xxxxxxxx" -v v1
230
+
231
+ # Download Tiktok Video with Custom Output Directory Path
232
+ tiktokdl download "https://vt.tiktok.com/xxxxxxxx" -v v1 -o "/path/to/save/video.mp4"
233
+
234
+ # Download Tiktok Video with Proxy
235
+ tiktokdl download "https://vt.tiktok.com/xxxxxxxx" -v v1 -proxy "http://your-proxy-url"
236
+
237
+ # Download Collection or Playlist
238
+ tiktokdl download "https://www.tiktok.com/@username/collection/name-id"
239
+ tiktokdl download "https://www.tiktok.com/@username/playlist/name-id"
240
+
241
+ # Download Collection or Playlist with Count
242
+ tiktokdl download "https://www.tiktok.com/@username/collection/name-id" -c 5
243
+ tiktokdl download "https://www.tiktok.com/@username/playlist/name-id" -c 5
244
+
245
+ # Download Collection or Playlist with Proxy
246
+ tiktokdl download "https://www.tiktok.com/@username/collection/name-id" -c 5 -proxy "http://your-proxy-url"
247
+ tiktokdl download "https://www.tiktok.com/@username/playlist/name-id" -c 5 -proxy "http://your-proxy-url"
248
+ ```
249
+
250
+ - [Version 1 Response](#version-1-response)
251
+ - [Version 2 Response](#version-2-response)
252
+ - [Version 3 Response](#version-3-response)
253
+
254
+ ## Tiktok Search
255
+
256
+ ```javascript
257
+ const Tiktok = require("@tobyg74/tiktok-api-dl")
258
+
259
+ Tiktok.Search("username", {
260
+ type: "user", // "user" | "live" | "video"
261
+ page: 1,
262
+ cookie: "YOUR_COOKIE", // needed
263
+ proxy: "YOUR_PROXY" // optional
264
+ }).then((result) => console.log(result))
265
+ ```
266
+
267
+ ### CLI Usage
268
+
269
+ ```bash
270
+ # Search Tiktok Users
271
+ tiktokdl search user <username>
272
+
273
+ # Search Tiktok Users with pagination
274
+ tiktokdl search user <username> -p 1
275
+
276
+ # Search Tiktok Users with proxy
277
+ tiktokdl search user <username> -p 1 -proxy "http://your-proxy-url"
278
+
279
+ # Search Tiktok Live Streams
280
+ tiktokdl search live <username>
281
+
282
+ # Search Tiktok Live Streams with pagination
283
+ tiktokdl search live <username> -p 1
284
+
285
+ # Search Tiktok Live Streams with proxy
286
+ tiktokdl search live <username> -p 1 -proxy "http://your-proxy-url"
287
+
288
+ # Search Tiktok Videos
289
+ tiktokdl search video <query>
290
+
291
+ # Search Tiktok Videos with pagination
292
+ tiktokdl search video <query> -p 1
293
+
294
+ # Search Tiktok Videos with proxy
295
+ tiktokdl search video <query> -p 1 -proxy "http://your-proxy-url"
296
+ ```
297
+
298
+ - [User Search Response](#user-search-response)
299
+ - [Live Search Response](live-search-response)
300
+ - [Video Search Response](#video-search-response)
301
+
302
+ ## Tiktok Stalk User Profile
303
+
304
+ ```javascript
305
+ const Tiktok = require("@tobyg74/tiktok-api-dl")
306
+
307
+ const username = "Tobz2k19"
308
+ Tiktok.StalkUser(username, {
309
+ proxy: "YOUR_PROXY" // optional
310
+ }).then((result) => console.log(result))
311
+ ```
312
+
313
+ ### CLI Usage
314
+
315
+ ```bash
316
+ # Stalk User Profile
317
+ tiktokdl stalk <username>
318
+
319
+ # Stalk User Profile with proxy
320
+ tiktokdl stalk <username> -proxy "http://your-proxy-url"
321
+ ```
322
+
323
+ - [Tiktok Stalk User Response](#tiktok-stalk-user-profile-1)
324
+
325
+ ## Tiktok Video Comments
326
+
327
+ ```javascript
328
+ const Tiktok = require("@tobyg74/tiktok-api-dl")
329
+
330
+ const url = "https://vt.tiktok.com/xxxxxxxx"
331
+ Tiktok.GetVideoComments(url, {
332
+ commentLimit: 10, // optional, default is 30
333
+ proxy: "YOUR_PROXY" // optional
334
+ }).then((result) => console.log(result))
335
+ ```
336
+
337
+ ### CLI Usage
338
+
339
+ ```bash
340
+ # Get Video Comments
341
+ tiktokdl getvideocomments "https://vt.tiktok.com/xxxxxxxx"
342
+
343
+ # Get Video Comments with limit of comments
344
+ tiktokdl getvideocomments "https://vt.tiktok.com/xxxxxxxx" -l 10
345
+
346
+ # Get Video Comments with proxy
347
+ tiktokdl getvideocomments "https://vt.tiktok.com/xxxxxxxx" -l 10 -proxy "http://your-proxy-url"
348
+ ```
349
+
350
+ - [Tiktok Video Comments Response](#tiktok-video-comments-1)
351
+
352
+ ## Tiktok Get User Posts
353
+
354
+ ```javascript
355
+ const Tiktok = require("@tobyg74/tiktok-api-dl")
356
+
357
+ const username = "Tobz2k19"
358
+ Tiktok.GetUserPosts(username, {
359
+ postLimit: 10, // optional, default is 30
360
+ proxy: "YOUR_PROXY" // optional
361
+ }).then((result) => console.log(result))
362
+ ```
363
+
364
+ ### CLI Usage
365
+
366
+ ```bash
367
+ # Get User Posts
368
+ tiktokdl getuserposts <username>
369
+
370
+ # Get User Posts with limit of posts
371
+ tiktokdl getuserposts <username> -l 10
372
+
373
+ # Get User Posts with proxy
374
+ tiktokdl getuserposts <username> -l 10 -proxy "http://your-proxy-url"
375
+ ```
376
+
377
+ - [Tiktok User Posts Response](#tiktok-user-posts)
378
+
379
+ ## Tiktok Get User Reposts
380
+
381
+ ```javascript
382
+ const Tiktok = require("@tobyg74/tiktok-api-dl")
383
+
384
+ const username = "Tobz2k19"
385
+ Tiktok.GetUserReposts(username, {
386
+ postLimit: 10, // optional, default is 30
387
+ proxy: "YOUR_PROXY" // optional
388
+ }).then((result) => console.log(result))
389
+ ```
390
+
391
+ ### CLI Usage
392
+
393
+ ```bash
394
+ # Get User Reposts
395
+ tiktokdl getuserreposts <username>
396
+
397
+ # Get User Reposts with limit of reposts
398
+ tiktokdl getuserreposts <username> -l 10
399
+
400
+ # Get User Reposts with proxy
401
+ tiktokdl getuserreposts <username> -l 10 -proxy "http://your-proxy-url"
402
+ ```
403
+
404
+ - [Tiktok User Reposts Response](#tiktok-user-reposts)
405
+
406
+ ## Tiktok Get User Favorite Videos
407
+
408
+ - Note: To use this feature, you must be logged in with valid TikTok cookies to access user's liked videos
409
+
410
+ ```javascript
411
+ const Tiktok = require("@tobyg74/tiktok-api-dl")
412
+
413
+ const username = "Tobz2k19"
414
+ Tiktok.GetUserLiked(username, {
415
+ postLimit: 10, // optional, default is 30
416
+ cookie: "YOUR_COOKIE", // needed
417
+ proxy: "YOUR_PROXY" // optional
418
+ })
419
+ ```
420
+
421
+ ### CLI Usage
422
+
423
+ ```bash
424
+ # Get User Liked Videos
425
+ tiktokdl getuserliked <username>
426
+
427
+ # Get User Liked Videos with limit of posts
428
+ tiktokdl getuserliked <username> -l 10
429
+
430
+ # Get User Liked Videos with proxy
431
+ tiktokdl getuserliked <username> -l 10 -proxy "http://your-proxy-url"
432
+ ```
433
+
434
+ - [Tiktok User Liked Videos Response](#tiktok-user-liked-videos)
435
+
436
+ ## Tiktok Collection
437
+
438
+ Get videos from a TikTok collection (supports collection ID or URL)
439
+
440
+ ```javascript
441
+ const Tiktok = require("@tobyg74/tiktok-api-dl")
442
+
443
+ // Using collection ID
444
+ const collectionId = "7507916135931218695"
445
+ Tiktok.Collection(collectionId, {
446
+ page: 1, // optional, default is 1
447
+ count: 5, // optional, default is 5
448
+ proxy: "YOUR_PROXY" // optional
449
+ }).then((result) => console.log(result))
450
+
451
+ // Using collection URL
452
+ const collectionUrl = "https://www.tiktok.com/@username/collection/name-id"
453
+ Tiktok.Collection(collectionUrl, {
454
+ page: 1,
455
+ count: 5,
456
+ proxy: "YOUR_PROXY"
457
+ }).then((result) => console.log(result))
458
+ ```
459
+
460
+ ### CLI Usage
461
+
462
+ ```bash
463
+ # Using download command with collection URL
464
+ tiktokdl download "https://www.tiktok.com/@username/collection/name-id"
465
+
466
+ # Using download command with count
467
+ tiktokdl download "https://www.tiktok.com/@username/collection/name-id" -c 5
468
+
469
+ # Using collection ID
470
+ tiktokdl collection 7507916135931218695 -c 5
471
+
472
+ # Using collection URL
473
+ tiktokdl collection "https://www.tiktok.com/@username/collection/name-id"
474
+
475
+ # Using collection URL with count
476
+ tiktokdl collection "https://www.tiktok.com/@username/collection/name-id" -c 5
477
+
478
+ # With page for pagination
479
+ tiktokdl collection 7507916135931218695 -p 1 -c 5
480
+
481
+ # With proxy
482
+ tiktokdl collection 7507916135931218695 -c 5 -proxy "http://your-proxy-url"
483
+ ```
484
+
485
+ - [Tiktok Collection Response](#tiktok-collection-1)
486
+
487
+ ## Tiktok Playlist
488
+
489
+ Get videos from a TikTok playlist (supports playlist ID or URL)
490
+
491
+ ```javascript
492
+ const Tiktok = require("@tobyg74/tiktok-api-dl")
493
+
494
+ const playlistIdOrUrl = "https://www.tiktok.com/@username/playlist/name-id"
495
+ Tiktok.Playlist(playlistIdOrUrl, {
496
+ page: 1,
497
+ count: 5,
498
+ proxy: "YOUR_PROXY"
499
+ }).then((result) => console.log(result))
500
+ ```
501
+
502
+ ### CLI Usage
503
+
504
+ ```bash
505
+ # Using download command with playlist URL
506
+ tiktokdl download "https://www.tiktok.com/@username/playlist/name-id"
507
+
508
+ # Using download command with count
509
+ tiktokdl download "https://www.tiktok.com/@username/playlist/name-id" -c 5
510
+
511
+ # Using playlist ID
512
+ tiktokdl download 7507916135931218695 -c 5
513
+
514
+ # Using playlist URL
515
+ tiktokdl playlist "https://www.tiktok.com/@username/playlist/name-id" -c 5
516
+
517
+ # With page for pagination
518
+ tiktokdl playlist 7507916135931218695 -p 1 -c 5
519
+
520
+ # With proxy
521
+ tiktokdl playlist 7507916135931218695 -c 5 -proxy "http://your-proxy-url"
522
+ ```
523
+
524
+ - [Tiktok Playlist Response](#tiktok-playlist-1)
525
+
526
+ ## Tiktok Trending
527
+
528
+ Get trending content and creators from TikTok's discovery/explore page
529
+
530
+ ```javascript
531
+ const Tiktok = require("@tobyg74/tiktok-api-dl")
532
+
533
+ // Get all trending content (full data structure)
534
+ Tiktok.Trending({
535
+ proxy: "YOUR_PROXY" // optional
536
+ }).then((result) => console.log(result))
537
+
538
+ // Get trending creators only (simplified data)
539
+ Tiktok.TrendingCreators({
540
+ proxy: "YOUR_PROXY" // optional
541
+ }).then((result) => console.log(result))
542
+ ```
543
+
544
+ ### CLI Usage
545
+
546
+ ```bash
547
+ # Get trending content
548
+ tiktokdl trending
549
+
550
+ # Get trending creators only
551
+ tiktokdl trending-creators
552
+
553
+ # With proxy
554
+ tiktokdl trending -proxy "http://your-proxy-url"
555
+ tiktokdl trending-creators -proxy "http://your-proxy-url"
556
+ ```
557
+
558
+ - [Tiktok Trending Response](#tiktok-trending-1)
559
+
560
+ ## Tiktok Get Videos by Music ID
561
+
562
+ Get videos that use a specific music/audio track by providing the music ID or URL
563
+
564
+ ```javascript
565
+ const Tiktok = require("@tobyg74/tiktok-api-dl")
566
+
567
+ // Using music ID
568
+ const musicId = "7034143722082192134"
569
+ Tiktok.GetVideosByMusicId(musicId, {
570
+ page: 1, // optional, default is 1
571
+ count: 30, // optional, default is 30
572
+ proxy: "YOUR_PROXY" // optional
573
+ }).then((result) => console.log(result))
574
+
575
+ // Or using music URL
576
+ const musicUrl = "https://www.tiktok.com/music/QKThr-6771810675950880769"
577
+ Tiktok.GetVideosByMusicId(musicUrl, {
578
+ page: 1,
579
+ count: 30
580
+ }).then((result) => console.log(result))
581
+ ```
582
+
583
+ ### CLI Usage
584
+
585
+ ```bash
586
+ # Get videos by music ID
587
+ tiktokdl getmusicvideos 7034143722082192134
588
+
589
+ # Get videos by music URL
590
+ tiktokdl getmusicvideos "https://www.tiktok.com/music/QKThr-6771810675950880769"
591
+
592
+ # Get videos by music ID with page and count
593
+ tiktokdl getmusicvideos 7034143722082192134 -p 1 -c 20
594
+
595
+ # Get videos by music ID with proxy
596
+ tiktokdl getmusicvideos 7034143722082192134 -p 1 -c 20 --proxy "http://your-proxy-url"
597
+
598
+ # Get raw JSON response
599
+ tiktokdl getmusicvideos 7034143722082192134 -r
600
+ ```
601
+
602
+ - [Tiktok Music Videos Response](#tiktok-music-videos-response)
603
+
604
+ ## Tiktok Get Music Detail
605
+
606
+ Get detailed information about a music/audio track by providing the music ID or URL. This feature uses xttparams encryption for enhanced security.
607
+
608
+ ```javascript
609
+ const Tiktok = require("@tobyg74/tiktok-api-dl")
610
+
611
+ // Using music ID
612
+ const musicId = "7562597337407785760"
613
+ Tiktok.GetMusicDetail(musicId, {
614
+ cookie: "YOUR_COOKIE", // required
615
+ proxy: "YOUR_PROXY" // optional
616
+ }).then((result) => console.log(result))
617
+
618
+ // Or using music URL
619
+ const musicUrl = "https://www.tiktok.com/music/QKThr-6771810675950880769"
620
+ Tiktok.GetMusicDetail(musicUrl, {
621
+ cookie: "YOUR_COOKIE"
622
+ }).then((result) => console.log(result))
623
+ ```
624
+
625
+ ### CLI Usage
626
+
627
+ **Note:** This command requires a cookie. Set your cookie first using `tiktokdl cookie set <value>`
628
+
629
+ ```bash
630
+ # Set cookie first (required)
631
+ tiktokdl cookie set "YOUR_COOKIE_VALUE"
632
+
633
+ # Get music detail by ID
634
+ tiktokdl getmusicdetail 7562597337407785760
635
+
636
+ # Get music detail by URL
637
+ tiktokdl getmusicdetail "https://www.tiktok.com/music/QKThr-6771810675950880769"
638
+
639
+ # Get music detail with proxy
640
+ tiktokdl getmusicdetail 7562597337407785760 --proxy "http://your-proxy-url"
641
+
642
+ # Get raw JSON response
643
+ tiktokdl getmusicdetail 7562597337407785760 -r
644
+ ```
645
+
646
+ Download music/audio files from TikTok. Requires cookie authentication.
647
+
648
+ ### CLI Usage for Downloading Music
649
+
650
+ ```bash
651
+ # Set cookie first (required for downloading)
652
+ tiktokdl cookie set "YOUR_TIKTOK_COOKIE"
653
+
654
+ # Download by music ID
655
+ tiktokdl downloadmusic 7562597337407785760
656
+
657
+ # Download by music URL
658
+ tiktokdl downloadmusic "https://www.tiktok.com/music/QKThr-6771810675950880769"
659
+
660
+ # Custom output directory
661
+ tiktokdl downloadmusic 7562597337407785760 -o "./my-music"
662
+
663
+ # With proxy
664
+ tiktokdl downloadmusic 7562597337407785760 --proxy "http://your-proxy-url"
665
+ ```
666
+
667
+ **How to get TikTok cookie:**
668
+
669
+ 1. Open TikTok in your browser and login
670
+ 2. Open DevTools (F12)
671
+ 3. Go to Application/Storage > Cookies
672
+ 4. Copy the entire cookie value
673
+ 5. Set it using: `tiktokdl cookie set "YOUR_COOKIE"`
674
+
675
+ - [Tiktok Music Detail Response](#tiktok-music-detail-response)
676
+
677
+ # API Response Types
678
+
679
+ ## Tiktok Downloader
680
+
681
+ ### Version 1 Response
682
+
683
+ <details>
684
+ <summary>Click to expand</summary>
685
+
686
+ ```typescript
687
+ interface TiktokAPIResponse {
688
+ status: "success" | "error"
689
+ message?: string
690
+ result?: {
691
+ type: "video" | "image"
692
+ id: string
693
+ createTime: number
694
+ desc: string
695
+ author: {
696
+ uid: number
697
+ username: string
698
+ nickname: string
699
+ signature: string
700
+ region: string
701
+ avatarThumb: string[]
702
+ avatarMedium: string[]
703
+ url: string
704
+ }
705
+ statistics: {
706
+ playCount: number
707
+ downloadCount: number
708
+ shareCount: number
709
+ commentCount: number
710
+ likeCount: number
711
+ collectCount: number
712
+ forwardCount: number
713
+ whatsappShareCount: number
714
+ loseCount: number
715
+ loseCommentCount: number
716
+ repostCount: number
717
+ }
718
+ hashtag: string[]
719
+ isTurnOffComment: boolean
720
+ isADS: boolean
721
+ cover?: string[]
722
+ dynamicCover?: string[]
723
+ originCover?: string[]
724
+ video?: {
725
+ ratio: string
726
+ duration: number
727
+ playAddr: string[]
728
+ downloadAddr: string[]
729
+ cover: string[]
730
+ dynamicCover: string[]
731
+ originCover: string[]
732
+ }
733
+ images?: string[]
734
+ music: {
735
+ id: number
736
+ title: string
737
+ author: string
738
+ album: string
739
+ playUrl: string[]
740
+ coverLarge: string[]
741
+ coverMedium: string[]
742
+ coverThumb: string[]
743
+ duration: number
744
+ isCommerceMusic: boolean
745
+ isOriginalSound: boolean
746
+ isAuthorArtist: boolean
747
+ }
748
+ }
749
+ resultNotParsed?: any
750
+ }
751
+ ```
752
+
753
+ </details>
754
+
755
+ ### Version 2 Response
756
+
757
+ <details>
758
+ <summary>Click to expand</summary>
759
+
760
+ ```typescript
761
+ interface SSSTikResponse {
762
+ status: "success" | "error"
763
+ message?: string
764
+ result?: {
765
+ type: "image" | "video" | "music"
766
+ desc?: string
767
+ author?: {
768
+ avatar: string
769
+ nickname: string
770
+ }
771
+ statistics?: {
772
+ likeCount: string
773
+ commentCount: string
774
+ shareCount: string
775
+ }
776
+ images?: string[]
777
+ video?: {
778
+ playAddr: string
779
+ }
780
+ music?: {
781
+ playUrl: string
782
+ }
783
+ direct?: string
784
+ }
785
+ }
786
+ ```
787
+
788
+ </details>
789
+
790
+ ### Version 3 Response
791
+
792
+ <details>
793
+ <summary>Click to expand</summary>
794
+
795
+ ```typescript
796
+ interface MusicalDownResponse {
797
+ status: "success" | "error"
798
+ message?: string
799
+ result?: {
800
+ type: "video" | "image"
801
+ desc?: string
802
+ author?: {
803
+ avatar?: string
804
+ nickname?: string
805
+ }
806
+ music?: string
807
+ images?: string[]
808
+ videoHD?: string
809
+ videoWatermark?: string
810
+ }
811
+ }
812
+ ```
813
+
814
+ </details>
815
+
816
+ ## Tiktok Search
817
+
818
+ ### User Search Response
819
+
820
+ <details>
821
+ <summary>Click to expand</summary>
822
+
823
+ ```typescript
824
+ interface TiktokUserSearchResponse {
825
+ status: "success" | "error"
826
+ message?: string
827
+ result?: Array<{
828
+ uid: string
829
+ username: string
830
+ nickname: string
831
+ signature: string
832
+ followerCount: number
833
+ avatarThumb: string
834
+ isVerified: boolean
835
+ secUid: string
836
+ url: string
837
+ }>
838
+ page?: number
839
+ totalResults?: number
840
+ }
841
+ ```
842
+
843
+ </details>
844
+
845
+ ### Live Search Response
846
+
847
+ <details>
848
+ <<<<<<< HEAD
849
+ <summary>Click to expand</summary>
850
+ =======
851
+ >>>>>>> 0faec9d6c3879db096e5b668c35e0e323900e47b
852
+
853
+ ```typescript
854
+ interface TiktokLiveSearchResponse {
855
+ status: "success" | "error"
856
+ message?: string
857
+ result?: Array<{
858
+ id: string
859
+ title: string
860
+ cover: string[]
861
+ squareCover: string[]
862
+ rectangleCover: string[]
863
+ liveTypeThirdParty: boolean
864
+ hashtag: string
865
+ startTime: number
866
+ stats: {
867
+ totalUser: number
868
+ viewerCount: number
869
+ likeCount: number
870
+ }
871
+ owner: {
872
+ id: string
873
+ nickname: string
874
+ username: string
875
+ signature: string
876
+ avatarThumb: string[]
877
+ avatarMedium: string[]
878
+ avatarLarge: string[]
879
+ modifyTime: number
880
+ stats: {
881
+ followingCount: number
882
+ followerCount: number
883
+ }
884
+ isVerified: boolean
885
+ }
886
+ }>
887
+ page?: number
888
+ totalResults?: number
889
+ }
890
+ ```
891
+
892
+ </details>
893
+
894
+ ### Video Search Response
895
+
896
+ <details>
897
+ <summary>Click to expand</summary>
898
+
899
+ ```typescript
900
+ interface TiktokVideoSearchResponse {
901
+ status: "success" | "error"
902
+ message?: string
903
+ result?: Array<{
904
+ id: string
905
+ desc: string
906
+ createTime: number
907
+ author: {
908
+ id: string
909
+ uniqueId: string
910
+ nickname: string
911
+ avatarThumb: string
912
+ avatarMedium: string
913
+ avatarLarger: string
914
+ signature: string
915
+ verified: boolean
916
+ secUid: string
917
+ openFavorite: boolean
918
+ privateAccount: boolean
919
+ isADVirtual: boolean
920
+ tiktokSeller: boolean
921
+ isEmbedBanned: boolean
922
+ }
923
+ stats: {
924
+ collectCount: number
925
+ commentCount: number
926
+ likeCount: number
927
+ playCount: number
928
+ shareCount: number
929
+ }
930
+ video: {
931
+ id: string
932
+ ratio: string
933
+ cover: string
934
+ originCover: string
935
+ dynamicCover: string
936
+ playAddr: string
937
+ downloadAddr: string
938
+ format: string
939
+ }
940
+ music: {
941
+ id: string
942
+ title: string
943
+ playUrl: string
944
+ coverThumb: string
945
+ coverMedium: string
946
+ coverLarge: string
947
+ authorName: string
948
+ original: boolean
949
+ album: string
950
+ duration: number
951
+ isCopyrighted: boolean
952
+ }
953
+ }>
954
+ page?: number
955
+ totalResults?: number
956
+ }
957
+ ```
958
+
959
+ </details>
960
+
961
+ ## Tiktok Stalk User Profile
962
+
963
+ ### Profile Response
964
+
965
+ <details>
966
+ <summary>Click to expand</summary>
967
+
968
+ ```typescript
969
+ interface TiktokStalkUserResponse {
970
+ status: "success" | "error"
971
+ message?: string
972
+ result?: {
973
+ user: {
974
+ username: string
975
+ nickname: string
976
+ avatar: string
977
+ signature: string
978
+ verified: boolean
979
+ region: string
980
+ }
981
+ stats: {
982
+ followerCount: number
983
+ followingCount: number
984
+ heartCount: number
985
+ videoCount: number
986
+ likeCount: number
987
+ }
988
+ }
989
+ }
990
+ ```
991
+
992
+ </details>
993
+
994
+ ## Tiktok Video Comments
995
+
996
+ ### Comments Response
997
+
998
+ <details>
999
+ <summary>Click to expand</summary>
1000
+
1001
+ ```typescript
1002
+ interface TiktokVideoCommentsResponse {
1003
+ status: "success" | "error"
1004
+ message?: string
1005
+ result?: Array<{
1006
+ cid: string
1007
+ text: string
1008
+ commentLanguage: string
1009
+ createTime: number
1010
+ likeCount: number
1011
+ isAuthorLiked: boolean
1012
+ isCommentTranslatable: boolean
1013
+ replyCommentTotal: number
1014
+ replyComment: []
1015
+ user: User
1016
+ url: string
1017
+ }>
1018
+ totalComments?: number
1019
+ }
1020
+ ```
1021
+
1022
+ </details>
1023
+
1024
+ ## Tiktok User Posts
1025
+
1026
+ ### User Posts Response
1027
+
1028
+ <details>
1029
+ <summary>Click to expand</summary>
1030
+
1031
+ ```typescript
1032
+ interface TiktokUserPostsResponse {
1033
+ status: "success" | "error"
1034
+ message?: string
1035
+ result?: Array<{
1036
+ id: string
1037
+ desc: string
1038
+ createTime: number
1039
+ digged: number
1040
+ duetEnabled: number
1041
+ forFriend: number
1042
+ officalItem: number
1043
+ originalItem: number
1044
+ privateItem: number
1045
+ shareEnabled: number
1046
+ stitchEnabled: number
1047
+ stats: {
1048
+ collectCount: number
1049
+ commentCount: number
1050
+ likeCount: number
1051
+ playCount: number
1052
+ shareCount: number
1053
+ }
1054
+ author: {
1055
+ id: string
1056
+ username: string
1057
+ nickname: string
1058
+ avatarLarger: string
1059
+ avatarThumb: string
1060
+ avatarMedium: string
1061
+ signature: string
1062
+ verified: boolean
1063
+ openFavorite: boolean
1064
+ privateAccount: boolean
1065
+ isADVirtual: boolean
1066
+ isEmbedBanned: boolean
1067
+ }
1068
+ video?: {
1069
+ id: string
1070
+ duration: number
1071
+ ratio: string
1072
+ cover: string
1073
+ originCover: string
1074
+ dynamicCover: string
1075
+ playAddr: string
1076
+ downloadAddr: string
1077
+ format: string
1078
+ bitrate: number
1079
+ }
1080
+ music: {
1081
+ authorName: string
1082
+ coverLarge: string
1083
+ coverMedium: string
1084
+ coverThumb: string
1085
+ duration: number
1086
+ id: string
1087
+ title: string
1088
+ playUrl: string
1089
+ original: boolean
1090
+ }
1091
+ images?: string[]
1092
+ }>
1093
+ totalPosts?: number
1094
+ }
1095
+ ```
1096
+
1097
+ </details>
1098
+
1099
+ ## Tiktok User Reposts
1100
+
1101
+ ### User Reposts Response
1102
+
1103
+ <details>
1104
+ <summary>Click to expand</summary>
1105
+
1106
+ ```typescript
1107
+ interface TiktokUserRepostsResponse {
1108
+ status: "success" | "error"
1109
+ message?: string
1110
+ result?: Array<{
1111
+ id: string
1112
+ desc: string
1113
+ createTime: number
1114
+ digged: boolean
1115
+ duetEnabled?: boolean
1116
+ forFriend: boolean
1117
+ officalItem: boolean
1118
+ originalItem: boolean
1119
+ privateItem: boolean
1120
+ secret: boolean
1121
+ shareEnabled: boolean
1122
+ stitchEnabled?: boolean
1123
+ stats: {
1124
+ shareCount: number
1125
+ collectCount?: number
1126
+ commentCount?: number
1127
+ likeCount?: number
1128
+ playCount?: number
1129
+ repostCount?: number
1130
+ }
1131
+ author: {
1132
+ id: string
1133
+ username: string
1134
+ nickname: string
1135
+ avatarLarger: string
1136
+ avatarThumb: string
1137
+ avatarMedium: string
1138
+ signature: string
1139
+ verified: boolean
1140
+ openFavorite?: boolean
1141
+ privateAccount?: boolean
1142
+ isADVirtual?: boolean
1143
+ isEmbedBanned?: boolean
1144
+ }
1145
+ video?: {
1146
+ id: string
1147
+ duration: number
1148
+ ratio: string
1149
+ cover: string
1150
+ originCover: string
1151
+ dynamicCover: string
1152
+ playAddr: string
1153
+ downloadAddr: string
1154
+ format: string
1155
+ bitrate: number
1156
+ }
1157
+ music: {
1158
+ authorName?: string
1159
+ coverLarge?: string
1160
+ coverMedium?: string
1161
+ coverThumb?: string
1162
+ duration?: number
1163
+ id?: string
1164
+ title?: string
1165
+ playUrl?: string
1166
+ original?: boolean
1167
+ tt2dsp?: any
1168
+ }
1169
+ imagePost?: {
1170
+ title: string
1171
+ images?: Array<{
1172
+ imageURL: {
1173
+ urlList: string[]
1174
+ }
1175
+ }>
1176
+ }
1177
+ AIGCDescription?: string
1178
+ CategoryType?: number
1179
+ collected?: boolean
1180
+ contents?: any[]
1181
+ challenges?: any[]
1182
+ textExtra?: any[]
1183
+ textLanguage?: string
1184
+ textTranslatable?: boolean
1185
+ titleLanguage?: string
1186
+ titleTranslatable?: boolean
1187
+ isAd?: boolean
1188
+ isReviewing?: boolean
1189
+ itemCommentStatus?: number
1190
+ item_control?: {
1191
+ can_repost?: boolean
1192
+ can_share?: boolean
1193
+ }
1194
+ duetDisplay?: number
1195
+ stitchDisplay?: number
1196
+ diversificationId?: number
1197
+ backendSourceEventTracking?: string
1198
+ stickersOnItem?: any[]
1199
+ videoSuggestWordsList?: any
1200
+ }>
1201
+ totalReposts?: number
1202
+ }
1203
+ ```
1204
+
1205
+ </details>
1206
+
1207
+ ## Tiktok User Favorite Videos
1208
+
1209
+ ### User Favorite Videos Response
1210
+
1211
+ <details>
1212
+ <summary>Click to expand</summary>
1213
+
1214
+ ```typescript
1215
+ interface TiktokUserFavoriteVideosResponse {
1216
+ status: "success" | "error"
1217
+ message?: string
1218
+ result?: Array<{
1219
+ id: string
1220
+ desc: string
1221
+ createTime: string
1222
+ duetEnabled: boolean
1223
+ digged: boolean
1224
+ forFriend: boolean
1225
+ isAd: boolean
1226
+ originalItem: boolean
1227
+ privateItem: boolean
1228
+ officialItem: boolean
1229
+ secret: boolean
1230
+ shareEnabled: boolean
1231
+ stitchEanbled: boolean
1232
+ textTranslatable: boolean
1233
+ author: {
1234
+ id: string
1235
+ username: string
1236
+ nickname: string
1237
+ avatarLarger: string
1238
+ avatarThumb: string
1239
+ avatarMedium: string
1240
+ signature: string
1241
+ verified: string
1242
+ openFavorite: string
1243
+ privateAccount: string
1244
+ isADVirtual: string
1245
+ isEmbedBanned: string
1246
+ }
1247
+ stats: {
1248
+ collectCount: string
1249
+ commentCount: string
1250
+ likeCount: string
1251
+ playCount: string
1252
+ repostCount: string
1253
+ shareCount: string
1254
+ }
1255
+ video?: {
1256
+ id: string
1257
+ videoID: string
1258
+ duration: number
1259
+ ratio: string
1260
+ cover: string
1261
+ originCover: string
1262
+ dynamicCover: string
1263
+ playAddr: string
1264
+ downloadAddr: string
1265
+ format: string
1266
+ bitrate: number
1267
+ bitrateInfo: any[]
1268
+ }
1269
+ imagePost?: Array<{
1270
+ title: string
1271
+ images: string[]
1272
+ }>
1273
+ music: {
1274
+ id: string
1275
+ title: string
1276
+ playUrl: string
1277
+ coverThumb: string
1278
+ coverMedium: string
1279
+ coverLarge: string
1280
+ authorName: string
1281
+ original: boolean
1282
+ album: string
1283
+ duration: number
1284
+ isCopyrighted: boolean
1285
+ private: boolean
1286
+ }
1287
+ }>
1288
+ totalPosts?: number
1289
+ }
1290
+ ```
1291
+
1292
+ </details>
1293
+
1294
+ ## Tiktok Collection
1295
+
1296
+ ### Collection Response
1297
+
1298
+ <details>
1299
+ <summary>Click to expand</summary>
1300
+
1301
+ ```typescript
1302
+ interface TiktokCollectionResponse {
1303
+ status: "success" | "error"
1304
+ message?: string
1305
+ result?: {
1306
+ itemList: Array<{
1307
+ id: string
1308
+ desc: string
1309
+ createTime: number
1310
+ author?: {
1311
+ id: string
1312
+ uniqueId: string
1313
+ nickname: string
1314
+ avatarThumb: string
1315
+ avatarMedium: string
1316
+ avatarLarger: string
1317
+ signature: string
1318
+ verified: boolean
1319
+ }
1320
+ statistics?: {
1321
+ playCount: number
1322
+ diggCount: number
1323
+ shareCount: number
1324
+ commentCount: number
1325
+ collectCount: number
1326
+ }
1327
+ video?: {
1328
+ id: string
1329
+ height: number
1330
+ width: number
1331
+ duration: number
1332
+ ratio: string
1333
+ cover: string
1334
+ originCover: string
1335
+ dynamicCover: string
1336
+ playAddr: string
1337
+ downloadAddr: string
1338
+ format: string
1339
+ bitrate: number
1340
+ }
1341
+ textExtra?: Array<{
1342
+ hashtagName: string
1343
+ hashtagId: string
1344
+ type: number
1345
+ }>
1346
+ }>
1347
+ hasMore: boolean
1348
+ cursor: string
1349
+ }
1350
+ }
1351
+ ```
1352
+
1353
+ </details>
1354
+
1355
+ ## Tiktok Playlist
1356
+
1357
+ ### Playlist Response
1358
+
1359
+ <details>
1360
+ <summary>Click to expand</summary>
1361
+
1362
+ ```typescript
1363
+ status: "success" | "error"
1364
+ message?: string
1365
+ result?: {
1366
+ hasMore: boolean
1367
+ itemList: Array<{
1368
+ id: string
1369
+ desc: string
1370
+ createTime: number
1371
+ author: PlaylistAuthor
1372
+ stats: Statistics
1373
+ video: VideoTiktokAPI
1374
+ music: MusicTiktokAPI
1375
+ challenges: Array<{
1376
+ id: string
1377
+ title: string
1378
+ desc: string
1379
+ coverLarger: string
1380
+ coverMedium: string
1381
+ coverThumb: string
1382
+ profileLarger: string
1383
+ profileMedium: string
1384
+ profileThumb: string
1385
+ }>
1386
+ collected: boolean
1387
+ digged: boolean
1388
+ duetDisplay: number
1389
+ forFriend: boolean
1390
+ officalItem: boolean
1391
+ originalItem: boolean
1392
+ privateItem: boolean
1393
+ shareEnabled: boolean
1394
+ stitchDisplay: number
1395
+ textExtra: Array<{
1396
+ awemeId: string
1397
+ end: number
1398
+ hashtagName: string
1399
+ isCommerce: boolean
1400
+ start: number
1401
+ subType: number
1402
+ type: number
1403
+ }>
1404
+ }>
1405
+ extra?: {
1406
+ fatal_item_ids: string[]
1407
+ logid: string
1408
+ now: number
1409
+ }
1410
+ }
1411
+ ```
1412
+
1413
+ </details>
1414
+
1415
+ ## Tiktok Trending
1416
+
1417
+ ### Trending Response
1418
+
1419
+ <details>
1420
+ <<<<<<< HEAD
1421
+ <summary>Click to expand</summary>
1422
+ =======
1423
+ >>>>>>> 0faec9d6c3879db096e5b668c35e0e323900e47b
1424
+
1425
+ ```typescript
1426
+ interface TiktokTrendingResponse {
1427
+ status: "success" | "error"
1428
+ message?: string
1429
+ result?: Array<{
1430
+ exploreList: Array<{
1431
+ cardItem: {
1432
+ id: string
1433
+ type: number
1434
+ cover: string
1435
+ title: string
1436
+ subTitle: string
1437
+ description: string
1438
+ link: string
1439
+ round: boolean
1440
+ playToken: string
1441
+ keyToken: string
1442
+ extraInfo: {
1443
+ verified: boolean
1444
+ fans: number
1445
+ likes: number
1446
+ userId: string
1447
+ secUid: string
1448
+ relation: number
1449
+ video: number
1450
+ following: number
1451
+ heart: number
1452
+ digg: number
1453
+ }
1454
+ }
1455
+ }>
1456
+ pageState: {
1457
+ regionAppId: number
1458
+ os: string
1459
+ region: string
1460
+ baseURL: string
1461
+ appType: string
1462
+ fullUrl: string
1463
+ }
1464
+ }>
1465
+ }
1466
+ ```
1467
+
1468
+ </details>
1469
+
1470
+ ### Trending Creators Response
1471
+
1472
+ <details>
1473
+ <summary>Click to expand</summary>
1474
+
1475
+ ```typescript
1476
+ interface TrendingCreatorsResponse {
1477
+ status: "success" | "error"
1478
+ message?: string
1479
+ result?: Array<{
1480
+ id: string
1481
+ username: string
1482
+ nickname: string
1483
+ avatarThumb: string
1484
+ description: string
1485
+ verified: boolean
1486
+ followerCount: number
1487
+ likeCount: number
1488
+ videoCount: number
1489
+ followingCount: number
1490
+ heartCount: number
1491
+ diggCount: number
1492
+ secUid: string
1493
+ link: string
1494
+ }>
1495
+ }
1496
+ ```
1497
+
1498
+ </details>
1499
+
1500
+ ## Tiktok Get Videos by Music ID
1501
+
1502
+ ### Get Music Videos Response
1503
+
1504
+ <details>
1505
+ <summary>Click to expand</summary>
1506
+
1507
+ ```typescript
1508
+ interface TiktokMusicVideosResponse {
1509
+ status: "success" | "error"
1510
+ message?: string
1511
+ result?: {
1512
+ music?: {
1513
+ id: string
1514
+ title: string
1515
+ authorName: string
1516
+ author?: string
1517
+ duration?: number
1518
+ original?: boolean
1519
+ playUrl?: string[]
1520
+ coverThumb?: string
1521
+ coverLarge?: string
1522
+ coverMedium?: string
1523
+ }
1524
+ videos?: Array<{
1525
+ id: string
1526
+ desc?: string
1527
+ createTime: number
1528
+ digged?: boolean
1529
+ duetEnabled?: boolean
1530
+ forFriend?: boolean
1531
+ officalItem?: boolean
1532
+ originalItem?: boolean
1533
+ privateItem?: boolean
1534
+ shareEnabled?: boolean
1535
+ stitchEnabled?: boolean
1536
+ stats: {
1537
+ collectCount?: number
1538
+ commentCount: number
1539
+ diggCount: number
1540
+ playCount: number
1541
+ shareCount: number
1542
+ }
1543
+ author: {
1544
+ id: string
1545
+ uniqueId: string
1546
+ nickname: string
1547
+ avatarLarger?: string
1548
+ avatarThumb?: string
1549
+ avatarMedium?: string
1550
+ signature?: string
1551
+ verified?: boolean
1552
+ openFavorite?: boolean
1553
+ privateAccount?: boolean
1554
+ isADVirtual?: boolean
1555
+ isEmbedBanned?: boolean
1556
+ }
1557
+ video?: {
1558
+ id: string
1559
+ duration: number
1560
+ ratio?: string
1561
+ cover?: string
1562
+ originCover?: string
1563
+ dynamicCover?: string
1564
+ playAddr?: string
1565
+ downloadAddr?: string
1566
+ format?: string
1567
+ bitrate?: number
1568
+ }
1569
+ music: {
1570
+ id: string
1571
+ title: string
1572
+ authorName: string
1573
+ duration: number
1574
+ playUrl?: string[]
1575
+ coverLarge?: string
1576
+ coverMedium?: string
1577
+ coverThumb?: string
1578
+ original?: boolean
1579
+ }
1580
+ imagePost?: string[]
1581
+ effectStickers?: Array<{
1582
+ id: string
1583
+ name: string
1584
+ type?: number
1585
+ }>
1586
+ }>
1587
+ totalVideos?: number
1588
+ }
1589
+ }
1590
+ ```
1591
+
1592
+ </details>
1593
+
1594
+ ## Tiktok Get Music Detail Response
1595
+
1596
+ ### Get Music Detail Response
1597
+
1598
+ <details>
1599
+ <summary>Click to expand</summary>
1600
+
1601
+ ```typescript
1602
+ interface TiktokMusicDetailResponse {
1603
+ status: "success" | "error"
1604
+ message?: string
1605
+ result?: {
1606
+ musicInfo: {
1607
+ author: {
1608
+ id: string
1609
+ nickname: string
1610
+ uniqueId: string
1611
+ signature: string
1612
+ avatarThumb: string
1613
+ avatarMedium: string
1614
+ avatarLarger: string
1615
+ secUid: string
1616
+ privateAccount: boolean
1617
+ ftc: boolean
1618
+ relation: number
1619
+ openFavorite: boolean
1620
+ secret: boolean
1621
+ }
1622
+ music: {
1623
+ id: string
1624
+ title: string
1625
+ authorName: string
1626
+ original: boolean
1627
+ playUrl: string
1628
+ coverLarge: string
1629
+ coverMedium: string
1630
+ coverThumb: string
1631
+ duration: number
1632
+ private: boolean
1633
+ isCopyrighted: boolean
1634
+ }
1635
+ stats: {
1636
+ videoCount: number
1637
+ }
1638
+ }
1639
+ shareMeta: {
1640
+ title: string
1641
+ desc: string
1642
+ }
1643
+ statusCode: number
1644
+ status_msg: string
1645
+ }
1646
+ }
1647
+ ```
1648
+
1649
+ </details>
1650
+ <br>
1651
+
1652
+ # Changelog
1653
+
1654
+ - All changes will be documented in the [CHANGELOG.md](https://github.com/TobyG74/tiktok-api-dl/blob/master/CHANGELOG.md) file.
1655
+
1656
+ # Contributing
1657
+
1658
+ - This repository is open source. We really appreciate it if you want to participate in developing this repository...
1659
+ - Please read our [CONTRIBUTING.md](https://github.com/TobyG74/tiktok-api-dl/blob/master/CONTRIBUTING.md) and [CODE_OF_CONDUCT.md](https://github.com/TobyG74/tiktok-api-dl/blob/master/CODE_OF_CONDUCT.md) before contributing.
1660
+
1661
+ # License
1662
+
1663
+ - This project is licensed under the Apache License - see the [LICENSE](https://github.com/TobyG74/tiktok-api-dl/blob/master/LICENSE) file for details.