Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@tobyg74/tiktok-api-dl

TobyG7414.6kISC1.3.0TypeScript support: included

Scraper for downloading media in the form of videos, images and audio from Tiktok. Also for stalking Tiktok Users

tiktok-api, tiktok-downloader, tiktok-dl, tiktok-nowatermark, tiktok, musically, tiktokv, tiktok-user, tiktok-stalk

readme

Tiktok Downloader & Stalk User



Table of Contents

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

  1. Install Cookie-Editor
  2. Login to Tiktok
  3. Open Cookie-Editor
  4. 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))
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 Liked Videos

  • Note: To use this feature, you must be logged in with valid TikTok cookies to access user's liked videos
const Tiktok = require("@tobyg74/tiktok-api-dl")

const username = "Tobz2k19"
Tiktok.GetUserLiked(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
    author: {
      uid: number
      username: string
      nickname: string
      signature: string
      region: 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
    }
    hashtag: string[]
    isTurnOffComment: boolean
    isADS: boolean
    cover?: string[]
    dynamicCover?: string[]
    originCover?: string[]
    video?: {
      ratio: string
      duration: number
      playAddr: string[]
      downloadAddr: string[]
      cover: string[]
      dynamicCover: string[]
      originCover: 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: "image" | "video" | "music"
    desc?: string
    author?: {
      avatar: string
      nickname: string
    }
    statistics?: {
      likeCount: string
      commentCount: string
      shareCount: string
    }
    images?: string[]
    video?: string
    music?: string
    direct?: 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[]
    videoHD?: string
    videoWatermark?: string
  }
}

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
}

Video Search Response

interface TiktokVideoSearchResponse {
  status: "success" | "error"
  message?: string
  result?: Array<{
    id: string
    desc: string
    createTime: number
    author: {
      id: string
      uniqueId: string
      nickname: string
      avatarThumb: string
      avatarMedium: string
      avatarLarger: string
      signature: string
      verified: boolean
      secUid: string
      openFavorite: boolean
      privateAccount: boolean
      isADVirtual: boolean
      tiktokSeller: boolean
      isEmbedBanned: boolean
    }
    stats: {
      collectCount: number
      commentCount: number
      diggCount: number
      playCount: number
      shareCount: number
    }
    video: {
      id: string
      ratio: string
      cover: string
      originCover: string
      dynamicCover: string
      playAddr: string
      downloadAddr: string
      format: string
    }
    music: {
      id: string
      title: string
      playUrl: string
      coverThumb: string
      coverMedium: string
      coverLarge: string
      authorName: string
      original: boolean
      album: string
      duration: number
      isCopyrighted: boolean
    }
  }>
  page?: number
  totalResults?: number
}

Tiktok Stalk User Profile

Profile Response

interface TiktokStalkUserResponse {
  status: "success" | "error"
  message?: string
  result?: {
    user: {
      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[]
  }>
  totalPosts?: number
}

Tiktok User Liked Videos

User Liked Videos Response

interface TiktokUserFavoriteVideosResponse {
  status: "success" | "error"
  message?: string
  result?: Array<{
    id: string
    desc: string
    createTime: string
    duetEnabled: boolean
    digged: boolean
    forFriend: boolean
    isAd: boolean
    originalItem: boolean
    privateItem: boolean
    officialItem: boolean
    secret: boolean
    shareEnabled: boolean
    stitchEanbled: boolean
    textTranslatable: boolean
    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
      }
    }
    stats: {
      collectCount: string
      commentCount: string
      diggCount: string
      playCount: string
      repostCount: string
      shareCount: string
    }
    video?: {
      id: string
      videoID: string
      duration: number
      ratio: string
      cover: string
      originCover: string
      dynamicCover: string
      playAddr: string
      downloadAddr: string
      format: string
      bitrate: number
      bitrateInfo: any[]
    }
    imagePost?: Array<{
      title: string
      images: string[]
    }>
    music: {
      id: string
      title: string
      playUrl: string
      coverThumb: string
      coverMedium: string
      coverLarge: string
      authorName: string
      original: boolean
      album: string
      duration: number
      isCopyrighted: boolean
      private: boolean
    }
  }>
  totalPosts?: number
}

Changelog

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.

changelog

Changelog

Version 1.0.0 - 16-03-2023

Added

  • Initialize the downloader function fc860d5

Version 1.0.0a - 25-03-2023

Fixed

  • Fixing code to handle errors e683e6f

Version 1.0.0b - 03-04-2023

Added

  • Add Tiktok Profile search using username 1d29989
  • Merge pull request #1 from zennn08/master 1687f82

Changed

Version 1.0.0c - 07-04-2023

Fixed

  • Changing issue handling to be more consistent b48d82b

Version 1.0.0c - 07-04-2023

Fixed

  • Changing issue handling to be more consistent b48d82b

Version 1.0.2 - 08-04-2023

Changed

  • Changing the code to camelCase a3f52ff

Version 1.0.3 - 23-06-2023

Added

  • Added Cover & Dynamic Cover to the response 2f14b9a

Changed

  • Merge pull request #3 from 3IMAD69/master cfa4385
  • Update README.md 97250c5

Version 1.0.5 - 10-09-2023

Added

Version 1.0.5a - 21-09-2023

Added

Fixed

Version 1.0.6 - 07-10-2023

Added

  • Splitting multiple files for easy reading 300530a

Changed

  • Update README.md with improved formatting and content 3bedf83

Version 1.0.7 - 08-10-2023

Added

  • Added Tiktok Downloader V2 Documentation 246c6bd
  • Added Types for Tiktok Downloader V2 & Tiktok Stalk Response f7f6d37

