Instagram Reels Scraper avatar
Instagram Reels Scraper

Pricing

$14.00/month + usage

Go to Store
Instagram Reels Scraper

Instagram Reels Scraper

Developed by

Hpix

Hpix

Maintained by Community

Scrape Instagram Reels and their respective profile efficiently.

0.0 (0)

Pricing

$14.00/month + usage

8

Total users

149

Monthly users

27

Runs succeeded

>99%

Issue response

14 days

Last modified

3 months ago

ℹ️ About

An efficient and straightforward Actor for scraping Instagram posts, profiles and Reels, designed with performance in mind.

✨ Features

  • Retrieve profile stats such as followers, bio, username, and links.
  • Scrape reels, including likes, play counts, comments, captions, and music metadata.
  • Choose the number of reels to scrape per profile.
  • Scrape thousands of profiles and posts seamlessly.

⚙️ Inputs

  • tags: A list of Instagram usernames to scrape.
  • reels_count: Define the target number of reels to scrape per profile.
  • target: Choose to scrape profiles only, posts only or both.
  • post_urls: Scrape Instagram posts (or reels) using their URL or code.
  • include_raw_data: Include raw data collected from Instagram in the final results.

Example:

This input will scrape zuck's profile, 8 of the latest reels from his feed, and one post with the code DFNkPgRROOS:

{
"tags": [
"zuck"
],
"target": "all",
"reels_count": 8,
"post_urls": [
"https://www.instagram.com/p/DFNkPgRROOS"
],
"include_raw_data": true,
"custom_functions": "{ shouldSkip: (data) => false, shouldContinue: (data) => true }"
}

Custom functions

This is an advanced parameter which you can use to modify the crawler's behaviour. With custom functions, you can skip a post or profile based on its data, or stop crawling a profile's reels when a certain condition is met.

For example, you can skip posts if they don't have music metadata:

{
shouldSkip: (data) => data.kind == 'post' && !data.music_metadata
}

Or stop crawling when it reaches the shortcode of a post:

{
shouldContinue: (data) => data.code != 'codeToStopCrawling'
}

The data argument is the same of an item on the final dataset (see Outputs).

📄 Outputs

Profile

{
"kind": "profile",
"input": "zuck",
"id": "314216",
"is_private": false,
"username": "zuck",
"full_name": "Mark Zuckerberg",
"biography": "",
"bio_links": [],
"followers": 15534658,
"following": 610,
"profile_pic": "https://scontent-lga3-1.cdninstagram.com/...",
"raw_data": {...}
}

Reel

{
"kind": "post",
"id": "3548364142010150900_314216",
"code": "DE-UmMaP6_0",
"post_type": "clips",
"owner_id": "314216",
"taken_at": 1737218208,
"caption": "Send it",
"play_count": 4456434,
"comment_count": 7776,
"like_count": 134906,
"has_privately_liked": false,
"thumbnail_url": "https://instagram.fagc3-2.fna.fbcdn.net/...",
"duration": 19.945,
"video_versions": [
{
"height": 852,
"type": 101,
"url": "https://scontent-iad3-1.cdninstagram.com/...",
"width": 480
},
{
"height": 852,
"type": 103,
"url": "https://scontent-iad3-1.cdninstagram.com/...",
"width": 480
},
{
"height": 852,
"type": 102,
"url": "https://scontent-iad3-1.cdninstagram.com/...",
"width": 480
}
],
"raw_data": {...}
}

Post

{
"kind": "post",
"input": "DFNkPgRROOS",
"id": "3552655076181205906",
"code": "DFNkPgRROOS",
"post_type": "post",
"owner_id": "314216",
"taken_at": 1737730421,
"caption": "Grateful to train with you @marcelogarciajiujitsu. Good luck and have fun vs Imanari today!",
"like_count": 249896,
"comment_count": 4627,
"thumbnail_url": "https://scontent-lga3-2.cdninstagram.com/...",
"raw_data": {..}
}

📃 Changelog

Do you have a feature suggestion? Create an issue and let me know!

v0.2

  • [✨ New feature] Scrape Reels and posts by their URL or code
  • [✨ New feature] A new input was added (include_raw_data) to include or omit the raw data extracted from Instagram
  • [✨ New feature] You can now use custom JS functions to skip posts and profiles, or stop crawling at a specific reel
  • [✨ New feature] Profile URLs are now accepted as the input
  • [🏎️ Performance] The crawler will now gain pace quickly
  • [🔧 Fix] Minor improvements to logging

v0.1

  • Initial release

❓ FAQ

Can I export the scraped data to Excel?

Sure! Apify allows you to download the results as an Excel spreadsheet. You can also download in CSV, JSON, XML, HTML, JSONL and RSS.

I just found a bug! Can you fix it?

Oh, what a shame! Please create an Issue so I can evaluate what happened.

Can you implement X feature?

Of course! You can use the Issues tab to suggest new features.

⚠️ Disclaimer

This Actor scrapes public data from Instagram pages. Features are susceptible to changes made by Meta.

⛓️‍💥 Known issues

  • Currently, it is not possible to scrape private or age restricted accounts, since those are not public.

👀 See also