14 KiB
14 KiB
Tiktok Downloader & Stalk User
Table of Contents
- Description
- Quick Installation
- Installation Methods
- Usage Guide
- Features
- API Response Types
- Contributing
- License
Description
Note : This project uses the API from Tiktok. This project is made for educational purposes only. This project is not affiliated with Tiktok. This project is not intended to harm or damage the Tiktok platform.
- This project is made to help users to download videos, images / slides and music from Tiktok.
- This project is also made to help users to view someone's profile from Tiktok.
- This project is also made to help users to view comments from a video on Tiktok.
Quick Installation
Install using our automated script:
curl -o install.sh https://raw.githubusercontent.com/TobyG74/tiktok-api-dl/master/install.sh
chmod +x install.sh
./install.sh
The script automatically:
- Verifies Node.js installation and version
- Installs the library using npm or yarn
- Provides usage examples
Installation Methods
Using NPM
npm install @tobyg74/tiktok-api-dl
Using Yarn
yarn add @tobyg74/tiktok-api-dl
Using Github
npm install github:TobyG74/tiktok-api-dl
Usage Guide
Getting Tiktok Cookie
- Install Cookie-Editor
- Login to Tiktok
- Open Cookie-Editor
- Copy the cookie and use it in your code:
COOKIE: "YOUR_COOKIE"
Using CLI
Global Installation
npm install -g @tobyg74/tiktok-api-dl
tiktokdl [command] [options]
Direct Usage
git clone https://github.com/TobyG74/tiktok-api-dl.git
cd tiktok-api-dl
npm install
npx ts-node src/cli/index.ts [command] [options]
NPM Script
npm run cli -- [command] [options]
Examples
$ tiktokdl -h
Usage: tiktokdl [options] [command]
Tiktok downloader and search CLI tool
Options:
-V, --version output the version number
-h, --help display help for command
Commands:
download [options] <url> Download Tiktok Video / Slide / Music
cookie Cookie Manager
search Search Tiktok users or live streams
getcomments [options] <url> Get comments from a Tiktok video
stalk [options] <username> Stalk a Tiktok user
help [command] display help for command
Building from Source
git clone https://github.com/TobyG74/tiktok-api-dl.git
cd tiktok-api-dl
npm install
npm run build
Features
Tiktok Downloader
const Tiktok = require("@tobyg74/tiktok-api-dl")
const url = "https://vt.tiktok.com/xxxxxxxx"
Tiktok.Downloader(url, {
version: "v1", // "v1" | "v2" | "v3"
proxy: "YOUR_PROXY", // optional
showOriginalResponse: true // optional, v1 only
}).then((result) => console.log(result))
Tiktok Search
const Tiktok = require("@tobyg74/tiktok-api-dl")
Tiktok.Search("username", {
type: "user", // "user" | "live"
page: 1,
cookie: "YOUR_COOKIE", // needed
proxy: "YOUR_PROXY" // optional
}).then((result) => console.log(result))
Tiktok Stalk User Profile
const Tiktok = require("@tobyg74/tiktok-api-dl")
const username = "Tobz2k19"
Tiktok.Stalker(username, {
cookie: "YOUR_COOKIE", // optional, if response null
proxy: "YOUR_PROXY" // optional
}).then((result) => console.log(result))
Tiktok Video Comments
const Tiktok = require("@tobyg74/tiktok-api-dl")
const url = "https://vt.tiktok.com/xxxxxxxx"
Tiktok.GetVideoComments(url, {
commentLimit: 10, // optional, default is 30
proxy: "YOUR_PROXY" // optional
}).then((result) => console.log(result))
Tiktok Get User Posts
const Tiktok = require("@tobyg74/tiktok-api-dl")
const username = "Tobz2k19"
Tiktok.GetUserPosts(username, {
postLimit: 10, // optional, default is 30
proxy: "YOUR_PROXY" // optional
}).then((result) => console.log(result))
Tiktok Get User Favorite Videos
const Tiktok = require("@tobyg74/tiktok-api-dl")
const username = "Tobz2k19"
Tiktok.GetUserFavorites(username, {
postLimit: 10, // optional, default is 30
cookie: "YOUR_COOKIE", // needed
proxy: "YOUR_PROXY" // optional
})
API Response Types
Tiktok Downloader
Version 1 Response
interface TiktokAPIResponse {
status: "success" | "error"
message?: string
result?: {
type: "video" | "image"
id: string
createTime: number
description: string
isTurnOffComment: boolean
isADS: boolean
hashtag: string[]
author: {
uid: string
username: string
nickname: string
signature: string
region: string
avatarLarger: string
avatarThumb: string
avatarMedium: string
url: string
}
statistics: {
playCount: number
downloadCount: number
shareCount: number
commentCount: number
diggCount: number
collectCount: number
forwardCount: number
whatsappShareCount: number
loseCount: number
loseCommentCount: number
repostCount: number
}
video?: {
ratio: string
duration: number
playAddr: string
downloadAddr: string
cover: string
originCover: string
dynamicCover: string
}
images?: string[]
music: {
id: number
title: string
author: string
album: string
playUrl: string[]
coverLarge: string[]
coverMedium: string[]
coverThumb: string[]
duration: number
isCommerceMusic: boolean
isOriginalSound: boolean
isAuthorArtist: boolean
}
}
resultNotParsed?: any
}
Version 2 Response
interface SSSTikResponse {
status: "success" | "error"
message?: string
result?: {
type: "video" | "image"
desc?: string
author?: {
nickname?: string
avatar?: string
}
statistics: {
likeCount: string
commentCount: string
shareCount: string
}
video?: string
images?: string[]
music?: string
}
}
Version 3 Response
interface MusicalDownResponse {
status: "success" | "error"
message?: string
result?: {
type: "video" | "image"
desc?: string
author?: {
avatar?: string
nickname?: string
}
music?: string
images?: string[]
videoSD?: string
videoHD?: string
videoWatermark?: string
}
}
Tiktok Search
User Search Response
interface TiktokUserSearchResponse {
status: "success" | "error"
message?: string
result?: Array<{
uid: string
username: string
nickname: string
signature: string
followerCount: number
avatarThumb: string[]
isVerified: boolean
secUid: string
url: string
}>
page: number
totalResults: number
}
Live Search Response
interface TiktokLiveSearchResponse {
status: "success" | "error"
message?: string
result?: Array<{
id: string
title: string
cover: string[]
squareCover: string[]
rectangleCover: string[]
liveTypeThirdParty: boolean
hashtag: string
startTime: number
stats: {
totalUser: number
viewerCount: number
likeCount: number
}
owner: {
id: string
nickname: string
username: string
signature: string
avatarThumb: string[]
avatarMedium: string[]
avatarLarge: string[]
modifyTime: number
stats: {
followingCount: number
followerCount: number
}
isVerified: boolean
}
}>
page: number
totalResults: number
}
Tiktok Stalk User Profile
Profile Response
interface TiktokStalkUserResponse {
status: "success" | "error"
message?: string
result?: {
users: {
username: string
nickname: string
avatar: string
signature: string
verified: boolean
region: string
}
stats: {
followerCount: number
followingCount: number
heartCount: number
videoCount: number
likeCount: number
}
}
}
Tiktok Video Comments
Comments Response
interface TiktokVideoCommentsResponse {
status: "success" | "error"
message?: string
result?: Array<{
cid: string
text: string
commentLanguage: string
createTime: number
likeCount: number
isAuthorLiked: boolean
isCommentTranslatable: boolean
replyCommentTotal: number
replyComment: []
user: User
url: string
}>
totalComments: number
}
Tiktok User Posts
User Posts Response
interface TiktokUserPostsResponse {
status: "success" | "error"
message?: string
result?: Array<{
id: string
desc: string
createTime: number
digged: number
duetEnabled: number
forFriend: number
officalItem: number
originalItem: number
privateItem: number
shareEnabled: number
stitchEnabled: number
stats: {
collectCount: number
commentCount: number
diggCount: number
playCount: number
shareCount: number
}
author: {
id: string
username: string
nickname: string
avatarLarger: string
avatarThumb: string
avatarMedium: string
signature: string
verified: boolean
openFavorite: boolean
privateAccount: boolean
isADVirtual: boolean
isEmbedBanned: boolean
}
video?: {
id: string
duration: number
ratio: string
cover: string
originCover: string
dynamicCover: string
playAddr: string
downloadAddr: string
format: string
bitrate: number
}
music: {
authorName: string
coverLarge: string
coverMedium: string
coverThumb: string
duration: number
id: string
title: string
playUrl: string
original: boolean
}
images?: string[]
}>
}
Tiktok User Favorites
User Favorites Response
interface TiktokUserFavoritesResponse {
status: "success" | "error"
message?: string
result?: Array<{
author: {
id: string
username: string
nickname: string
avatarLarger: string
avatarThumb: string
avatarMedium: string
signature: string
verified: string
openFavorite: string
privateAccount: string
isADVirtual: string
isEmbedBanned: string
}
stats: {
likeCount: string
followerCount: string
followingCount: string
friendCount: string
heartCount: string
postsCount: string
}
}>
}
Changelog
- All changes will be documented in the CHANGELOG.md file.
Contributing
- This repository is open source. We really appreciate it if you want to participate in developing this repository...
- Please read our CONTRIBUTING.md and CODE_OF_CONDUCT.md before contributing.
License
- This project is licensed under the Apache License - see the LICENSE file for details.