TikTok Video Details Scraper · URL or ID
Pricing
from $1.00 / 1,000 video details
TikTok Video Details Scraper · URL or ID
Turn public TikTok video URLs or numeric IDs into clean video, creator, engagement, music, hashtag, caption-language, and timestamp records. Built for one-off checks and bounded batches up to 100 inputs.
Pricing
from $1.00 / 1,000 video details
Rating
0.0
(0)
Developer
Data Slayer
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Turn public TikTok video URLs or numeric video IDs into clean video, creator, engagement, music, hashtag, caption-language, and timestamp records—one unique video per dataset row.
Watch the demo
YouTube video coming soon.
What this Actor does
Use this Actor when you already know the videos you need and want their current public details without running a broad keyword, hashtag, sound, or creator search. It is designed for one-off checks, spreadsheet enrichment, webhook follow-ups, and bounded batches of up to 100 inputs.
For every available public video, the default dataset receives one normalized row with:
- video ID, canonical URL, public caption/description, publication time, region, duration, and dimensions;
- views, likes, comments, shares, and saves when available;
- creator ID, username, display name, verification state, and avatar;
- music ID, title, artist, duration, and original-sound flag;
- hashtags, mentions, and the public native-caption language codes exposed for the video; and
- an observation timestamp for repeatable tracking.
This product does not download video or audio files and does not return transcript text. Native caption extraction and speech-to-text fallback remain separate future options that require coverage and cost validation.
Input
| Field | Type | Required | Default | Limits | Purpose |
|---|---|---|---|---|---|
videoUrlsOrIds | array of strings | yes | — | 1–100 entries; each ≤300 characters | Numeric video IDs or direct public tiktok.com video URLs. Duplicate IDs are processed once. |
maxInputs | integer | no | 100 | 1–100 | Hard cap on unique inputs processed in the run. |
Valid input:
{"videoUrlsOrIds": ["https://www.tiktok.com/@byarvelor/video/7567310800646458657","7567310800646458657"],"maxInputs": 100}
Direct tiktok.com/@user/video/<id> URLs and numeric IDs are accepted. Short redirect links, profile links, search pages, other domains, and non-video URLs are rejected before lookup so the Actor never follows an unverified redirect.
Output
Each available unique video creates one paid row in the default dataset.
| Field | Type | Nullable | Description |
|---|---|---|---|
status | string | no | available for delivered rows. Unavailable outcomes remain in the free run summary. |
videoId | string | no | Stable numeric video ID and dataset identity. |
url | string | no | Canonical public video URL. |
description | string | yes | Public video caption or description. |
createdAt | string | yes | ISO 8601 publication time when available. |
createTimestamp | integer | yes | Original Unix publication timestamp when available. |
region | string | yes | Region code when the public video record provides one. |
durationSeconds, width, height | integer | yes | Video duration and dimensions. |
coverUrl, dynamicCoverUrl | string | yes | Public TikTok-hosted cover URLs when available. |
metrics | object | no | Nullable integer counts for views, likes, comments, shares, and saves. |
author | object | no | Nullable creator identifiers, username, name, verification state, and TikTok-hosted avatar URL. |
music | object | no | Nullable music ID, title, author, duration, and original-sound flag. |
hashtags, mentions | array of strings | no | Tags and referenced usernames exposed for the video. |
nativeCaptionLanguages | array of strings | no | Language codes advertised for public native caption tracks; this is not transcript text or a completeness promise. |
requestedInput | string | no | The first submitted value that resolved to this unique video. |
observedAt | string | no | UTC time when the row was normalized. |
See customer/examples/result.json and customer/examples/result.csv in the review package for valid illustrative records. The examples validate the proposed schema; they are not live result claims.
Empty, unavailable, partial, and failed runs
Invalid input stops before lookup. Deleted, private, missing, region-restricted, or otherwise unavailable videos do not become dataset rows and are not charged as video details. Their safe per-input outcomes remain in the free RUN_SUMMARY key-value record.
The summary distinguishes succeeded, partial, empty, failed, charge_limit_reached, billing_uncertain, and cancelled. It reconciles delivered and charged video rows. If the billing limit prevents a dataset push, no delivered row is counted. If a storage or billing response leaves the write outcome uncertain, the Actor stops, does not retry the row, and makes no delivery claim for that write. A response whose video ID differs from the requested ID is rejected before delivery or charging.
Pricing
Pay per event. The Actor-start event is charged per GB of run memory, with a minimum of one event. The proposed 256 MB default therefore incurs one start event; choosing more than 1 GB can multiply it. A video-detail event is charged for each successfully delivered unique dataset row. Unavailable, invalid, failed, and duplicate inputs are not charged as video details.
| Plan | Actor start | Per video detail | 1 detail | 100 details |
|---|---|---|---|---|
| Free | $0.0025 | $0.00250 | $0.00500 | $0.25250 |
| Bronze | $0.0023 | $0.00175 | $0.00405 | $0.17730 |
| Silver | $0.0021 | $0.00125 | $0.00335 | $0.12710 |
| Gold | $0.0020 | $0.00100 | $0.00300 | $0.10200 |
| Platinum | $0.0020 | $0.00100 | $0.00300 | $0.10200 |
| Diamond | $0.0020 | $0.00100 | $0.00300 | $0.10200 |
At the proposed 256 MB default, the input cap makes the maximum customer event charge for a 100-result run explicit. Increasing run memory above 1 GB can add start-event units. Platform compute usage, if any, is shown separately by Apify.
Reliability and limits
- Transient rate-limit, server, and timeout failures use bounded retries and honor a short
Retry-Aftervalue when provided. - Requests are paced conservatively within a run. This does not claim an account-wide distributed rate limit.
- Duplicate inputs are removed by video ID before lookup.
- Media download URLs, audio download URLs, transcript text, and subtitle files are intentionally excluded.
- Caption-language presence does not guarantee a retrievable transcript, a preferred language, or complete coverage.
- Engagement counts can change after retrieval. Store
videoIdas the stable join key andobservedAtas the observation time.
Use from the API
After publication, call the Actor with your Apify token:
curl "https://api.apify.com/v2/acts/data-slayer~tiktok-video-details/runs?token=<YOUR_APIFY_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"videoUrlsOrIds":["7567310800646458657"],"maxInputs":100}'
The proposed slug is not live yet. This endpoint becomes valid only after an authorized release.
FAQ
How much does it cost to run this Actor? Pricing is listed in the Pricing section above, charged per row returned. You only pay for the rows the Actor actually produces, so a small test run costs cents.
Do I need cookies or a login? No. This Actor reads public data only - no cookies, no account, no browser automation.
Can I schedule it? Yes. Run it from the Apify API, on a schedule, or via a webhook, and export results as JSON, CSV or Excel.
What if I need a slightly different output? Open an issue on the Actor's Issues tab describing the shape you need.
Related actors
More Tiktok actors from the same portfolio. Apify only auto-recommends actors in the same category, so here are the rest of ours: