Tiktok Sound Music Scraper avatar

Tiktok Sound Music Scraper

Pricing

from $2.40 / 1,000 sound results

Go to Apify Store
Tiktok Sound Music Scraper

Tiktok Sound Music Scraper

TikTok Sound / Music Scraper extracts TikTok sound pages, music metadata, and videos using a sound, including captions, creators, stats, and URLs. Use it for trend tracking, viral audio discovery, campaign monitoring, creator research, and analytics.

Pricing

from $2.40 / 1,000 sound results

Rating

0.0

(0)

Developer

Delowar Munna

Delowar Munna

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Share

TikTok Sound / Music Scraper

Extract TikTok sound pages, music metadata, and videos using a sound for trend tracking, campaign monitoring, creator discovery, and analytics workflows.

TikTok Sound / Music Scraper

What does this actor do?

TikTok Sound / Music Scraper is an Apify Actor that extracts public TikTok data for one or more sounds/music, including:

  • Video records — video metadata, engagement metrics (plays, likes, comments, shares, saves), creator info, hashtags, mentions, and content classification
  • Sound summary records — sound-level stats with usage counts, top hashtags, top creators, and run health fields
  • Sound lineage — every output row traces back to the exact source sound that produced it

This actor is designed for sound intelligence — not just fetching videos, but providing analytics-ready output for viral audio discovery, campaign monitoring, creator research, and AI workflows.

Why use this actor?

  • Multi-sound batching — scrape one or many sounds in a single run
  • Keyword-based sound search — discover sounds by keyword without knowing exact URLs
  • Rich structured output — video-level and sound-level data with creator details and engagement metrics
  • Sound lineage — every row shows which source sound produced it, making cross-sound comparison easy
  • Sound summaries — per-sound summary rows with usage counts, top hashtags, top creators, and run status
  • Optional cross-sound deduplication — remove duplicate videos when the same video appears under multiple sounds
  • Consistent null handling — missing optional fields return null, never omitted unpredictably
  • Structured error handling — failed sounds emit error records instead of breaking the run
  • AI-ready datasets — feed results into clustering, summarization, trend scoring, and reporting pipelines

Input

ParameterTypeDefaultDescription
soundsstring[][]TikTok sound/music URLs or numeric sound IDs
searchKeywordsstring[][]Search for sounds by keyword — discovered sounds are scraped automatically
maxSoundsPerKeywordinteger5Maximum sounds to scrape from each keyword search (1–50)
maxVideosPerSoundinteger50Maximum videos to extract per sound (1–500)
includeSoundSummarybooleantrueEmit sound summary records
includeCreatorFieldsbooleantrueInclude creator fields on video records
includeVideoFieldsbooleantrueInclude video records in output
deduplicateVideosAcrossSoundsbooleanfalseDeduplicate videos across sounds in a batch
stopOnErrorbooleanfalseStop entire run on first sound failure
debugModebooleanfalseEnable verbose logging
proxyConfigurationobjectApify proxy configuration (residential recommended)

Sound input formats

The actor accepts sounds in these formats:

  • Full URL: https://www.tiktok.com/music/original-sound-1234567890123456789
  • Numeric ID: 1234567890123456789
  • Search keyword: provide keywords in searchKeywords to discover sounds automatically

You can combine all three input modes in a single run. Duplicates are removed automatically.

Sample input: Viral sound tracking

Track videos that use a specific sound and monitor how widely it spreads.

