Instagram Reels Scraper: Plays, Comments, Music, $1.5/1K avatar

Instagram Reels Scraper: Plays, Comments, Music, $1.5/1K

Pricing

from $0.40 / 1,000 reel rows

Go to Apify Store
Instagram Reels Scraper: Plays, Comments, Music, $1.5/1K

Instagram Reels Scraper: Plays, Comments, Music, $1.5/1K

Scrape Instagram reels from any public account without login: play counts, likes, comments, duration, caption, hashtags, music or original audio, video and audio URLs, tagged users, collaborators, pinned flag and the latest comments. Reel URLs work too.

Pricing

from $0.40 / 1,000 reel rows

Rating

0.0

(0)

Developer

Detroit Web Agent - Open Data

Detroit Web Agent - Open Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Share

Instagram Reels Scraper: plays, likes, comments, music and video URLs, no login

Instagram Reels Scraper: features, price and a real output row

Run it free on Apify

Price per 1,000 reelsFree planStarterScaleBusiness
This Actor$1.50$1.40$0.98$0.40
Most-used alternative$2.60$2.30$1.40$1.00

Instagram Reels Scraper sample output table from a real run

Scrape the reels of any public Instagram account without logging in. Each row is one reel with its play count, likes, comments count, duration, caption, hashtags, mentions, music or original audio, the video file URL, the audio-only track URL, cover image, tagged users, collab co-authors, paid-partnership brands, the pinned flag, alt text and the latest comments with author, likes and date. Paste usernames, profile URLs or single reel URLs.

  • No Instagram account, cookies or session. Nothing is logged in, so your own account is never at risk.
  • Comments, alt text and audio are included in the price. There is no add-on charge.
  • From $1.50 per 1,000 reels on the free plan, down to $0.40 per 1,000 on paid plans.
  • Accounts that do not exist, private accounts, failed pages and reels you filter out are never charged.
  • 25 reels with full details usually arrive in well under a minute.

Run in 30 seconds

  1. Open the actor in Apify Console (a free Apify account is enough).
  2. Press Start with the prefilled input: the 25 newest reels of @natgeo, about $0.04 on the free plan.
  3. Open the Output tab. The Reels view is a table with the cover, plays, likes, comments, duration, date, audio and link. Download CSV, Excel or JSON.
{
"username": ["natgeo"],
"resultsLimit": 25
}

That is all the input you need. An empty input ({}) also works and runs the same example, so you can see the output before you type anything.

Why this reels scraper

  • Real play counts. videoPlayCount is the number Instagram shows under each reel, read from Instagram's own reels feed. Facebook plays are added in fbPlayCount when Instagram reports them for cross-posted reels.
  • Latest comments included. Every reel carries up to about 15 of its latest comments: text, author handle, author picture, verified badge, comment likes, reply count and date. No extra charge per comment and no separate run.
  • Audio you can use. musicInfo tells you whether the reel uses a licensed song (artist and title) or original audio, plus the audio ID so you can group reels that use the same sound. audioUrl is a direct link to the audio-only track.
  • Exact duration in seconds with milliseconds (for example 51.605), not a rounded label.
  • Collabs and partnerships. Collab co-authors, tagged users and paid-partnership brands each have their own column.
  • Pinned reels are flagged, and you can skip them in one click so a pinned reel from last year does not sneak into "last 30 days".
  • Date filter that saves money. onlyPostsNewerThan stops paging as soon as reels get older than your date, so you only pay for what you asked for.
  • Almost nothing per run. You pay only for the reels delivered, which matters when you schedule many small runs.

What it does and who it is for

