Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/KevxxAlva/tiktok-bot-downloader/llms.txt

Use this file to discover all available pages before exploring further.

TikTokSaver is an open-source, full-stack web application that lets you retrieve TikTok content cleanly — no watermarks, no account required. It exposes a minimal browser interface backed by a Node.js/Express API that proxies requests through the TikWM public API, returning structured download links for videos, audio, and slideshow images. The project is designed to be self-hosted in minutes or deployed to Vercel with zero configuration.

Core Capabilities

TikTokSaver covers three distinct content types that TikTok serves: Watermark-free video — The API requests the play field from TikWM, which returns an H.264-encoded MP4 without the embedded TikTok logo. Where play is unavailable, the server transparently falls back to hdplay. A server-side proxy stream (/api/proxy-download) handles the actual file delivery so the browser never touches TikTok CDN URLs directly. MP3 audio extraction — Every TikTok carries a music field in the TikWM response. TikTokSaver surfaces this as a dedicated “Audio MP3” download option alongside the video options, using the same proxy streamer that auto-corrects the file extension based on the upstream Content-Type header. Slideshow image sets — TikTok photo slideshows do not produce a valid video render via the API. TikTokSaver detects the presence of an images array in the TikWM response and skips broken video entries entirely, giving you the individual image files instead.

Privacy Design

Direct image and media URLs returned by third-party APIs often enforce hotlinking restrictions and leak the client’s IP address to TikTok’s CDN. TikTokSaver routes all media through two server-side endpoints:
  • GET /api/proxy-image — Fetches cover art and author avatars server-side with a 10-second abort timeout and a one-year Cache-Control header.
  • GET /api/proxy-download — Streams video, audio, and image files through the server, sets a sanitized Content-Disposition header, and retries with a stripped Referer header on HTTP 403 responses.
The browser only ever communicates with your own deployment — never with TikTok or TikWM directly.

Tech Stack

LayerTechnology
Frontend frameworkReact 19
Build toolVite 7
StylingTailwind CSS v4 (via @tailwindcss/vite plugin)
AnimationsFramer Motion 12
IconsLucide React
HTTP clientAxios
Backend runtimeNode.js with Bun as the package manager and runner
Backend frameworkExpress 4 (exported as a Vercel serverless function)
Data sourceTikWM public API (https://www.tikwm.com/api/)
Deployment targetVercel (Vite framework, client/dist output directory)

Monorepo Structure

The repository is organised as a two-package monorepo with a thin root package.json that wires up convenience scripts:
tiktok-bot-downloader/
├── api/              # Express backend (Node.js, CommonJS)
│   ├── index.js      # Entry point — also the Vercel serverless handler
│   └── package.json
├── client/           # React 19 frontend (Vite, ESM)
│   ├── src/
│   │   ├── pages/Home.tsx
│   │   ├── types.ts
│   │   └── ...
│   ├── vite.config.ts
│   └── package.json
├── vercel.json       # Vercel routing + output directory config
└── package.json      # Root convenience scripts
The root package.json exposes the following scripts so you can operate both workspaces from a single location:
{
  "scripts": {
    "install-client": "cd client && bun install",
    "install-server": "cd api && bun install",
    "build-client": "cd client && bun run build",
    "build":         "cd client && bun install && bun run build",
    "dev:server":    "cd api && bun index.js",
    "dev:client":    "cd client && bun run dev"
  }
}

Supported URL Formats

TikTokSaver accepts any publicly accessible TikTok URL. The following formats are recognised by the TikWM backend:
https://vm.tiktok.com/ZMe7...
https://www.tiktok.com/@usuario/video/123456789...
https://m.tiktok.com/v/123456789.html
Short share links (vm.tiktok.com), full desktop URLs, and mobile web URLs are all valid inputs. The URL is passed verbatim to TikWM, so any format that TikWM accepts will work.

Explore the Docs

Quickstart

Clone the repo, install dependencies with Bun, and have both servers running locally in under five minutes.

Deploy to Vercel

Push to GitHub and connect the repo to Vercel — the included vercel.json handles all routing configuration.

Self-Hosting

Run TikTokSaver on your own infrastructure with a traditional Node.js process or a containerised setup.

API Reference

Explore the three backend endpoints: /api/download, /api/proxy-image, and /api/proxy-download.
TikTokSaver is an independent open-source project intended for educational and personal use. It is not affiliated with, endorsed by, or connected to TikTok or ByteDance in any way. Always respect content creators’ rights and TikTok’s Terms of Service when downloading or redistributing content.

Build docs developers (and LLMs) love