{
"sounds": [
"https://www.tiktok.com/music/original-sound-7442277701498820385"
],
"maxVideosPerSound": 50,
"includeSoundSummary": true,
"includeCreatorFields": true,
"includeVideoFields": true,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Sample input: Discover sounds by keyword

Find trending sounds related to a topic without knowing specific URLs. The actor searches TikTok for sounds matching each keyword and scrapes the top results.

{
"searchKeywords": ["swift", "trending beat"],
"maxSoundsPerKeyword": 3,
"maxVideosPerSound": 50,
"includeSoundSummary": true,
"includeCreatorFields": true,
"proxyConfiguration": {
"useApifyProxy": true
}
}

Output

The actor outputs a dataset where each video is one row with full sound lineage. Results are available in five dataset views:

  • Overview — combined view with record type, sound info, key metrics, and creator data
  • Videos — full video details with engagement data
  • Engagement — engagement metrics for quick comparison
  • Creators — creator/author data with their video performance
  • Sound Summary — sound-level stats, usage counts, top hashtags, and run health

TikTok Sound / Music Scraper — Output Overview Table View

Sound summary record

When includeSoundSummary is enabled, the actor emits one summary record per sound. This record appears first in the dataset with recordType: "sound-summary".

{
"recordType": "sound-summary",
"sourceInput": "search:swift",
"soundTitle": "Suspicious and comical strings(1013021)",
"soundAuthor": null,
"soundId": "7031618809568757762",
"soundUrl": "https://www.tiktok.com/music/Suspicious-and-comical-strings-1013021-7031618809568757762",
"soundDuration": null,
"soundCoverUrl": null,
"soundUsageCount": null,
"requestedMaxVideos": 50,
"returnedVideos": 57,
"deduplicatedVideos": 0,
"topCreatorsCount": 44,
"topHashtags": ["fyp", "humour", "reaction", "FeriaArtePopularXcaret", "ramadanterang", "lebarantenang", "prison", "seafood", "faim", "lyon"],
"runStatus": "completed",
"startedAt": "2026-03-17T05:11:23.572Z",
"finishedAt": "2026-03-17T05:11:28.228Z",
"durationSeconds": 5
}

Video record

Each video record carries full sound lineage, video metadata, engagement metrics, creator info, and content classification.

{
"recordType": "video",
"sourceInput": "search:swift",
"sourceSoundUrl": "https://www.tiktok.com/music/Suspicious-and-comical-strings-1013021-7031618809568757762",
"sourceSoundId": "7031618809568757762",
"soundTitle": "Suspicious and comical strings(1013021)",
"soundAuthor": "yumi",
"soundDuration": 235,
"soundCoverUrl": "https://p16-common.tiktokcdn-us.com/tos-alisg-v-2774/43faa110cb7545508bcb8448e005da2d~tplv-tiktokx-cropcenter:720:720.jpeg",
"soundUsageCount": null,
"scrapedAt": "2026-03-17T05:11:28.226Z",
"videoId": "7556065836314774802",
"videoUrl": "https://www.tiktok.com/@luzvaldezmx/video/7556065836314774802",
"caption": "Feria Xcaret de arte popular mexicano 2025 @Xcaret #FeriaArtePopularXcaret ",
"createTime": "2025-10-01T01:54:42.000Z",
"durationSeconds": 73,
"playCount": 7500000,
"likeCount": 771700,
"commentCount": 7774,
"shareCount": 42000,
"saveCount": 67900,
"engagementTotal": 889374,
"hashtags": ["FeriaArtePopularXcaret"],
"mentions": ["xcaretparks"],
"isAd": false,
"region": null,
"language": "es",
"videoThumbnailUrl": "https://p16-common-sign.tiktokcdn-us.com/...",
"position": 1,
"isPartial": false,
"errorType": null,
"errorMessage": null,
"creatorUsername": "luzvaldezmx",
"creatorDisplayName": "Luz Valdez",
"creatorProfileUrl": "https://www.tiktok.com/@luzvaldezmx",
"creatorId": "193707532996145152",
"creatorVerified": false,
"creatorFollowersCount": 810400,
"creatorFollowingCount": 591,
"creatorLikesCount": 28500000
}

Engagement view record

The engagement view highlights metrics for quick comparison.

{
"videoId": "7614702821019061526",
"caption": "Tiger shark came in like what's all this commotion?",
"creatorUsername": "scubadan_",
"playCount": 7800000,
"likeCount": 641000,
"commentCount": 3181,
"shareCount": 33500,
"saveCount": 51700,
"engagementTotal": 729381,
"isAd": false,
"soundTitle": "Suspicious and comical strings(1013021)",
"sourceSoundId": "7031618809568757762"
}

Creators view record

The creators view surfaces author details alongside their video performance.

{
"creatorUsername": "scubadan_",
"creatorDisplayName": "SCUBA DAN",
"creatorProfileUrl": "https://www.tiktok.com/@scubadan_",
"creatorVerified": false,
"creatorFollowersCount": 1700000,
"creatorFollowingCount": 11,
"creatorLikesCount": 82000000,
"creatorId": "6820369642847077381",
"videoId": "7614702821019061526",
"caption": "Tiger shark came in like what's all this commotion?",
"playCount": 7800000,
"engagementTotal": 729381,
"soundTitle": "Suspicious and comical strings(1013021)"
}

Error record

Failed sounds emit structured error records so individual failures don't break the run.

{
"recordType": "error",
"error": true,
"errorType": "no_data",
"errorMessage": "No data found for sound 1234567890123456789",
"sourceInput": "1234567890123456789",
"sourceSoundUrl": "https://www.tiktok.com/music/1234567890123456789",
"sourceSoundId": "1234567890123456789",
"scrapedAt": "2026-03-17T05:30:00.000Z"
}

Output fields

Source sound lineage (all video records)

FieldDescription
recordType"video", "sound-summary", or "error"
sourceInputThe original sound input as provided (or "search:keyword" for keyword-discovered sounds)
sourceSoundUrlFull TikTok sound/music URL
sourceSoundIdTikTok internal sound/music ID
soundTitleSound/music title
soundAuthorSound/music author name
soundDurationSound duration in seconds
soundCoverUrlSound cover art URL
soundUsageCountNumber of videos using this sound (if available)
scrapedAtISO 8601 timestamp of extraction

Video fields

FieldDescription
videoIdTikTok video ID
videoUrlFull video URL
captionVideo caption/description
createTimeVideo creation time (ISO 8601)
durationSecondsVideo duration in seconds

Engagement fields

FieldDescription
playCountPlay/view count
likeCount, commentCount, shareCount, saveCountEngagement counts
engagementTotalSum of likes + comments + shares + saves

Creator fields (optional)

FieldDescription
creatorUsername, creatorDisplayName, creatorIdCreator identification
creatorProfileUrlCreator profile URL
creatorVerifiedVerified badge status
creatorFollowersCount, creatorFollowingCount, creatorLikesCountCreator stats

Content classification

FieldDescription
hashtagsArray of hashtag strings on the video
mentionsArray of @mentions in the caption
isAdSponsored/ad indicator
regionRegion/country code (best-effort)
languageContent language (if available)
videoThumbnailUrlThumbnail URL

Quality fields

FieldDescription
positionPosition of this video in the sound page listing
isPartialWhether this record has incomplete data
errorTypeError type (null when no error)
errorMessageError message (null when no error)

Sound summary fields

FieldDescription
soundId, soundUrl, soundTitle, soundAuthorSound identification
soundDuration, soundCoverUrl, soundUsageCountSound metadata
requestedMaxVideosConfigured max videos per sound
returnedVideosActual number of videos returned
deduplicatedVideosNumber of videos removed by deduplication
topCreatorsCountCount of unique creators across returned videos
topHashtagsTop 20 hashtags ranked by frequency across returned videos
runStatus"completed" or "no_videos"
startedAt, finishedAtRun timing
durationSecondsElapsed time for this sound

Best-effort fields

The following fields depend on what TikTok includes in its responses. They are extracted when available and returned as null when not: soundUsageCount, soundCoverUrl, soundDuration, saveCount, region, language, creatorFollowersCount, creatorFollowingCount, creatorLikesCount, videoThumbnailUrl

Use cases

  • Viral sound tracking — track videos that use a specific sound and monitor how widely it spreads
  • Campaign monitoring — track brand or campaign audio usage across creators and videos
  • Music promotion research — analyze creator adoption of a track, content style, and performance
  • Sound discovery — search for sounds by keyword to find trending or relevant audio
  • Trend intelligence — find which sounds are associated with emerging niches, hashtags, and creators
  • Creator discovery — identify creators repeatedly using certain sounds or campaign audio
  • Enrichment pipeline — use sound-derived videos as inputs for video, profile, comment, or hashtag scraping

Tips and best practices

  • Use sourceSoundId to trace results — every record includes the sound that produced it
  • Check recordType — the Overview tab shows "sound-summary", "video", and "error" so you can easily distinguish record types
  • Start small — use maxVideosPerSound: 10–20 for initial exploration, then increase
  • Batch multiple sounds — scrape many sounds in a single run for comparative analysis
  • Use keyword search — provide searchKeywords to discover sounds without knowing exact URLs
  • Schedule for monitoring — run on a schedule to track sound momentum over time
  • Toggle output sections — disable includeCreatorFields to reduce output size when you don't need creator data
  • Use deduplication — enable deduplicateVideosAcrossSounds when batching multiple sounds that may share videos

Proxy configuration

Residential proxies are recommended for reliable TikTok scraping.

{
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

Integrations

  • Google Sheets — export sound data to spreadsheets for team dashboards
  • Slack/email — set up notifications when new content appears using a sound
  • Webhooks — trigger downstream workflows when a run completes
  • API — access results programmatically via the Apify API
  • Other actors — feed discovered video URLs into TikTok Video Scraper, creator usernames into TikTok Profile Scraper, or hashtags into TikTok Hashtag Scraper for deeper analysis

Limitations

  • Results per sound depend on how much data TikTok returns on the sound page. The actual number may be lower than maxVideosPerSound.
  • Some fields are best-effort and may be null depending on what TikTok includes in its page data (see "Best-effort fields" above).
  • This actor scrapes public sound pages. It does not access private or restricted content.
  • TikTok sound pages do not reliably support sorting; results reflect TikTok's default ordering.
  • Very large sounds may return partial results depending on platform constraints.
  • Keyword search results depend on TikTok's search ranking and may vary by region and session.

FAQ

How many results can I get per sound? Up to 500 per sound. The actual number depends on how much data TikTok returns for that sound page.

Why are some fields null? Fields like soundUsageCount, region, language, saveCount, and creator stats depend on what TikTok includes in its page data. They are extracted on a best-effort basis and returned as null when unavailable.

What is the first record with mostly empty video fields? That's the sound-summary record (recordType: "sound-summary"). It contains sound-level metadata only — not video data. Use the recordType column in the Overview tab to identify it.

Can I use sound IDs instead of URLs? Yes. You can provide numeric sound IDs directly (e.g., "7442277701498820385") and the actor will resolve the sound page.

How does keyword search work? When you provide searchKeywords, the actor navigates to TikTok's music search page for each keyword, extracts the matching sounds (up to maxSoundsPerKeyword), and then scrapes each discovered sound's page for videos. The sourceInput field on those records will show "search:your keyword" so you can trace which keyword discovered each sound.

What happens if a sound fails? Failed sounds emit a structured error record with error: true and errorMessage, so you can identify failures without the whole run breaking. Set stopOnError: true if you want the run to stop on the first failure.

Is the sound-summary record charged? Yes. The pay-per-event pricing charges for each record pushed to the dataset, including summary records. Error records are not charged.

How does cross-sound deduplication work? When deduplicateVideosAcrossSounds is enabled, if the same video appears under multiple sounds in a batch run, it is only included once (for the first sound that returned it).