TikTok video downloader

Paste a public TikTok link. Get the video file.

SampleRecorded public data, shortened. Run the tool for a live result.

Verified charli d’amelio @charlidamelio

22,000,000 views, 2,100,000 likes, 19,500 comments, 0:11, Aug 29, 2022

Download video

Free, no signup. A limited number of lookups per visitor each hour. Public data only.

How it works

The API returns the address of the public video file as TikTok serves it to a logged-out visitor. This page links to it; it does not host or copy the video. The address expires after a while, so download when you look it up.

Use this in your app

This tool calls GET /v1/tiktok/video. See the reference, or get early access for a key.

curl
curl -G "https://api.socialscrape.io/v1/tiktok/video" \
  -H "x-api-key: $SOCIALSCRAPE_API_KEY" \
  --data-urlencode "url=https://www.tiktok.com/@khaby.lame/video/7137423965982592302"
Python
import os
import requests

params = {
    "url": "https://www.tiktok.com/@khaby.lame/video/7137423965982592302",
}
res = requests.get(
    "https://api.socialscrape.io/v1/tiktok/video",
    headers={"x-api-key": os.environ["SOCIALSCRAPE_API_KEY"]},
    params=params,
)
body = res.json()

if body["ok"]:
    print(body["data"])
else:
    print(body["error"]["code"], body["error"]["message"])
TypeScript
const url = new URL("https://api.socialscrape.io/v1/tiktok/video");
url.search = new URLSearchParams({
  "url": "https://www.tiktok.com/@khaby.lame/video/7137423965982592302"
}).toString();
const res = await fetch(url, {
  headers: { "x-api-key": process.env.SOCIALSCRAPE_API_KEY! },
});
const body = await res.json();

if (body.ok) {
  console.log(body.data);
} else {
  console.error(body.error.code, body.error.message);
}
n8n
{
  "nodes": [
    {
      "name": "SocialScrape TikTok video details",
      "type": "n8n-nodes-base.httpRequest",
      "typeVersion": 4.2,
      "position": [
        0,
        0
      ],
      "parameters": {
        "method": "GET",
        "url": "https://api.socialscrape.io/v1/tiktok/video",
        "sendQuery": true,
        "queryParameters": {
          "parameters": [
            {
              "name": "url",
              "value": "https://www.tiktok.com/@khaby.lame/video/7137423965982592302"
            }
          ]
        },
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "x-api-key",
              "value": "={{ $env.SOCIALSCRAPE_API_KEY }}"
            }
          ]
        }
      }
    }
  ],
  "connections": {}
}

Questions

Is there a watermark?

We add none. The file is whatever TikTok serves publicly for that video.

May I reuse the video?

Downloading does not give you the rights to it. Use videos you made, or have permission to use.

The link would not download.

Media addresses are time limited and some are served once. Run the lookup again for a fresh one.

Is this tool free?

Yes. No account and no card. Each visitor gets a limited number of lookups an hour, so it stays free for everyone.

How do I get this data in my own app?

Send GET /v1/tiktok/video with your key in the x-api-key header. A request costs 1 credit. A repeat of something fetched recently costs 0 credits, and failed requests are free. See the reference.