Version 1.0.9 - 12-10-2023

Added

  • Adding multiple types and moving the API url to the api folder e649860

Changed

  • Rename files and types of ssstik downloader 8bccf19

Version 1.0.10 - 14-10-2023

Added

  • Added Tiktok Downloader V3 Documentation 6f18c51
  • Adding Musicaldown as Tiktok Downloader V3 f5849a6
  • Merge pull request #11 from nugraizy/master d6d44e9

Changed

Fixed

  • Fix Tiktok Download V1 method where some of urls does not appear on feed endpoint 8b00a9a
  • Fixed undefined response on object url author 07fa887
  • Fix Typo 5a92162

Version 1.0.11 - 06-11-2023

Added

  • Adding multiple types to the code 4484986

Version 1.0.13 - 11-11-2023

Changed

Fixed

Version 1.0.14 - 28-02-2024

Changed

Fixed

Version 1.0.14a - 22-03-2024

Added

  • Merge pull request #15 from zennn08/master f3b3b3b

Fixed

  • Images Slide undefined in ssstik 2d598b9

Version 1.0.16 - 24-03-2024

Added

  • Added responseParser types 92d2e7a
  • Added asyncRetry to prevent empty data 5851588

Changed

  • Changing the Tiktok API (tiktokv) domain 031051a

Version 1.1.0 - 29-03-2024

Added

  • Added Tiktok Search User Documentation 4a816a8
  • Added Tiktok Search User 722f257
  • Added Contants Folder & Variable 27bee06
  • Added Types for Tiktok Search User 7b988d7

Changed

Fixed

  • Tiktok Downloader Response 8fd77ea

Version 1.1.1 - 30-03-2024

Added

  • Added page as a replacement for the cursor 5d7b538

Fixed

  • Fixed exports on tiktok objects 5d7f3db

Version 1.1.1a - 06-04-2024

Fixed

  • Fixed regex validate tiktok url f00fa49

Version 1.1.4 - 20-04-2024

Added

  • Added postLimit Options c1be62e
  • Restrict too many data requests 383570e

Version 1.1.4a - 30-04-2024

Added

  • Added lite subdomain and Merge pull request #19 from Vasolix/master 0dd7b1f

Version 1.1.4b - 19-05-2024

Added

Version 1.1.6 - 07-07-2024

Added

Changed

Fixed

  • Fixed SSSTik Response Undefined 9e4b697
  • Fixed Error in Tiktok Downloader V1 3783799

Version 1.1.7 - 08-07-2024

Added

  • Added Tiktok Search Live Documentation a79fa90
  • Added Tiktok Search Live f7d9b1b

Changed

Version 1.1.8 - 09-07-2024

Added

  • Added Proxy Options Documentation b74828d
  • Added Proxy Options 75cf47c

Version 1.1.9 - 10-07-2024

Changed

  • Updated .prettierrc and added some types b57953b

Fixed

  • Fixed Musicaldown Response 824f853

Version 1.1.9a - 05-09-2024

Added

  • Merge pull request #28 from aquariuscool/master 0dd7b1f

Version 1.2.0 - 11-10-2024

Changed

Fixed

  • Fixing Errors in Musicaldown and Undefined Response in SSSTik 8f5ddd8

Version 1.2.1 - 06-11-2024

Added

  • Add yarn-lock.json to .npmignore & .gitignore 353c37c
  • Add Xbogus as a SearchUser params 82fbdb2
  • Adding xbogus as a helper function to generate xbogus tokens 903fa88
  • Adding the generate url xbogus function 4f506c1

Changed

  • Update README.md 0fd80db
  • Change TikTok API to Get Better Video Quality 0667116

Fixed

  • Fixed SSSTik error when downloading Tiktok Story 978afeb

Version 1.2.2 - 07-11-2024

Added

  • Added Tiktok Get Comment 3bcbecb
  • Added Tiktok Get Comment Documentation 46acd69
  • Added page & totalResults to Tiktok Search User & Live Response 1bae63d
  • Added page & totalResults to Tiktok Search User & Live Documentation 27d69c2
  • Added isTurnOffComment to Tiktok Downloader V1 Response 03a081d

Version 1.2.3 - 07-02-2025

Added

Fixed

  • Fixed Tiktok User Search (Error Length) 990a50f
  • Fixed Tiktok Live Search (Error Length) 80cbe6d
  • Fixed Requests Take Too Long When Taking Comments & Posts 990a50f

Version 1.2.7 - 03-03-2025

Added

  • Added CLI Commands for Tiktok Downloader V1, V2, V3, Stalk, Search User, Search Live, & Get Comments 545734d
  • Added CLI Commands Documentation 3b3827b
  • Added CookieManager for managing cookies 1ed22e9
  • Added install.sh for installing the library 7249bdb
  • Added Logger for CLI 288b347

Fixed

  • Fixed Get Posts & Get Comments Limit 635738a
  • Fixed Error when downloading Images via Musicaldown 97b261c
  • Fixed Error Live Types ebe9ff4
  • Fixed Error Cookie Manager e23952a

Changed

  • Tiktok Stalk doesn't use cookies anymore c718c93

Version 1.2.9 - 05-03-2025

Added

  • Added New Helper File signature & webmssdk ecbba4e
  • Add Documentation for Tiktok User Favorite Videos and Tiktok User Posts aecd17d
  • Add New Feature (Tiktok Get User Liked Videos, User Posts & Search Videos) 973a94e

Fixed

  • Fixed Naming Similarities in Types 973a94e