Instagram Reels Audio Scraper
Pricing
from $5.31 / 1,000 audio records
Instagram Reels Audio Scraper
🎵 Extract public Instagram Reels audio metadata, artists, usage signals, and representative Reels without login.
Pricing
from $5.31 / 1,000 audio records
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Share
Extract public Instagram Reels audio metadata and representative Reels without logging in.
Use audio page URLs or numeric audio IDs to build monitoring-ready datasets for sound research, creator campaigns, and trend analysis.
- 🎵 Normalize audio IDs and canonical music IDs
- 📊 Capture public usage signals and representative Reel engagement
- 👤 Identify artists and creators when Instagram exposes them
- 🔁 Deduplicate repeated URLs and IDs automatically
- 🕒 Add stable scrape timestamps for recurring comparisons
What does Instagram Reels Audio Scraper do?
Instagram Reels Audio Scraper visits public Instagram audio pages and returns one normalized record per audio source.
Each record can include:
- audio ID
- canonical audio ID
- audio title
- artist or creator
- original-versus-licensed classification
- public audio media URL
- duration
- thumbnail
- public usage count
- bounded sample of associated Reels
- scrape timestamp
Unavailable fields are omitted rather than filled with misleading values.
Who is it for?
Social media agencies
Monitor sounds used across client campaigns and compare representative posts over time.
Creators
Research how a sound is reused before planning a new Reel.
Music marketers
Collect public examples of creator adoption and engagement around tracks.
Influencer teams
Find representative creators using an audio asset and export results for outreach research.
Trend researchers
Take recurring snapshots of public audio pages for downstream change detection.
Why use this Instagram audio scraper?
Manual audio-page research does not scale well.
Audio IDs, creator details, engagement signals, and media links are spread across Instagram responses.
This Actor converts those responses into stable JSON records that can be exported, scheduled, and integrated.
It does not require Instagram credentials and only targets public pages.
Input
Provide audioInputs containing public Instagram audio URLs or numeric IDs.
{"audioInputs": ["579408562507956","https://www.instagram.com/reels/audio/579408562507956/"],"maxItems": 10,"maxReelsPerAudio": 20}
| Field | Type | Description |
|---|---|---|
audioInputs | string[] | Public audio URLs or numeric audio IDs |
maxItems | integer | Maximum unique audio records |
maxReelsPerAudio | integer | Maximum Reel samples embedded per audio |
proxyConfiguration | object | Optional Apify Proxy settings |
Duplicate representations of the same audio ID produce one record.
Output data
The default dataset contains one item per audio ID.
| Field | Type | Description |
|---|---|---|
audioId | string | ID requested by the user |
canonicalAudioId | string | Canonical music ID when exposed |
title | string | Audio or track title |
artist | string | Display artist or original creator |
artistUsername | string | Instagram username when exposed |
isOriginalAudio | boolean | Whether Instagram classifies it as original audio |
audioType | string | Instagram audio classification |
audioUrl | string | Temporary public audio media URL when exposed |
durationSeconds | number | Duration visible in the public response |
thumbnailUrl | string | Representative public thumbnail |
usageCount | number | Public Reel usage count when exposed |
sourceUrl | string | Canonical audio page |
reels | object[] | Bounded representative Reel samples |
reelsReturned | integer | Number of embedded Reel samples |
scrapedAt | string | UTC extraction timestamp |
Reel sample fields
Each object in reels can contain:
- Reel ID and shortcode
- public Reel URL
- caption
- creator username and display name
- creator ID
- like and comment counts
- play and view counts
- video duration
- thumbnail and temporary video URL
- publication timestamp
Instagram may omit metrics or media links for some public posts.
Example output
{"audioId": "579408562507956","title": "Original audio","artist": "Public creator","isOriginalAudio": true,"audioType": "original_sounds","sourceUrl": "https://www.instagram.com/reels/audio/579408562507956/","reelsReturned": 5,"reels": [{"shortcode": "EXAMPLE","url": "https://www.instagram.com/reel/EXAMPLE/","creatorUsername": "creator","likeCount": 120}],"scrapedAt": "2026-07-12T00:00:00.000Z"}
How to scrape Instagram Reels audio
- Open a public Reel in Instagram.
- Follow the linked audio name to its public audio page.
- Copy the
/reels/audio/<id>/URL. - Add it to
audioInputs. - Choose a small Reel sample limit.
- Start the Actor.
- Export the dataset as JSON, CSV, Excel, or another supported format.
How much does it cost to scrape Instagram Reels audio?
The Actor uses pay-per-event pricing.
A small one-time start event covers run initialization, followed by a charge per audio record produced.
You are not charged per embedded Reel sample.
Exact tier prices are displayed on the Actor page before a run starts.
Keep first tests small, then increase maxItems after validating the output.
Monitoring workflow
Run the Actor on a schedule with the same audio IDs.
Use scrapedAt, usageCount, and Reel engagement fields to compare snapshots.
For long-term analysis, store each run in a named dataset or send records to your warehouse.
Avoid treating a single snapshot as a complete historical trend.
Tips for reliable results
- Use only public audio pages.
- Start with a few audio IDs.
- Keep
maxReelsPerAudiobounded. - Enable Apify Proxy if direct traffic is rate-limited.
- Retry later when Instagram temporarily limits a page.
- Store media files promptly because CDN URLs can expire.
- Schedule moderate recurring runs rather than aggressive bursts.
Integrations
Connect results to:
- Google Sheets for campaign reviews
- Airtable for creator research
- Slack for monitoring alerts
- Make for no-code routing
- Zapier for workflow triggers
- webhooks for internal services
- cloud storage for snapshots
- data warehouses for trend analysis
A common workflow compares the latest usage count with the previous scheduled run and alerts only when growth crosses a threshold.
API usage
JavaScript example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/instagram-reels-audio-scraper').call({audioInputs: ['579408562507956'],maxItems: 1,maxReelsPerAudio: 10,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python API example
from apify_client import ApifyClientclient = ApifyClient('YOUR_APIFY_TOKEN')run = client.actor('automation-lab/instagram-reels-audio-scraper').call(run_input={'audioInputs': ['579408562507956'],'maxItems': 1,'maxReelsPerAudio': 10,})items = client.dataset(run['defaultDatasetId']).list_items().itemsprint(items)
cURL API example
curl -X POST \'https://api.apify.com/v2/acts/automation-lab~instagram-reels-audio-scraper/runs?token=YOUR_APIFY_TOKEN' \-H 'Content-Type: application/json' \-d '{"audioInputs":["579408562507956"],"maxItems":1,"maxReelsPerAudio":10}'
Use with MCP and AI agents
Connect through the Apify MCP server:
https://mcp.apify.com/?tools=automation-lab/instagram-reels-audio-scraper
Example prompts:
- “Scrape this Instagram audio ID and summarize representative creators.”
- “Compare public engagement in the Reel sample for these audio pages.”
- “Save a monitoring snapshot for these Instagram sounds.”
For Claude Code, register the Actor as an HTTP MCP server:
$claude mcp add --transport http instagram-reels-audio 'https://mcp.apify.com/?tools=automation-lab/instagram-reels-audio-scraper'
For Claude Desktop, Cursor, or VS Code, add this server to the application's MCP JSON configuration:
{"mcpServers": {"instagram-reels-audio": {"type": "http","url": "https://mcp.apify.com/?tools=automation-lab/instagram-reels-audio-scraper"}}}
Restart the client after saving the configuration, then use one of the actor-specific prompts above.
Errors and troubleshooting
Why did an audio page return no record?
The ID may be invalid, removed, private, geographically unavailable, or temporarily rate-limited.
Confirm the page opens publicly and retry with Apify Proxy enabled.
Why are some fields missing?
Instagram does not expose every licensing field or metric for every audio object.
The Actor preserves valid partial records and omits absent optional fields.
Why is a media URL no longer available?
Instagram CDN links are temporary.
Download permitted media promptly if your workflow requires a durable copy.
Limits
The Actor does not:
- log in to Instagram
- access private content
- guarantee every Reel using an audio
- bypass geographic or rights restrictions
- provide historical metrics before your first snapshot
- guarantee permanent CDN links
The Reel sample is representative and bounded, not an exhaustive usage archive.
Is it legal to scrape public Instagram data?
Scraping legality depends on jurisdiction, purpose, and how data is used.
Only collect public information you are permitted to process.
Respect privacy, intellectual-property rights, platform terms, and applicable laws.
Do not use the Actor to access private accounts or evade access controls.
FAQ
Does it require an Instagram account?
No. The supported scope uses public audio pages without login.
Can I submit the same ID twice?
Yes. Duplicate IDs and equivalent audio URLs are deduplicated.
Are licensed songs supported?
When Instagram exposes public music metadata, the Actor returns it. Availability varies by audio and region.
Can I get every Reel using a sound?
No. The Actor returns a bounded representative sample exposed by the public audio page.
Can I schedule monitoring?
Yes. Use Apify schedules and compare records by audioId and scrapedAt.
Does the Actor download audio files?
It returns a temporary public media URL when Instagram exposes one. It does not persist files automatically.
Related Instagram scrapers
Explore other actors from automation-lab for Instagram profiles, comments, hashtags, stories, and follower metrics.
Use this Actor when the primary entity is an audio object and its representative public Reels.
Support
If a valid public audio page repeatedly fails, open an issue from the Actor page.
Include the public URL, input limits, run ID, and whether proxying was enabled.
Do not include private credentials or personal account cookies.