TikTok Music/Sound Scraper
Pricing
from $3.00 / 1,000 results
TikTok Music/Sound Scraper
Scrape TikTok music/sound metadata and the posts that use a particular sound. Input music URLs or IDs. No cookies required.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
an hour ago
Last modified
Categories
Share
TikTok Music Scraper
Scrape TikTok sound and music pages to collect track metadata and the full list of videos that use a given sound. Accepts music page URLs or bare numeric IDs and returns a metadata row per sound followed by post rows for every video using that sound. No login or cookies required.
What this actor does
- Accepts TikTok music page URLs or raw numeric sound IDs as input
- Emits a metadata row per sound with title, author, duration, cover images, video count, copyright flags, and DSP streaming links (Spotify, Apple Music, etc.)
- Paginates the sound's video list and emits a post row for each video using the sound
- Captures full post metadata: caption, author profile, engagement stats, hashtags, and video details
- Supports toggling metadata rows and post rows independently so you can fetch just stats or just videos
- Empty fields are omitted
Output per music metadata record
rowType— always"music"musicId— unique TikTok sound IDmusicTitle— sound/track titleauthorName— creator display nameduration— duration in secondsisCopyrighted— whether the sound has a copyright restrictionisCommerceMusic— whether this is a licensed commercial trackisOriginal— whether this is a user-created original soundvideoCount— total videos using this sound on TikTokplayUrl— streamable audio URL (expires)coverLarge— large cover image URLcoverMedium— medium cover image URLalbum— album name (when present, for commercial tracks)tt2dsp— object with links to Spotify, Apple Music, and other streaming platforms (when present)author.id— creator's TikTok user IDauthor.username— creator handleauthor.displayName— creator display nameauthor.verified— verification statusauthor.avatarUrl— creator profile image URLauthor.followerCount— creator follower countshareMeta.title— share title textshareMeta.desc— share description textscrapedAt— ISO 8601 timestamp of when the record was collected
Output per post record
rowType— always"post"matchedMusicId— the sound ID this video is associated withpostId— unique TikTok video IDpostUrl— direct URL to the videocaption— full caption textlikeCount— total likescommentCount— total commentsshareCount— total sharesplayCount— total plays/viewsauthor.id— author's TikTok user IDauthor.username— author handleauthor.displayName— author display nameauthor.verified— verification statusauthor.avatarUrl— author profile image URLhashtags— array of hashtag names parsed from captionscrapedAt— ISO 8601 timestamp of when the record was collected
Input
| Field | Type | Default | Description |
|---|---|---|---|
musicUrls | string[] | — | TikTok music page URLs. Example: https://www.tiktok.com/music/original-sound-7595604258835401494 |
musicIds | string[] | — | Bare numeric sound IDs (15–20 digits). Alternative to full URLs. |
maxPostsPerSound | integer | 30 | Maximum videos to collect per sound (0–500). Set to 0 to skip post rows. |
includeMusicMetadata | boolean | true | Emit a metadata row per sound with title, stats, cover images, and DSP links. |
includePosts | boolean | true | Emit post rows for videos using each sound. |
Example: single sound by URL
{"musicUrls": ["https://www.tiktok.com/music/original-sound-7595604258835401494"],"maxPostsPerSound": 30,"includeMusicMetadata": true,"includePosts": true}
Example: multiple sounds by ID
{"musicIds": ["7595604258835401494", "7234567890123456789"],"maxPostsPerSound": 50,"includeMusicMetadata": true,"includePosts": true}
Example: metadata-only (no video scraping)
{"musicIds": ["7595604258835401494"],"includeMusicMetadata": true,"includePosts": false}
Example: large-scale video collection for a viral sound
{"musicUrls": ["https://www.tiktok.com/music/original-sound-7595604258835401494"],"maxPostsPerSound": 500,"includeMusicMetadata": false,"includePosts": true}
Use cases
- Music labels and A&R teams tracking how often a track is being used on TikTok and which creators are driving virality
- Content marketers identifying trending sounds to incorporate into brand video campaigns
- UGC researchers collecting all videos using a specific sound for trend analysis or sentiment studies
- Podcast and media teams monitoring original sounds tied to news events or cultural moments
- Influencer platforms discovering creators building audiences around a particular music niche
- Rights management teams auditing the spread of copyrighted audio across user-generated content
FAQ
Q: Do I need a TikTok account, login, or cookies?
A: No. The actor uses TikTok's public music API without authentication.
Q: How do I find a sound's numeric ID?
A: Open any TikTok music page in a browser. The URL format is /music/sound-name-XXXXXXXXXXXXXXXXX — the final numeric segment is the ID. You can pass the full URL or just the ID.
Q: How many videos can I collect per sound?
A: Up to 500 per sound. TikTok returns approximately 30 videos per page and the actor paginates automatically.
Q: Do video and audio play URLs expire?
A: Yes. TikTok signs all media CDN URLs with a short-lived token. Download or cache media within a few hours of scraping. The mediaUrlExpiresAt field indicates when signed URLs expire.
Q: What are the DSP links in tt2dsp?
A: DSP stands for Digital Service Provider. These are links to Spotify, Apple Music, and similar streaming platforms. They only appear for licensed commercial tracks; user-created original sounds do not have DSP links.
Q: Can I get only the sound stats without scraping videos?
A: Yes. Set includePosts: false and includeMusicMetadata: true to get only the metadata row for each sound.
Q: What does isOriginal mean?
A: When isOriginal is true, the sound was recorded by a TikTok user rather than uploaded from a commercial music catalog.
Related TikTok Scrapers
Build a complete TikTok data pipeline with our full suite: