instagram-reels-to-sheets
Pricing
Pay per usage
instagram-reels-to-sheets
Pricing
Pay per usage
Rating
5.0
(1)
Developer

One1 Studio
Actor stats
1
Bookmarked
3
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
๐ Instagram Reels โ Google Sheets
Automatically scrape Instagram Reels from any public account, transcribe the audio with OpenAI Whisper, calculate virality scores, and push everything to Google Sheets โ on autopilot.
No Instagram cookies. No proxies. No API keys to manage. Just enter usernames and run.
โจ What It Does
- Scrapes Reels from any public Instagram accounts you specify
- Extracts engagement data โ likes, comments, follower count, captions, hashtags
- Transcribes audio using OpenAI Whisper (optional)
- Calculates virality scores based on engagement rate + volume
- Sends everything to Google Sheets via a webhook
All fully automated. Schedule it daily or weekly and your spreadsheet stays up to date.
๐ Features
- โก Zero config scraping โ uses Apify's built-in Instagram actor, no cookies or logins needed
- ๐๏ธ Audio transcription โ get the spoken script of every reel via OpenAI Whisper
- ๐ Virality scoring โ automated scoring system ranks reels as Low / Medium / High / Viral
- ๐ Google Sheets integration โ data lands directly in your spreadsheet
- ๐ Schedulable โ set it and forget it with Apify's built-in scheduler
- ๐ฆ Clean dataset output โ browse results directly in Apify with formatted table views
๐ฐ Cost
| Component | Cost |
|---|---|
| Instagram scraping (12 accounts ร 20 reels) | ~$0.31 per run |
| Whisper transcription | ~$0.006/min of audio |
| Google Sheets webhook | Free |
| Total per weekly run | ~$1-2/month |
Requires Apify Starter plan or higher to run the built-in Instagram scraping actor.
๐ฅ Input
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
handles | string[] | No | 10 sample accounts | Instagram usernames to scrape (without @) |
daysBack | integer | No | 7 | Only collect reels posted within this many days |
reelsPerAccount | integer | No | 20 | Max reels to fetch per account. Lower = cheaper |
openaiApiKey | string | No | โ | OpenAI API key for Whisper transcription. Leave empty to skip |
webhookUrl | string | Yes | โ | Google Apps Script web app URL for Sheets integration |
Example Input
{"handles": ["hormozi", "garyvee", "hubaborhidi"],"daysBack": 7,"reelsPerAccount": 20,"openaiApiKey": "sk-...","webhookUrl": "https://script.google.com/macros/s/your-id/exec"}
๐ค Output
Each reel produces a row with the following fields:
| Field | Type | Example |
|---|---|---|
collected_at | datetime | 2026-03-09T00:08:38.661Z |
handle | string | hormozi |
follower_count | integer | 3200000 |
post_url | string | https://www.instagram.com/reel/ABC123/ |
posted_at | datetime | 2026-03-07T14:22:00.000Z |
likes | integer | 45200 |
comments | integer | 1830 |
total_engagements | integer | 47030 |
engagement_rate_pct | number | 1.47 |
caption | string | The #1 skill every entrepreneur needs... |
hashtags | string | #entrepreneur #business |
transcript | string | Here's what nobody tells you about starting a business... |
virality_score | number | 105.6 |
virality_tier | string | High |
Dataset Views
The actor provides two pre-built views in the Apify Console:
- Overview โ Handle, likes, comments, engagement rate, virality score and tier
- Content & Transcripts โ Handle, caption, hashtags, full transcript, tier
Virality Scoring
| Tier | Score Range | What It Means |
|---|---|---|
| ๐ข Viral | 150+ | Exceptional engagement, way above average |
| ๐ต High | 80โ149 | Strong performance, above average |
| ๐ก Medium | 40โ79 | Solid engagement, typical for the niche |
| ๐ด Low | 0โ39 | Below average engagement |
The score is calculated as:
Virality = (Engagement Rate ร 40) + (log10(Total Engagements) ร 10)
This balances relative performance (engagement rate vs followers) with absolute reach (total engagement volume).
๐ง Setup Guide
Step 1: Create Your Google Sheets Webhook
- Create a new Google Sheet with these column headers in Row 1:
Collected At | Handle | Followers | Reel URL | Posted At | Likes | Comments | Total Engagements | Engagement Rate % | Caption | Hashtags | Transcript | Virality Score | Virality Tier
- Go to Extensions โ Apps Script and paste this code:
function doPost(e) {var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();var data = JSON.parse(e.postData.contents);var rows = data.rows || [];for (var i = 0; i < rows.length; i++) {sheet.appendRow(rows[i]);}return ContentService.createTextOutput(JSON.stringify({ status: "ok", rows: rows.length })).setMimeType(ContentService.MimeType.JSON);}
- Click Deploy โ New Deployment โ Web App
- Set Execute as: Me, Who has access: Anyone
- Copy the web app URL โ that's your
webhookUrl
Step 2: Get an OpenAI API Key (Optional)
- Go to platform.openai.com/api-keys
- Create a new key
- Paste it into the
openaiApiKeyinput field
Skip this step if you don't need audio transcription.
Step 3: Run the Actor
- Enter your Instagram handles (without @)
- Paste your webhook URL
- Optionally paste your OpenAI API key
- Click Start
That's it! Your Google Sheet will populate automatically.
๐ Scheduling
To run this automatically every day or week:
- Go to your actor's page on Apify
- Click Schedules โ Create Schedule
- Set the frequency (e.g., every Monday at 9am)
- Save โ your spreadsheet will update itself
๐ How It Works
Your Actorโโโ Phase 1: Scrapingโ โโ โโโ Calls apify/instagram-reel-scraperโ (handles all proxies, sessions, rate limits)โ โโโ Returns reels data (likes, comments, captions, video URLs)โโโ Phase 2: Transcription (if OpenAI key provided)โ โโ โโโ Downloads each reel videoโ โโโ Sends to OpenAI Whisper APIโ โโโ Returns text transcriptโโโ Phase 3: Score + Sendโโโโ Calculates virality score for each reelโโโ Sends rows to Google Sheets via webhookโโโ Saves results to Apify dataset
โ Troubleshooting
| Problem | Solution |
|---|---|
| "Your Apify plan doesn't support running public actors" | Upgrade to the Apify Starter plan ($49/mo). The Creator and Free plans can't call other actors. |
| "Not enough Apify credits" | Add credits to your Apify account. Each run costs ~$0.31. |
| No reels found | Check that the handles are correct and the accounts are public. Try increasing daysBack. |
| Whisper errors | Verify your OpenAI API key is valid and has credits. Videos over 25MB are automatically skipped. |
| Webhook errors | Make sure your Google Apps Script is deployed as a web app with "Anyone" access. Redeploy if needed. |
| Missing transcripts | Some reels may not have a video URL available. The transcript field will be empty for those. |
| Follower count is 0 | The Instagram actor may not return follower data for all accounts. Engagement rate will show as 0 for those. |
๐ Output Files
| Location | What's There |
|---|---|
| Dataset | Every reel as a structured JSON row โ browsable in Apify Console with Overview and Content views |
| Key-Value Store โ RUN_SUMMARY | Quick stats: accounts scraped, total reels, transcribed count, rows sent, run time |
| Google Sheets | Same data in your spreadsheet, ready for charts and analysis |
๐งโ๐ป API Usage
You can trigger this actor programmatically:
const Apify = require('apify');const run = await Apify.call('your-username/instagram-reels-to-sheets', {handles: ['hormozi', 'garyvee'],daysBack: 7,reelsPerAccount: 20,openaiApiKey: 'sk-...',webhookUrl: 'https://script.google.com/macros/s/your-id/exec',});const { items } = await Apify.client.dataset(run.defaultDatasetId).listItems();console.log(items);
Or via REST API:
curl -X POST "https://api.apify.com/v2/acts/your-username~instagram-reels-to-sheets/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"handles": ["hormozi", "garyvee"],"webhookUrl": "https://script.google.com/macros/s/your-id/exec"}'
๐ Changelog
- v1.0.0 โ Initial release
- Instagram Reels scraping via Apify actor
- OpenAI Whisper transcription
- Virality scoring (Low / Medium / High / Viral)
- Google Sheets webhook integration
- Apify dataset output with Overview and Content views
- Run summary in key-value store
๐ License
MIT
๐ Support
- ๐ Bug? Open an issue on the actor's GitHub page
- ๐ฌ Questions? Ask on Apify Discord
- ๐ง Contact: Reach out through Apify's messaging system