TikTok Sound & Music Scraper — Public Videos & Metadata avatar

TikTok Sound & Music Scraper — Public Videos & Metadata

Pricing

from $0.40 / 1,000 video results

Go to Apify Store
TikTok Sound & Music Scraper — Public Videos & Metadata

TikTok Sound & Music Scraper — Public Videos & Metadata

Export available public TikTok videos using a sound or song from music IDs, sound URLs or video URLs. Includes creators, source counters, date filters and optional sound metadata through HTTP-only collection.

Pricing

from $0.40 / 1,000 video results

Rating

0.0

(0)

Developer

Coor Yu

Coor Yu

Maintained by Community

Actor stats

0

Bookmarked

20

Total users

10

Monthly active users

5 days ago

Last modified

Share

TikTok Sound & Music Scraper exports available public videos using a sound, song or original audio. Collect captions, creators, source engagement counters, dates, optional sound metadata and media links for music research or campaign reporting.

This HTTP-only Actor depends on TikWM. No browser, configured proxy, residential IP, TikTok login, user cookie or user-supplied upstream key is used. Apify account/API authentication is still required.

Free-plan preview: First 50 normalized inputs, result/scan requests capped at 50 per sound, and 50 saved rows total. Paid plans avoid this developer restriction, not the other documented limits.

Quick start and supported inputs

Illustrative input, not a current availability claim:

{
"soundUrls": [
"https://www.tiktok.com/music/original-sound-7673587057872816926"
],
"resultsPerSound": 3,
"maxVideosToScanPerSound": 30,
"requestTimeoutSecs": 30
}

Each soundUrls entry can be:

  • A TikTok /music/ or /sound/ URL with a trailing numeric music ID.
  • A numeric music ID string of 10–25 digits.
  • A public TikTok video URL whose sound is resolved through video detail.
  • Copied share text containing a supported TikTok URL, including protocol-less links. Only the first detected URL is used.

Video inputs must expose a public sound ID; short-share links depend on upstream resolution. Unsupported/private/unavailable inputs may fail. There is no keyword search, profile-video, comment or file-download mode: output contains metadata/media URLs, not stored audio or MP4 files.

Input fields

FieldDefaultBehavior and limits
soundUrlsrequiredArray of 1–100 strings. Exact duplicate strings and empty entries are removed; resolved sound IDs are also deduplicated.
resultsPerSound100Maximum qualifying videos per sound, 1–1000. There is no 0/unlimited mode.
maxVideosToScanPerSound1000Candidate budget, 1–10000; raised to at least resultsPerSound. Applies even without a date filter.
postedAfterunsetInclusive lower ISO date/time bound. Date-only values mean midnight UTC.
postedBeforeunsetExclusive upper ISO date/time bound. Must be later than postedAfter when both are supplied.
requestTimeoutSecs3010–120 seconds per upstream HTTP attempt.

No concurrency/retry/source/proxy option exists. Sounds run sequentially; HTTP starts are spaced by about 2.2 seconds with up to four attempts total, rotating TikWM hosts. Shared-IP rate limits can still occur.

Date filtering, scanning and empty results

Invalid dates or postedAfter >= postedBefore fail normalization. Filters use video publish time, not sound creation time; filtered candidates without a positive timestamp are excluded.

The scan budget counts unique video IDs, including rejected date candidates, on every query. Pagination stops at 500 pages/sound, exhaustion, a stopped cursor or three consecutive empty pages. Result limits apply per sound before global deduplication and final writes—not a complete history guarantee.

A feed operation without an exception counts as successful even with zero matches, allowing an empty successful run. Optional metadata failure plus an empty feed does not independently prove sound existence or zero usage. Inspect RUN_SUMMARY and logs.

Resolved sounds and video IDs are globally deduplicated before writes. A sound ID is marked seen before its feed request, so a second equivalent input does not retry a failed first feed; rerun failed sounds separately.

Output and numeric semantics

One default-dataset row represents one available sound-feed video. Missing individual engagement counters do not discard the row; even a missing play count is allowed.

OutputInterpretation
videoId, webVideoUrl, textVideo ID, TikTok URL and caption from the provider.
createTimeISO, durationSource Unix publish seconds converted to UTC, and duration in seconds. Missing time becomes an empty string; missing duration becomes 0.
region, isAd, isTopSource region/ad/top fields, not verified audience geography or completeness. Missing flags default to false.
authorAvailable creator ID, handle, nickname and avatar; not verified account ownership.
soundID, canonical URL, title, author, audio/cover URLs, duration, original-audio flag, album and optional videoCount.
statsOptional source plays, likes, comments, shares, saves and download counters. Missing/unparseable counters are omitted, not zero-filled.
statsPrecisionAlways exact in the current mapper. It denotes this HTTP mapping path, not an independently tested precision/accuracy result.
sourceInput, scrapedAtOriginal retained input and collection timestamp.
videoDownloadUrl, coverUrl, dynamicCoverUrlProvider media links, possibly empty or temporary. No files are saved by this Actor.

Finite source numbers are converted without deliberate rounding, but freshness, exactness and completeness are not verified. The fixed exact label does not validate metrics.

sound.videoCount is optional provider video_count, repeated per row—not exported row count or verified total usage. Missing sound metadata yields empty text/URLs, duration 0 and original flag false, not verified negatives. Sound-info failure can fall back to available music metadata/feed data.

Export JSON, CSV or Excel. Media URLs may be empty, expire or become inaccessible; no permanent media availability is promised.

Current pricing and billing

Current effective event prices, in USD:

Apify planPer saved video rowPer 1,000 rows
FREE$0.00225$2.25
BRONZE$0.00045$0.45
SILVER, GOLD, PLATINUM, DIAMOND$0.00040$0.40

The FREE plan is not a zero-priced event tier. Saved rows are automatically billed through apify-default-dataset-item. There is no separate request/custom event or downstream Apify Actor charge configured in this implementation. Duplicate, filtered-out or unsaved candidates do not create dataset-item fees; rows with missing counters still do.

apify-actor-start is $0.00005 per GB of memory, minimum one event/run. Default 128 MB uses the minimum; higher memory can require more events. Compute, storage and transfer are separately billed to the running user. Empty output has no dataset-item fee, but startup and HTTP-processing usage still cost money; failed runs can retain billable saved rows. No request/custom event is configured.

Event fees are not total run costs. Scans/retries consume usage. See your Pricing tab.

Reliability and run status

  • Key-Value Store RUN_SUMMARY contains completed/failed inputs and scan/output counts, not billable video rows.
  • Global input-validation failure or no completed feed operation fails the run. A completed zero-match feed permits empty success; mixed failures yield SUCCEEDED_WITH_WARNINGS.
  • Saved rows remain billable after later failure. Summary counts can exceed actual writes under plan/event-budget caps; the dataset is authoritative.
  • Source order is preserved, with no chronological/popularity guarantee. Narrow dates may exhaust the scan budget.
  • Public endpoint changes, access blocks, private/deleted content and regional restrictions can reduce or prevent results. No access-control bypass is supported.

FAQs

Are all stats exact? No independent exactness check is performed. statsPrecision: "exact" is fixed source-path wording; inspect missing values and do not equate numeric output with audited totals.

Why did a run succeed with no videos? At least one feed query completed without an exception but returned no qualifying candidates. Date filters, scan limits or an empty feed can cause this. No dataset-item fee applies to an empty dataset; startup and usage still can.

Can I track a song's usage? You can compare repeated snapshots of available videos and optional provider usage totals. The Actor does not guarantee complete histories or a usage count on every row.

Collect and use public data in accordance with applicable laws, intellectual-property rights and platform terms.