The actor reads what Instagram serves to any logged-out visitor: the account's public reels tab, and for each reel its public reel page. It combines both into one clean row per reel.

  • Social media managers and agencies: see which reels of a competitor or a client actually get plays, and what audio they use.
  • Influencer marketing: check a creator's real reel performance (plays, likes, comments) before you sign a deal, and see who they already work with through the paid-partnership and collab columns.
  • Trend and sound research: collect the audio IDs and song names behind the best-performing reels in a niche.
  • Brands: benchmark your reels against competitors every week with a schedule and a date filter.
  • Researchers and journalists: archive public reels with timestamps, captions and the public comment snapshot.
  • Video and AI teams: get the video and audio file URLs to analyse content you have the right to use.

What you get: output fields

Every row is one reel.

FieldWhat it is
shortCode, url, idReel shortcode, link and media ID
type, productTypeVideo and clips for reels
captionFull caption text
hashtags, mentionsHashtags and @mentions from the caption, original case
videoPlayCountPlays on Instagram
fbPlayCountPlays on Facebook, when reported
likesCountLikes (null when the owner hides likes)
commentsCountTotal comments
latestCommentsLatest comments: id, text, ownerUsername, ownerProfilePicUrl, ownerVerified, timestamp, likesCount, repliesCount
firstCommentText of the first comment shown
videoDurationLength in seconds
videoUrlVideo file URL (highest resolution offered)
audioUrlAudio-only track URL
displayUrl, imagesCover image, and the cover in several sizes
musicInfoartist_name, song_name, uses_original_audio, should_mute_audio, should_mute_audio_reason, audio_id
hasAudioThe reel has sound
timestampPosted at, ISO 8601 UTC
dimensionsWidth, dimensionsHeight, originalWidth, originalHeightSize in pixels
altInstagram's alt text for the cover
ownerUsername, ownerFullName, ownerId, ownerVerified, ownerProfilePicUrlWho posted it
ownerFollowersCountFollowers of the account you asked for
taggedUsersTagged accounts with id, username, full name, verified, picture
coauthorProducersCollab co-authors
paidPartnership, sponsorsPaid-partnership flag and the brands named
isPinnedPinned to the top of the account
isCommentsDisabled, likeAndViewCountsDisabledComment and count settings
captionIsEditedThe caption was edited after posting
locationName, locationIdTagged place, when there is one
inputUrl, scrapedAtWhich input produced the row, and when it was read

Sample output

One row, shortened (long URLs cut):

{
"inputUrl": "https://www.instagram.com/natgeo",
"id": "4007730061460546595",
"type": "Video",
"shortCode": "DeeUUHNAqQj",
"url": "https://www.instagram.com/p/DeeUUHNAqQj/",
"caption": "For a long time, we knew only the planets in our cosmic backyard. Today ...",
"hashtags": [],
"mentions": ["natgeoscience"],
"videoPlayCount": 349029,
"likesCount": 7223,
"commentsCount": 44,
"firstComment": "Incredible footage",
"latestComments": [
{"id": "18059...", "text": "Incredible footage", "ownerUsername": "someone", "ownerVerified": false,
"timestamp": "2026-10-14T14:02:11.000Z", "likesCount": 3, "repliesCount": 0}
],
"videoDuration": 51.605,
"videoUrl": "https://scontent...mp4?...",
"audioUrl": "https://scontent...mp4?...",
"displayUrl": "https://scontent...jpg?...",
"musicInfo": {"artist_name": "natgeo", "song_name": "Original audio", "uses_original_audio": true,
"should_mute_audio": false, "should_mute_audio_reason": "", "audio_id": "28847612568211894"},
"timestamp": "2026-10-14T13:00:04.000Z",
"ownerUsername": "natgeo",
"ownerFullName": "National Geographic",
"ownerVerified": true,
"ownerFollowersCount": 277000000,
"productType": "clips",
"isPinned": false,
"paidPartnership": false,
"taggedUsers": [{"username": "natgeoscience", "is_verified": true}],
"coauthorProducers": [{"username": "natgeoscience", "is_verified": true}],
"scrapedAt": "2026-10-14T16:20:31.000Z"
}

Input options

