The Mine Works
← All posts
tutorial October 8, 2026 · 7 min read Updated October 8, 2026

Export a Creator's Instagram Reels With Play Counts to a Spreadsheet

Export one creator's reels with plays, likes, comments, length and audio to a CSV, then compute median plays to vet them, with Instagram Reel Scraper.

Try the scraper

The actor referenced in this article. Pay only for results delivered.

View the scraper →

Before you pay a creator for a reel, you want to know what a typical reel of theirs does, not what their best one did. The profile shows a follower count and a grid of play counts, with pinned hits on top and collabs from other accounts mixed in. Copying 60 play counts, likes and comment counts into a sheet by hand and then working out a median takes most of an hour per creator, and a shortlist has twenty.

Try it live: Instagram Reel Scraper: Views, Captions, Audio, No Login. Pay per result delivered. Failed and empty results are never charged.

The Instagram Reel Scraper reads a creator’s Reels tab without a login and returns one row per reel. Export those rows to a CSV and the numbers you need for vetting are a few formulas away.

What you get and who it is for

FieldWhat it tells you about the creator
videoPlayCountPlays per reel, the basis for the median
likesCount, commentsCountEngagement per reel, for likes per 1,000 plays
videoDurationLength in seconds, to see what format they make
timestampExact publish time, for posting frequency
musicInfoOriginal audio or a licensed song, with songTitle, artistName and isTrending
ownerUsername, coauthorProducersWhether the reel is theirs or a collab posted by someone else
isPaidPartnershipHow much of their feed is already sponsored
countsHiddenTrue when the creator hid like and view counts

It is for influencer marketing managers vetting creators before a campaign, agencies building shortlists for clients, and brand teams checking a quoted rate against what the creator’s reels actually do.

The input

{
  "usernames": ["selenagomez"],
  "maxReelsPerProfile": 60,
  "skipPinned": true
}
  • usernames accepts a username, an @handle or a profile link. To vet a shortlist, list every creator in one run; inputUrl on each row tells you which profile it came from.
  • maxReelsPerProfile sets the sample size, from 10 to 300. Sixty reels gives a median that one outlier cannot move much.
  • skipPinned is on by default. Pinned reels are the ones a creator chose to show first, whatever their age. Leaving them out keeps the sample to the latest reels in date order, which is what a median of recent performance needs.
  • newerThan is left out on purpose here, so the sample is a fixed number of reels. Set it to 6 months if you would rather sample by date.

What the output looks like

[
  {
    "inputUrl": "selenagomez",
    "shortCode": "DdFg4unI3vP",
    "url": "https://www.instagram.com/reel/DdFg4unI3vP/",
    "videoPlayCount": 24839442,
    "likesCount": 705773,
    "commentsCount": 6926,
    "videoDuration": 54.5,
    "timestamp": "2026-09-10T00:09:34.000Z",
    "ownerUsername": "selenagomez",
    "coauthorProducers": [],
    "musicInfo": { "audioType": "licensed_music", "songTitle": "Rock Around the Clock", "artistName": "Bill Haley and His Comets", "isTrending": true },
    "isPaidPartnership": false
  },
  {
    "inputUrl": "selenagomez",
    "shortCode": "DP4ubWGEo64",
    "videoPlayCount": 6773549,
    "likesCount": 110763,
    "commentsCount": 971,
    "videoDuration": 14.11,
    "timestamp": "2025-10-16T22:10:52.000Z",
    "ownerUsername": "nba",
    "coauthorProducers": ["selenagomez"],
    "musicInfo": { "audioType": "original_sounds", "songTitle": "Original audio", "artistName": "nba" }
  }
]

These rows are from our run on October 5, 2026, which asked for 10 reels each from natgeo and selenagomez. The 10 reels from Selena Gomez’s tab ran from July 29, 2025 to September 10, 2026, so they cover about 14 months of posting. One of them was a collab posted by @nba with her as coauthor. It had 6,773,549 plays, under a quarter of the 30,607,200 median across the nine reels she posted herself, which is why the script below keeps collabs out of the median. Six of her nine reels used licensed songs; on two of them musicInfo came back with isMuted true and no song title, because Instagram had pulled the track.

Run it in Apify Console

  1. Open https://apify.com/themineworks/instagram-reel-scraper and click Try for free.
  2. In Instagram profiles, delete the prefilled natgeo and nasa and enter the creator’s username.
  3. Set Max reels per profile to 60. Leave Only reels newer than empty, Skip pinned reels on, and Proxy as it is.
  4. Click Start and watch the Output tab fill.
  5. Click Export, pick CSV or Excel, and open the file in Google Sheets or Excel. A =MEDIAN() over the videoPlayCount column gives the headline number.

Run it from Python

Install the client with pip install apify-client. This script writes a flat CSV, one row per reel, and prints the vetting numbers for the reels the creator posted.

import csv
from statistics import median

from apify_client import ApifyClient

