Skip to content
tiktokapi.io
Video Parser Guide · 1080p HD6 min read·Updated 2026-10-29

How to Get TikTok Video Metadata & 1080p No-Watermark MP4 via API

Extract complete video metadata, play/digg/comment/share counts, author profile, sound track, photo mode image slides, and direct 1080p HD unwatermarked video streams in a single GET request.

Key Engineering Takeaways (TL;DR)

  • ✓Pass any TikTok full URL (tiktok.com/@user/video/123), short share link (vm.tiktok.com / vt.tiktok.com), or raw numeric video ID to GET /v1/videos/detail (or /v1/video/detail).
  • ✓Set hd=1 (enabled by default) to receive both the fast standard unwatermarked stream (data.play) and the 1080p original HD stream (data.hdplay).
  • ✓For TikTok Photo Mode (carousel posts), the endpoint automatically populates data.images[] with full-resolution unwatermarked image URLs alongside the background audio track.
  • ✓Each successful video lookup costs a flat 10 Credits ($0.001 base, or $0.0004 on Business Monthly). Invalid URLs or deleted videos return code != 0 and cost 0 Credits.

1. Supported TikTok Video URL & ID Formats

You do not need to pre-resolve short links or strip query parameters before calling the API. The gateway normalizes all TikTok link formats automatically.

Supported input formats for the url parameter on GET /v1/videos/detail
Input FormatExample ValueSupported
Standard Desktop URLhttps://www.tiktok.com/@tiktok/video/7231338487075638570Yes
Photo Mode Carousel URLhttps://www.tiktok.com/@creator/photo/7349182736451928374Yes (returns data.images[])
Mobile Short Share Linkhttps://vm.tiktok.com/ZM2abc123/ or https://vt.tiktok.com/ZS8xyz/Yes (auto-resolved)
Raw 64-Bit Video ID7231338487075638570Yes

2. Code Examples: Get Video Metadata & Download 1080p MP4

Below are complete, copy-pasteable examples in cURL, Python, and TypeScript/Node.js that fetch a TikTok video's metadata and stream the 1080p unwatermarked MP4 file.

Get Video Detail & 1080p HD Stream (GET /v1/videos/detail)

Pass url and hd=1. Check payload.code === 0, then read data.hdplay (1080p) or data.play (720p fast CDN).

curl -sS "https://api.tiktokapi.io/v1/videos/detail?url=https://www.tiktok.com/@tiktok/video/7231338487075638570&hd=1" \
  -H "x-api-key: tk_your_api_key_here"

3. Video Response Schema & Field Reference

Every video object returned by /v1/videos/detail, /v1/videos/search, and /v1/users/videos includes the following normalized fields:

Key fields in the TikTok video response object (data)
Field PathTypeDescription
data.idstring64-bit TikTok video ID serialized as a string to prevent IEEE-754 precision loss.
data.titlestringFull video caption including hashtags (#fyp) and @mentions.
data.playstring (URL)Direct CDN link to the 720p no-watermark MP4 video stream.
data.hdplaystring (URL)Direct CDN link to the 1080p original HD no-watermark MP4 stream (when hd=1).
data.imagesstring[] | undefinedPresent on Photo Mode carousel posts: array of full-resolution image slide URLs.
data.play_countintegerTotal video views / impressions.
data.digg_countintegerTotal like (heart) count.
data.comment_countintegerTotal comment count.
data.share_countintegerTotal share count.
data.collect_countintegerTotal bookmark / favorite count.
data.create_timeintegerUnix epoch timestamp (seconds) when the video was published.
data.authorobjectCreator summary object (id, unique_id, nickname, avatar).
data.music_infoobjectSound track metadata including direct MP3 stream (music_info.play).

Frequently Asked Questions

How long do the returned CDN video URLs (data.play / data.hdplay) remain valid?
TikTok CDN signed URLs typically include an x-expires parameter valid for 4 to 24 hours. If you are building an archive or AI training dataset, download the MP4 binary or audio stream to your own S3/R2 bucket rather than storing the temporary CDN URL indefinitely.
How do I detect whether a TikTok URL is a video or a Photo Mode image carousel?
Check Array.isArray(data.images) && data.images.length > 0. For photo carousels, data.images contains the unwatermarked slide images and data.play / data.music_info.play contains the background audio track.
Am I charged if a user passes an invalid URL or a deleted/private TikTok video?
Never. If a video is private, deleted, or malformed, the API returns code: -1 and x-credits-cost: 0.