InputWhat it doesDefault
usernameUsernames, @handles, profile URLs or reel URLs, one per line["natgeo"]
resultsLimitNewest reels per account, up to 100025
onlyPostsNewerThanA date (2025-01-31) or a span (7 days, 2 weeks, 3 months)none
skipPinnedPostsLeave out pinned reelsoff
includeCommentsAdd the latest comments, alt text and edited flag to each reelon
maxItemsHard cap on rows across all accountsnone
maxConcurrencyPages read in parallel20
proxyConfigurationApify Proxy (default). No setup neededApify Proxy

Pricing

Pay per event: you pay for each reel delivered. No monthly rental, no add-ons.

Apify planPrice per 1,000 reels
Free$1.50
Starter (Bronze)$1.40
Scale (Silver)$0.98
Business (Gold) and above$0.40

What is included in that price: the reel row, its latest comments, the alt text, the audio info and the video and audio URLs. What is never charged: accounts that do not exist, private accounts, pages Instagram refuses, and reels removed by your date or pinned filters. The run summary (OUTPUT in the key-value store) shows exactly how many rows were delivered and charged.

To cap your spend, set Max rows in total or a maximum cost per run in Apify Console. The actor stops cleanly when the cap is reached.

How to run it

  • Apify Console: paste usernames, press Start, download the table.
  • Schedule: run it daily or weekly with onlyPostsNewerThan: "7 days" to collect only new reels.
  • API, Python or JavaScript: see "Calling it from code" below.
  • Integrations: send results to Google Sheets, Slack, Make, Zapier, n8n or a webhook from the Integrations tab.

Reliability and blocking

Instagram rate-limits logged-out traffic. The actor uses Apify Proxy with a fresh session for every request, starts on fast datacenter IPs and moves to residential IPs on its own when Instagram pushes back. Slow requests are raced against a second attempt so one stuck connection does not hold up the run. If a reel page cannot be read, the reel is still delivered from the reels feed (plays, likes, video URL, audio, date) and the run log says how many reels are missing comments. If the reels feed itself is unavailable, the actor falls back to the account's public post timeline and keeps only reels.

Limits and honest caveats

  • Public accounts only. Private accounts return a warning and nothing is charged.
  • Latest comments, not all comments. Instagram shows logged-out visitors about 15 recent comments per reel; that is what you get. For every comment on a reel, use a dedicated comments tool.
  • Likes can be hidden. When the owner hides like counts, likesCount is null.
  • Video and image URLs expire. Instagram's media links are signed and stop working after some days. Download files you need soon after the run.
  • Collab reels. The reels tab of an account includes collab reels it co-authored; ownerUsername shows the account that posted them and coauthorProducers lists the collaborators.
  • Reels only. Photos and carousels are not returned here. Use an Instagram posts scraper for the full grid.

Use cases

  1. Competitor reels report: every Monday, pull the last 7 days of reels for five competitors and sort by plays.
  2. Creator vetting: compare a creator's median plays with their follower count before a paid campaign.
  3. Sound research: group reels by musicInfo.audio_id to find sounds that keep getting high plays in your niche.
  4. Partnership mapping: filter rows where paidPartnership is true to see which brands a creator works with.
  5. Content archive: keep a dated record of a public account's reels with captions and comment snapshots.
  6. Hook analysis: export captions, durations and plays to study which openings and lengths perform.

Input guide

  • natgeo, @natgeo and https://www.instagram.com/natgeo/ all mean the same account.
  • A reel URL such as https://www.instagram.com/reel/DeeUUHNAqQj/ returns that reel only. Post URLs (/p/...) work too.
  • Hashtag, explore, story and audio pages need a login, so they are skipped with a warning and never charged.
  • Mixed lists are fine: accounts and reel URLs can sit in the same input.

Worked examples

Last 30 days of reels from three brands, without pinned reels

