Instagram Reels & Video Scraper — Profiles & Post URLs
Under maintenancePricing
from $0.80 / 1,000 instagram videos
Instagram Reels & Video Scraper — Profiles & Post URLs
Under maintenanceCollect public Instagram Reels and video posts from bounded profile feeds or direct URLs with available captions, engagement counts, owner data, thumbnails, and temporary video links. No Instagram credential input.
Pricing
from $0.80 / 1,000 instagram videos
Rating
0.0
(0)
Developer
Coor Yu
Maintained by CommunityActor stats
1
Bookmarked
6
Total users
1
Monthly active users
11 days ago
Last modified
Categories
Share
Instagram Reels & Video Scraper collects public profile and direct-post videos with available captions, hashtags, views/plays, likes, comment totals, dates, owners, thumbnails and temporary media links for creator research.
Public Web GraphQL requests run within a resource-blocked Chromium session. No Instagram credential input is required. Egress is direct by default, with an optional Apify datacenter proxy; no residential group is requested. Apify API runs still require an Apify token and incur costs.
Supported modes
- Profile Reels/video feed: provide a username or public profile URL. The Actor requests Reels with feed-video inclusion and uses a public timeline fallback if that query fails. This is a bounded video feed, not a complete account archive.
- Direct Reel or video post: provide
/reel/,/reels/,/p/, or/tv/URLs. Image-only direct posts produce no video rows. - Video carousels: detail responses can produce one row per video slide. Photo slides are excluded.
The output is metadata and optional temporary media URLs; the Actor does not store durable MP4 copies or scrape comment text.
Quick start
Start with a small profile sample:
{"profileUrls": ["https://www.instagram.com/instagram/"],"resultsPerProfile": 3,"includeVideoUrls": false}
For direct-post collection, use videoUrls instead of or alongside profileUrls. Save your input as input.json to call the authenticated Apify endpoint:
curl -X POST \'https://api.apify.com/v2/acts/funny_ground~instagram-video-scraper/run-sync-get-dataset-items' \-H "Authorization: Bearer $APIFY_TOKEN" \-H 'Content-Type: application/json' \--data-binary @input.json
This starts a billable run. Examples are illustrative, not verified live responses.
Input fields
| Field | Default | Behavior and range |
|---|---|---|
profileUrls | [] | Up to 50 public profile URLs, @usernames, or bare usernames. Use the profile root URL, not a /reels/ profile-tab URL. |
videoUrls | [] | Up to 100 direct Reel/post/TV URLs. |
resultsPerProfile | 20 | Maximum discovered video/post candidates per profile; 1–200. Not a global row bound. |
includeVideoUrls | true | For profile candidates, request full details including available caption, time, duration and CDN video URLs. false skips this profile-detail hydration. |
useDatacenterProxy | false | Request Apify's default datacenter proxy routing; availability and proxy costs depend on your account. |
proxyCountryCode | "" | Optional two-letter proxy country code; used only with the datacenter proxy. |
requestDelayMs | 350 | Minimum request-start spacing; 100–5000 ms. |
maxRequestRetries | 2 | Temporary-block/server-error retries; 0–4. |
requestTimeoutSecs | 45 | Per-request timeout; 15–120 seconds. |
Direct URLs always request details, even with includeVideoUrls: false. Missing playback/duration can trigger extra embed requests in either profile mode; disabling hydration does not guarantee one request per 12 results or no media URLs in output.
Profile pagination requests pages of up to 12 candidates and is bounded by min(100, ceil(resultsPerProfile / 12) + 10) pages per collection attempt. It also stops when the feed ends or a cursor repeats. Expanded carousel candidates can create more saved rows than resultsPerProfile.
Developer Free-plan preview: 50 saved rows globally, including carousel slides. Profile candidate limits and each input array are capped at 50. Paid plans remove this developer cap, not other bounds. FREE-tier events still cost money.
Output and interpretation
Each saved row represents a returned video record; detail-mode carousels can create separate slide rows. Available fields include:
videoId,shortcode, canonicalurl,mediaType,productType;caption, extractedhashtags, source Unix-secondstimestamp, ISOpublishedAt, anddurationSeconds;playCount,viewCount,likeCount,commentCount;thumbnailUrl,videoUrl,videoVersions,width,height,hasAudio, and availablemusic;ownerId,ownerUsername,ownerFullName,ownerVerified,ownerProfilePicUrl,ownerProfileUrl;- available
location,coauthors,parentPostId, one-basedcarouselIndex; - collection
position,sourceType,sourceInput,detailStatus, andscrapedAt.
Missing values can be null. detailStatus (full, list, unavailable) describes the path, not completeness. Failed profile details may yield list-data fallback; carousel rows can inherit parent caption/counters/owner values, not measured slide engagement.
Metrics are unverified source snapshots. playCount and viewCount can fall back to each other, not necessarily distinct metrics. Missing playback values are allowed. Embed enrichment is best effort for an unambiguous single row, not multi-slide rows.
videoUrl and versions are signed temporary CDN links, not permanent downloads. They may expire or be withheld; store media separately only where permitted.
Deduplication and current pricing
The configured billing unit is apify-default-dataset-item, one saved video row. Output keys use videoId, or shortcode plus carousel index when no ID is present, to avoid repeated records within a run. The first saved occurrence supplies attribution; overlapping sources are not merged. A carousel with several returned video slides can incur several result events.
| Apify plan | Per saved video event | Per 1,000 events |
|---|---|---|
| FREE | $0.0045 | $4.50 |
| BRONZE | $0.0009 | $0.90 |
| SILVER, GOLD, PLATINUM, DIAMOND | $0.0008 | $0.80 |
The apify-actor-start event costs $0.0005 per GB of allocated memory, minimum one event per run. The running user separately pays Apify compute, transfer, storage, and any enabled proxy usage. Startup/platform costs can apply even when no result is saved. No downstream Actor, third-party scraping API or separate per-request event is configured.
See the Pricing tab for effective prices. The result-budget check limits result events; it is not an all-inclusive cap on platform costs or a promise of complete output.
Reliability and FAQs
Does a public profile guarantee results without login? No. The Actor needs no user-supplied Instagram credential, but anonymous endpoints can return challenges, rate limits, or login walls. Retries may create a fresh context, not bypass access controls.
Can I export every video from a profile? No completeness guarantee. The profile candidate maximum is 200, with finite page bounds and possible feed restrictions. A later listing failure may restart via the timeline fallback rather than preserve every earlier discovered candidate.
What happens when no videos are available? A full run with zero emitted valid records is marked FAILED. Private profiles, deleted posts, image-only inputs, restricted content, and anonymous-access failures can produce no rows. Other inputs may still save results in a mixed-success run; inspect the dataset and logs.
Use public data in accordance with Instagram's terms, privacy/data-protection law, copyright, and applicable access rules. Stories, private accounts and login-only content are outside this Actor's documented scope.
Complementary Actors
- Instagram Comments Scraper — public comments and selected replies rather than video metadata.
- Social Creator Videos Scraper — bounded creator-video collection across supported platforms.
- Social Video Profile Resolver — public video-to-creator profile resolution.