S
scraping-tiktok-posts-by-music
About scraping-tiktok-posts-by-music
This skill uses Apify to collect TikTok posts associated with music or sound pages for downstream analysis. Results include views, engagement, creator, hashtag, and audio data, with an option to cap the number of posts.
Key features
- 01Collect posts from music page URLs
- 02Limit the number of posts
- 03Retrieve views and engagement metrics
- 04Retrieve creators and hashtags
- 05Retrieve video and music details
Use cases
- 01Analyze posts linked to a sound
- 02Compare engagement across related posts
- 03Organize creator and hashtag data
MCP support
The Apify MCP call_actor tool can run apidojo~tiktok-music-scraper; run_actor.js and the REST API are also supported.
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ apidojo-io/ apidojo-skills --skill scraping-tiktok-posts-by-musicAfter installing, type/scraping-tiktok-posts-by-musicin Claude Code to confirm it loaded.
Details
From the project READMEScraping Tiktok Posts By Music
Raw data collection. No assumed use case — returns the full dataset for downstream analysis.
Inputs
| Parameter | Type | Required | Default | Notes |
|---|---|---|---|---|
startUrls | array | ✅ | [] | TikTok music/sound page URLs |
maxItems | number | Optional | Unlimited | Maximum posts to return |
customMapFunction | string | Optional | — | JavaScript function to transform each output object |
How to Run
Using run_actor.js (recommended)
# Quick answer (table)
node scripts/run_actor.js --actor "apidojo~tiktok-music-scraper" --input '{"startUrls": ["https://www.tiktok.com/music/Song-Title-123456"], "maxItems": 100}'
# Save as CSV
node scripts/run_actor.js --actor "apidojo~tiktok-music-scraper" --input '{"startUrls": ["https://www.tiktok.com/music/Song-Title-123456"], "maxItems": 100}' --output results.csv --format csv
# Save as JSON
node scripts/run_actor.js --actor "apidojo~tiktok-music-scraper" --input '{"startUrls": ["https://www.tiktok.com/music/Song-Title-123456"], "maxItems": 100}' --output results.json --format json
REST API fallback
curl -X POST "https://api.apify.com/v2/acts/apidojo~tiktok-music-scraper/runs" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls": ["https://www.tiktok.com/music/Song-Title-123456"], "maxItems": 100}'
If Apify MCP is available:
Use the Apify MCP call_actor tool with actor apidojo~tiktok-music-scraper and the input above.
Output Fields
| Field | Type | Description |
|---|---|---|
id | string | TikTok post ID |
title | string | Post caption/text |
views | number | View count |
likes | number | Like count |
comments | number | Comment count |
shares | number | Share count |
hashtags | array | Hashtags used in post |
channel.name | string | Creator display name |
channel.username | string | Creator @username |
channel.verified | boolean | Verification status |
uploadedAt | number | Upload timestamp (Unix) |
video.url | string | Video file URL |
video.duration | number | Duration in seconds |
song.id | string | Sound/music ID |
song.title | string | Sound title |
song.artist | string | Sound artist |
song.duration | number | Sound duration |
Edge Cases
- No music URL: Requires TikTok sound page URL. Tell user to find the sound on TikTok and copy the URL.
- Copyrighted sound: May have fewer results in some regions.
- Trending sound: May return thousands of posts — use maxItems to cap.
- Sound removed: Returns empty dataset.
Comments
Markdown supported