{
"username": ["nike", "redbull", "gopro"],
"resultsLimit": 200,
"onlyPostsNewerThan": "30 days",
"skipPinnedPosts": true
}

Fastest possible run (no comments)

{
"username": ["natgeo", "nasa"],
"resultsLimit": 50,
"includeComments": false
}

Specific reels by URL

{
"username": [
"https://www.instagram.com/reel/DeeUUHNAqQj/",
"https://www.instagram.com/reel/DecPSQfoaRe/"
]
}

Tips to reduce cost and runtime

  • Use onlyPostsNewerThan on scheduled runs. Paging stops at your date, so old reels are neither read nor charged.
  • Set resultsLimit to what you will actually analyse. Instagram serves 12 reels per page, so 24 or 36 fill pages exactly.
  • Turn off includeComments when you only need plays and likes. Runs get faster, the price stays the same.
  • Put many accounts in one run rather than many runs with one account; accounts are processed in parallel.

Calling it from code

Python:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("transparent_meteorite/instagram-reels-scraper").call(
run_input={"username": ["natgeo"], "resultsLimit": 25}
)
for reel in client.dataset(run["defaultDatasetId"]).iterate_items():
print(reel["shortCode"], reel["videoPlayCount"], reel["likesCount"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('transparent_meteorite/instagram-reels-scraper').call({
username: ['natgeo'],
resultsLimit: 25,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((r) => [r.shortCode, r.videoPlayCount]));

HTTP, one call that runs the actor and returns the rows:

curl -X POST "https://api.apify.com/v2/acts/transparent_meteorite~instagram-reels-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"username": ["natgeo"], "resultsLimit": 25}'

More tools from the same publisher that fit this workflow:

Use from AI agents: every actor here is callable through the Apify MCP server (mcp.apify.com).

FAQ

Do I need an Instagram account or cookies? No. The actor only reads what Instagram shows to logged-out visitors. You never share a login, so your account cannot be blocked.

Is videoPlayCount the same number I see in the app? Yes, it is the play count Instagram shows on the reel. Instagram counts every start of the video, including replays.

Why is videoViewCount empty? Instagram no longer reports the old "views" number for reels to logged-out visitors. Use videoPlayCount.

How many comments do I get per reel? The latest comments Instagram shows publicly, usually about 15. commentsCount gives the total.

Can I get reels from a hashtag or an audio page? Not without a login, so this actor does not offer it. Use account names or reel URLs.

How fast is it? 25 reels with comments usually finish in under half a minute of scraping. Instagram serves the reels tab 12 reels at a time, so very long runs take longer per page than per reel.

What happens if Instagram blocks a request? It is retried on a fresh proxy session, then on residential IPs. Rows that still cannot be read are not charged, and the run log lists them.

Can I run it on a schedule? Yes. Create a task with your accounts and onlyPostsNewerThan, then add a schedule in Apify Console.

Is the data exportable? Yes: JSON, CSV, Excel, XML, RSS or HTML from the Output tab or the API.

Terms and responsible use

The actor collects only publicly available data that Instagram shows to anyone without logging in. You are responsible for how you use it. Respect Instagram's terms, copyright in videos, images and audio, and privacy law such as the GDPR and the CCPA, especially for comment authors. Do not use the data for spam or harassment.

Use it from AI assistants (MCP)

Connect the Apify MCP server (https://mcp.apify.com) to Claude, Cursor or another MCP client and add this actor as a tool. Ask, for example, "Get the last 20 reels of @nasa and tell me which three have the most plays per follower", and the assistant runs it for you.

Changelog

  • 0.1 (October 2026): first release. Reels by account or URL, play counts, durations, music and audio URLs, latest comments, collab and partnership fields, date and pinned filters, per-row pricing.

Support

Something missing or wrong? Open an issue on the Issues tab with the run link. Requests for new fields are welcome and usually ship within days.

New to Apify? Create a free account and run this Actor in under a minute. Some links are affiliate links.