Music marketing with social data: find the sounds that move
Track each release as a set of sounds: snapshot the TikTok sound's video count and Instagram audio reels every day, list who is using it, and compare that with the track's public streaming pages. A 28-day campaign for one release takes about 244 credits, roughly $0.46 on the $47 pack. The numbers that matter are daily sound velocity, creator breadth and the share of uses that you did not pay for.
A release campaign lives or dies on whether the sound spreads past the creators you paid. You can see that in public data: the TikTok sound's video count, who is posting with it, whether reels are picking up the same audio, and whether the streaming pages move a few days later. This playbook is for running that loop across one release or a whole roster.
If you want the basics of reading a single TikTok sound, start with TikTok sound analytics. This page is about running a campaign.
Who does this
- Label marketing teams seeding a single with creators and reporting weekly.
- Artist managers deciding which track to push next based on which one is already moving.
- Independent artists watching their own sounds without a dashboard subscription.
- A&R scouts looking for songs that spread with no campaign behind them.
The data, per platform
| Step | Platform | Endpoint | Credits |
|---|---|---|---|
| Sound totals: title, author, video count | TikTok | tiktok song API | 1 |
| Who is using the sound | TikTok | tiktok song videos API | 1 per page |
| Reels using the same audio | instagram audio reels API | 1 per page | |
| Creator vetting | TikTok | tiktok profile API | 1 |
| Streaming pages | Spotify, SoundCloud, Apple Music | spotify track API, soundcloud track API, apple music track API | 1 |
| Lyric videos, covers, reactions | YouTube | youtube search API | 2 |
Worked example: one release, 28 days
Track the official sound plus the biggest fan-made upload of the same song, because both carry uses.
| Daily item | Credits a day |
|---|---|
| 2 TikTok sounds, totals | 2 |
| 2 pages of newest videos on the main sound | 2 |
| 1 page of Instagram audio reels | 1 |
| Spotify and SoundCloud track pages | 2 |
| Daily total | 7 |
7 credits × 28 days = 196. Add 40 creator profile checks (40) and a weekly YouTube search for the song title (4 × 2 = 8). The campaign total is 244 credits, about $0.46 on the $47 pack. A label running 10 releases a month spends 2,440 credits, about $4.59.
The metrics that matter
- Sound velocity = (video count today − video count 7 days ago) / 7. Report it daily; the raw total hides the slope.
- Acceleration = this week's velocity / last week's velocity. Above 1 means the sound is still spreading.
- Organic share = videos from creators you did not brief / all videos in your sample. Keep a list of seeded handles and subtract them. A campaign that stays under 20% organic after two weeks is paid reach, not a trend.
- Creator breadth = unique creators in the newest 100 videos. One creator posting 30 times looks like growth and is not.
- Small-account share = share of new videos from accounts under 10,000 followers. When ordinary users post with the sound, it has left the campaign.
- Cross-platform lag = days between the TikTok velocity peak and the Instagram audio peak. Use it to time Instagram seeding on the next release.
A daily snapshot script
import csv, datetime, os, requests
KEY = os.environ["SCRAPEIO_API_KEY"]
H = {"x-api-key": KEY}
SOUND_URL = "https://www.tiktok.com/music/your-song-1234567890"
SEEDED = {"creator_a", "creator_b"}
def get(path, **p):
return requests.get("https://scrapeio.com" + path, params=p, headers=H, timeout=60).json()["data"]
song = get("/v1/tiktok/song", url=SOUND_URL)
vids = get("/v1/tiktok/song/videos", music_id=song["id"])["items"]
handles = [v["author"]["handle"] for v in vids if v.get("author")]
organic = sum(h not in SEEDED for h in handles)
with open("sound_log.csv", "a", newline="") as f:
csv.writer(f).writerow([datetime.date.today(), song["id"], song["videos"],
len(set(handles)), organic, len(handles)])
Run it once a day from cron. After a week, velocity and organic share come straight out of the CSV.
Pitfalls
- Duplicate sounds. The same song often exists as the official sound, several "original sound" uploads, and sped-up or slowed versions. Search for them with tiktok search keyword API and track the top two or three, or you will undercount.
- Rounded totals. Large counts may be shown rounded. Over short periods, count new videos in the newest pages instead.
- Business accounts. TikTok limits the music business accounts can use, so few brand accounts will appear in a sound's videos. Do not read that as a signal against the song; the rule is covered in the sound analytics post above.
- Attribution. A streaming lift a few days after a TikTok spike is a correlation. Playlist adds and radio can move the same week; note them in the report.
- Streaming APIs. If you want to use the official Spotify API instead, read what changed in Spotify's Web API first. For SoundCloud, see the SoundCloud data guide.
Run it from an AI agent
claude mcp add --transport http scrapeio https://scrapeio.com/mcp --header "x-api-key: $SCRAPEIO_API_KEY"
Then ask: "For this TikTok sound, call tiktok_song and two pages of tiktok_song_videos. Exclude these seeded handles. Tell me unique creators, the share under 10,000 followers, and the five most played organic videos with links. Then check spotify_track for the same song." Per-platform tool lists are on the TikTok MCP server, Spotify MCP server and SoundCloud MCP server pages.
How to do it with ScrapeIO
TikTok sounds, Instagram audio reels, Spotify, SoundCloud, Apple Music and YouTube are all behind one key, with the same field names, so the daily snapshot is one script rather than five integrations. Every call in this playbook costs 1 credit except YouTube search at 2, and credits never expire between release cycles.
100 free credits, no card. Credits never expire.
Get API key