CREATOR = "selenagomez"

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("themineworks/instagram-reel-scraper").call(run_input={
    "usernames": [CREATOR],
    "maxReelsPerProfile": 60,
    "skipPinned": True,
})

rows = []
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    if item.get("_type") == "info":
        continue  # the run summary row, never billed
    music = item.get("musicInfo") or {}
    plays = item.get("videoPlayCount")
    likes = item.get("likesCount")
    rows.append({
        "posted": item["timestamp"][:10],
        "url": item["url"],
        "owner": item["ownerUsername"],
        "collab": item["ownerUsername"] != CREATOR,
        "plays": plays,
        "likes": likes,
        "comments": item.get("commentsCount"),
        "likes_per_1k_plays": round(likes / plays * 1000, 1) if plays and likes is not None else None,
        "seconds": item.get("videoDuration"),
        "audio_type": music.get("audioType", ""),
        "song": music.get("songTitle", ""),
        "artist": music.get("artistName", ""),
        "trending": music.get("isTrending", ""),
        "paid": item.get("isPaidPartnership", False),
        "counts_hidden": item.get("countsHidden", False),
    })

if not rows:
    raise SystemExit("No reels returned. The run's OUTPUT record says why.")

with open(f"{CREATOR}_reels.csv", "w", newline="", encoding="utf-8") as f:
    writer = csv.DictWriter(f, fieldnames=list(rows[0]))
    writer.writeheader()
    writer.writerows(rows)

own = [r for r in rows if not r["collab"] and not r["counts_hidden"]
       and r["plays"] and r["likes_per_1k_plays"] is not None]
if not own:
    raise SystemExit("No reels with visible counts posted by the creator.")

mid = median(r["plays"] for r in own)
print(f"{len(rows)} reels exported, {len(own)} posted by {CREATOR} with visible counts")
print(f"median plays: {mid:,.0f}")
print(f"median likes per 1,000 plays: {median(r['likes_per_1k_plays'] for r in own)}")
print(f"median length: {median(r['seconds'] for r in own)} seconds")
print(f"reels under half the median: {sum(r['plays'] < mid / 2 for r in own)}")
print(f"posted between {own[-1]['posted']} and {own[0]['posted']}")

Fed the ten rows from our October 5 sample, the same logic gives a median of 30,607,200 plays, 39.1 likes per 1,000 plays and a median length of 51.01 seconds across the nine reels Selena Gomez posted herself, with none under half the median. A creator whose reels swing between a few hits and many quiet posts shows up at once in that last count.

Re-check your shortlist every month

Creators change pace, so a vetting sheet from March says little in October. In Apify Console, save the input with your whole shortlist in Instagram profiles as a task, open Schedules, create a schedule with the cron expression 0 7 1 * * (07:00 on the first of each month) and add the task. The actor has no “only new” option; for a vetting sample you want the latest 60 reels every time anyway.

Once a creator is signed, switch to the Reel links field (reelUrls): paste the links of the reels they deliver and schedule a daily run to watch plays grow. Apify’s Google Sheets integration can send each run to a sheet, and Make, Zapier, n8n or a webhook can pass the results to Slack or your own system.

What it costs

The price is $1.69 per 1,000 reels on the Bronze plan, $1.39 on Silver, and $0.99 on Gold, Platinum and Diamond, plus a flat $0.005 run start fee per run.

One creator at 60 reels costs about $0.10 on Bronze plus the $0.005 start fee. A shortlist of 20 creators at 60 reels each, in one run, is 1,200 reels: about $2.03 on Bronze, $1.67 on Silver and $1.19 on Gold, plus a single $0.005 start fee. Private accounts and usernames that do not exist are never charged.

Limits worth knowing

  • Up to 300 reels per creator per run, newest first. Instagram serves the Reels tab 12 reels at a time.
  • This actor does not return follower counts. For those, use the Instagram Profile Scraper and join on the username. For a creator’s reach away from Instagram, their Pinterest followers and pins read much the same way.
  • You get comment counts, not comment text.
  • For a reel given as a link in reelUrls, the play count is looked up among the owner’s 96 newest reels. An older linked reel comes back with every other field but no videoPlayCount.
  • Private accounts return nothing. They are listed with a status in the run’s OUTPUT record and not charged.
Related Actor

Explore the scraper referenced in this article: inputs, outputs, and pricing, then run it on Apify.

Frequently asked questions

Is videoPlayCount the same number Instagram shows? +

Yes. It is the play count Instagram shows on the creator's Reels tab at the moment of the run, and the row's scrapedAt says when that was.

How many reels can I export for one creator? +

Up to 300 per run, newest first. A creator with fewer reels returns what they have, and you pay only for the reels delivered.

Why use the median instead of the average? +

One viral reel can pull the average far above what a typical reel does. The median is the middle reel of the sample, so it is a fairer number to hold a creator's rate against.

Can I export the comments on each reel? +

No. The actor returns the comment count for each reel, not the comment text.

Apify Store

Find a ready-made scraper for your job

Apify has over 80,000 scrapers and automations, ours included. Start free with $5 of platform credit every month.