TikTok Video Details Scraper · URL or ID avatar

TikTok Video Details Scraper · URL or ID

Pricing

from $1.00 / 1,000 video details

Go to Apify Store
TikTok Video Details Scraper · URL or ID

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

Data Slayer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

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

FieldTypeRequiredDefaultLimitsPurpose
videoUrlsOrIdsarray of stringsyes—1–100 entries; each ≤300 charactersNumeric video IDs or direct public tiktok.com video URLs. Duplicate IDs are processed once.
maxInputsintegerno1001–100Hard 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.

FieldTypeNullableDescription
statusstringnoavailable for delivered rows. Unavailable outcomes remain in the free run summary.
videoIdstringnoStable numeric video ID and dataset identity.
urlstringnoCanonical public video URL.
descriptionstringyesPublic video caption or description.
createdAtstringyesISO 8601 publication time when available.
createTimestampintegeryesOriginal Unix publication timestamp when available.
regionstringyesRegion code when the public video record provides one.
durationSeconds, width, heightintegeryesVideo duration and dimensions.
coverUrl, dynamicCoverUrlstringyesPublic TikTok-hosted cover URLs when available.
metricsobjectnoNullable integer counts for views, likes, comments, shares, and saves.
authorobjectnoNullable creator identifiers, username, name, verification state, and TikTok-hosted avatar URL.
musicobjectnoNullable music ID, title, author, duration, and original-sound flag.
hashtags, mentionsarray of stringsnoTags and referenced usernames exposed for the video.
nativeCaptionLanguagesarray of stringsnoLanguage codes advertised for public native caption tracks; this is not transcript text or a completeness promise.
requestedInputstringnoThe first submitted value that resolved to this unique video.
observedAtstringnoUTC 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.

PlanActor startPer video detail1 detail100 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-After value 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 videoId as the stable join key and observedAt as 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.

More Tiktok actors from the same portfolio. Apify only auto-recommends actors in the same category, so here are the rest of ours:

Actor
TikTok Comments Scraper · No Cookies
TikTok Content Discovery Scraper · Hashtags & Sounds
TikTok Followers Scraper · No Cookies
TikTok Popular Posts Scraper · No Cookies
TikTok Profile Scraper · No Cookies
TikTok Top Ads Research · Creative Center
TikTok Video Search Scraper · No Cookies