TikTok Sound Scraper - Music Metadata & Videos
Pricing
from $3.00 / 1,000 scraped tiktok sounds
TikTok Sound Scraper - Music Metadata & Videos
Scrape TikTok sound metadata, audio preview links, artist details, usage counts, and videos using a sound. Provider-backed with ScrapeCreators primary and SociaVault fallback. MCP/API-ready.
Pricing
from $3.00 / 1,000 scraped tiktok sounds
Rating
0.0
(0)
Developer
Khadin Akbar
Maintained by CommunityActor stats
0
Bookmarked
60
Total users
25
Monthly active users
2 days ago
Last modified
Categories
Share
TikTok Sound Scraper is an Apify Actor for people and systems that work from TikTok sound references and need normalized data in the default dataset. It accepts TikTok music URLs, raw clip IDs, or music search queries, and it returns one record per saved sound or one record per saved video using that sound. The most useful fields include clipId, soundUrl, title, author, album, userCount, audioUrl, coverUrl, shareUrl, plus video fields such as videoId, videoUrl, authorUsername, playCount, likeCount, and hashtags. The outcome is a structured dataset for analytics, creator research, trend monitoring, and AI-agent workflows.
This Actor is provider-backed with ScrapeCreators as the primary provider and SociaVault as fallback. It is usable through Apify MCP and through the Apify API.
Best fit and connected workflows
This Actor fits workflows that start with a TikTok sound reference and end with a structured list of the sound itself and the videos that use it.
Use it when you want to:
- turn a TikTok
/music/URL into normalized sound metadata, - resolve a raw clip ID into a sound record,
- discover sounds through TikTok music search and then collect the related sound and video rows,
- export creator and engagement fields for downstream analysis,
- feed sound metadata into another TikTok workflow.
For discovery-first workflows, a natural upstream step is [TikTok Search Scraper - [Videos, Hashtags & Users]](the referenced Actor page), which can surface public TikTok records that you can then pass into this Actor by sound URL or ID. When your starting point is a trend feed, TikTok Trending Videos Scraper is another upstream source of public TikTok records that can lead into sound-focused analysis.
Practical scenario
Maya is reviewing a campaign brief that includes a TikTok music link. She starts with the sound URL https://www.tiktok.com/music/luther-7439295283975702544 and runs the Actor with outputMode set to sounds_and_videos.
The dataset returns a sound row with title, author, album, userCount, audioUrl, and shareUrl, plus video rows with videoId, videoUrl, authorUsername, playCount, likeCount, and caption. Maya uses the userCount and video engagement fields to decide which creators to review next, then opens the listed videoUrl records for a manual content check.
Input fields
| Field | Type | Purpose |
|---|---|---|
soundUrls | array of strings | TikTok sound/music URLs |
startUrls | array of request sources | Apify-style URL input for TikTok /music/ URLs |
clipIds | array of strings | Raw TikTok sound clip IDs |
searchQueries | array of strings | Music search queries that use SociaVault search |
outputMode | string | Save sound metadata, videos, or both |
providerOrder | string | Provider sequence for sound details and videos |
maxSounds | integer | Maximum unique sounds to process |
maxSearchResultsPerQuery | integer | Maximum sounds discovered per search query |
maxVideosPerSound | integer | Maximum videos saved for each sound |
maxPagesPerSound | integer | Safety cap for provider pagination per sound |
region | string | Alpha-2 region used for SociaVault search |
filterBy | string | SociaVault search filter: all, title, or creators |
sortType | string | SociaVault search sort mode |
includeRawData | boolean | Include raw provider payloads on each row |
Focused input example
{"soundUrls": ["https://www.tiktok.com/music/luther-7439295283975702544"],"outputMode": "sounds_and_videos","providerOrder": "scrapecreators-first","maxSounds": 1,"maxVideosPerSound": 25,"maxPagesPerSound": 5,"includeRawData": false}
Output fields
The default dataset contains normalized sound rows and video rows. Each row includes a recordType and a provider.
| Field | Type | Purpose |
|---|---|---|
recordType | string | sound or video |
provider | string | Provider that returned the row |
inputType | string or null | url, clipId, or search |
inputValue | string or null | Original URL, clip ID, or query |
searchQuery | string or null | Query that discovered the sound |
clipId | string or null | TikTok sound clip ID |
soundUrl | string or null | TikTok music page URL |
title | string or null | Sound title |
author | string or null | Sound author or artist |
album | string or null | Album name when available |
durationSeconds | number or null | Sound clip duration |
fullSongDurationMs | number or null | Matched full song duration |
userCount | integer or null | Number of TikTok videos using the sound |
createdAt | string or null | Sound or video creation timestamp |
isOriginal | boolean or null | TikTok original flag |
isOriginalSound | boolean or null | TikTok original audio flag |
isCommerceMusic | boolean or null | Commerce music flag |
hasCommerceRight | boolean or null | Provider-reported commerce right |
canReuse | boolean or null | Reuse or shooting flag when exposed |
language | string or null | Reported language |
coverUrl | string or null | Cover art or thumbnail URL |
audioUrl | string or null | Provider-returned audio preview URL |
shareUrl | string or null | Provider-returned TikTok share URL |
matchedSongId | string or null | Matched catalog song ID |
matchedSongTitle | string or null | Matched catalog song title |
matchedSongAuthor | string or null | Matched catalog song author |
themeTags | array or null | Genre or mood tags |
artists | array or null | Artist profile objects |
soundTitle | string or null | Sound title on video rows |
soundAuthor | string or null | Sound author on video rows |
videoPosition | integer or null | Position in the returned video list |
videoId | string or null | TikTok video ID |
videoUrl | string or null | TikTok video URL |
caption | string or null | Video caption text |
authorId | string or null | Video author ID |
authorSecUid | string or null | TikTok secure user ID |
authorUsername | string or null | Video author username |
authorNickname | string or null | Video author display name |
authorVerified | boolean or null | Whether the author is verified |
region | string or null | Video region when returned |
durationMs | integer or null | Video duration in milliseconds |
playCount | integer or null | Video play count |
likeCount | integer or null | Video like count |
commentCount | integer or null | Video comment count |
shareCount | integer or null | Video share count |
collectCount | integer or null | Video save count |
hashtags | array or null | Hashtags detected in the video |
scrapedAt | string | Timestamp when the row was saved |
Illustrative output record
{"recordType": "sound","provider": "scrapecreators","inputType": "url","inputValue": "https://www.tiktok.com/music/luther-7439295283975702544","clipId": "7439295283975702544","soundUrl": "https://www.tiktok.com/music/luther-7439295283975702544","title": "luther","author": "Kendrick Lamar & SZA","album": "GNX","durationSeconds": 59,"userCount": 482194,"coverUrl": "https://p16-sg.tiktokcdn.com/aweme/720x720/example.jpeg","audioUrl": "https://sf16-ies-music-sg.tiktokcdn.com/obj/example","shareUrl": "https://www.tiktok.com/music/luther-7439295283975702544","matchedSongTitle": "luther","matchedSongAuthor": "Kendrick Lamar & SZA","scrapedAt": "2026-06-10T00:00:00.000Z"}
How it works
The Actor accepts direct music URLs, request-list style start URLs, raw clip IDs, and optional search queries.
Implementation facts from the live contract:
- ScrapeCreators is the recommended primary provider for sound details and videos.
- SociaVault is the fallback provider.
- SociaVault search powers
searchQueries. outputModeselects whether rows include sounds, videos, or both.maxSounds,maxSearchResultsPerQuery,maxVideosPerSound, andmaxPagesPerSoundbound collection size and provider pagination.includeRawDataadds raw provider payloads to each saved row for debugging and downstream parsing.- Output rows are stored in the default dataset, and
RUN_SUMMARYis stored in the key-value store.
Pricing
This Actor uses Pay per event plus Apify platform usage. The live Pricing tab shows the current pricing details, so check it before each run.
Event examples from the live contract:
- Actor start: charged when the Actor begins running.
- Scraped TikTok sound: charged for each saved sound metadata row.
- Scraped TikTok video using sound: charged for each saved video row.
For example, one run that saves two sound rows and ten video rows consumes twelve scrape events, plus the Actor start event and any Apify platform usage associated with the run. Use the Pricing tab for the current rates and total cost calculation.
Use with AI agents (MCP)
This Actor is an Apify Actor usable through Apify MCP. It retrieves TikTok sound metadata and video rows from accepted inputs and returns normalized dataset records plus run summary telemetry.
Exact Actor identity: khadinakbar/tiktok-sound-scraper
Use it when an agent needs a structured TikTok music record, a list of videos using a sound, or a sound discovered from search.
Find the TikTok sound behind this URL, save the sound metadata, and return the first 10 videos using it. Use the default provider order, keep raw provider data off, and summarize the sound title, author, usage count, and top creator handles.
Output interpretation:
recordType = "sound"identifies the music-level row.recordType = "video"identifies a video that uses the sound.providershows whether ScrapeCreators or SociaVault returned the row.scrapedAtmarks when the row was saved.RUN_SUMMARYcontains provider usage, row counts, cost estimate, and stop reason.
Scope and pagination guidance:
- Direct sound URLs and clip IDs map to specific sounds.
- Search queries use SociaVault search, then the discovered sounds are scraped.
maxPagesPerSoundcaps provider pagination while collecting videos.maxVideosPerSoundcaps the number of saved video rows per sound.maxSoundscaps the number of unique sounds across direct inputs and search results.
Apify API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('khadinakbar/tiktok-sound-scraper').call({soundUrls: ['https://www.tiktok.com/music/luther-7439295283975702544'],outputMode: 'sounds_and_videos',maxSounds: 1,maxVideosPerSound: 10,providerOrder: 'scrapecreators-first',});const datasetItems = await client.dataset(run.defaultDatasetId).listItems();console.log(datasetItems.items);
Best results and outcome guidance
A focused input usually produces the clearest dataset. Start with one of these patterns:
- one sound URL when you already know the exact TikTok music page,
- one clip ID when you only have the numeric sound identifier,
- one search query when you want discovery first and can work from the returned matches,
soundsmode when you only need sound-level metadata,videosmode when you only need the videos that use a sound.
For search-driven workflows, use region, filterBy, and sortType together so the search matches your research context. Set maxVideosPerSound to a smaller number when you only need sample videos, or leave it higher when you want broader coverage of the returned sound.
Continue the workflow
- Then use TikTok Transcript Scraper to continue Tiktok records selected with TikTok Sound Scraper - Music Metadata & Videos into a focused media workflow.
- Then use TikTok Trending Hashtags Scraper to extend TikTok Sound Scraper - Music Metadata & Videos research with a complementary discovery contract.
Design note
I found that the dataset contract cleanly separates sound rows from video rows through recordType, while still keeping shared identifiers like clipId and soundUrl available for both workflow stages.
FAQ
When should I use sound URLs versus clip IDs?
Use sound URLs when you already have a TikTok music page. Use clip IDs when another workflow, such as a search scraper or trend scraper, has already extracted the numeric sound identifier.
How does this Actor connect to discovery workflows?
A discovery Actor can surface public TikTok records first, and this Actor can then resolve the related sound metadata and videos. The verified upstream options are [TikTok Search Scraper - [Videos, Hashtags & Users]](the referenced Actor page) and TikTok Trending Videos Scraper.
What appears in the dataset when I only want sound metadata?
Set outputMode to sounds. The dataset will then focus on sound rows, including fields like title, author, album, userCount, audioUrl, and shareUrl.
What appears in the dataset when I only want videos?
Set outputMode to videos. The dataset will focus on video rows with fields such as videoId, videoUrl, authorUsername, playCount, likeCount, and hashtags.
How do search queries work?
searchQueries uses SociaVault's TikTok music search endpoint to discover sounds, and then the Actor scrapes each discovered sound according to the other input settings.
Where can I check pricing for the current run?
Open the live Pricing tab in the Actor UI. The Actor uses Pay per event plus Apify platform usage.
Responsible use
Use this Actor for public web data and for workflows that fit your data governance, privacy, and platform-terms requirements. Review the returned dataset fields before downstream use, especially when joining sound rows and video rows into a single analysis table.