instagram-reels-to-sheets avatar

instagram-reels-to-sheets

Under maintenance

Pricing

Pay per usage

Go to Apify Store
instagram-reels-to-sheets

instagram-reels-to-sheets

Under maintenance

Pricing

Pay per usage

Rating

5.0

(1)

Developer

One1 Studio

One1 Studio

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

1

Monthly active users

3 days ago

Last modified

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

  1. Scrapes Reels from any public Instagram accounts you specify
  2. Extracts engagement data โ€” likes, comments, follower count, captions, hashtags
  3. Transcribes audio using OpenAI Whisper (optional)
  4. Calculates virality scores based on engagement rate + volume
  5. 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

ComponentCost
Instagram scraping (12 accounts ร— 20 reels)~$0.31 per run
Whisper transcription~$0.006/min of audio
Google Sheets webhookFree
Total per weekly run~$1-2/month

Requires Apify Starter plan or higher to run the built-in Instagram scraping actor.


๐Ÿ“ฅ Input

FieldTypeRequiredDefaultDescription
handlesstring[]No10 sample accountsInstagram usernames to scrape (without @)
daysBackintegerNo7Only collect reels posted within this many days
reelsPerAccountintegerNo20Max reels to fetch per account. Lower = cheaper
openaiApiKeystringNoโ€”OpenAI API key for Whisper transcription. Leave empty to skip
webhookUrlstringYesโ€”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:

FieldTypeExample
collected_atdatetime2026-03-09T00:08:38.661Z
handlestringhormozi
follower_countinteger3200000
post_urlstringhttps://www.instagram.com/reel/ABC123/
posted_atdatetime2026-03-07T14:22:00.000Z
likesinteger45200
commentsinteger1830
total_engagementsinteger47030
engagement_rate_pctnumber1.47
captionstringThe #1 skill every entrepreneur needs...
hashtagsstring#entrepreneur #business
transcriptstringHere's what nobody tells you about starting a business...
virality_scorenumber105.6
virality_tierstringHigh

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

TierScore RangeWhat It Means
๐ŸŸข Viral150+Exceptional engagement, way above average
๐Ÿ”ต High80โ€“149Strong performance, above average
๐ŸŸก Medium40โ€“79Solid engagement, typical for the niche
๐Ÿ”ด Low0โ€“39Below 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

  1. 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
  1. 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);
}
  1. Click Deploy โ†’ New Deployment โ†’ Web App
  2. Set Execute as: Me, Who has access: Anyone
  3. Copy the web app URL โ€” that's your webhookUrl

Step 2: Get an OpenAI API Key (Optional)

  1. Go to platform.openai.com/api-keys
  2. Create a new key
  3. Paste it into the openaiApiKey input field

Skip this step if you don't need audio transcription.

Step 3: Run the Actor

  1. Enter your Instagram handles (without @)
  2. Paste your webhook URL
  3. Optionally paste your OpenAI API key
  4. Click Start

That's it! Your Google Sheet will populate automatically.


๐Ÿ“… Scheduling

To run this automatically every day or week:

  1. Go to your actor's page on Apify
  2. Click Schedules โ†’ Create Schedule
  3. Set the frequency (e.g., every Monday at 9am)
  4. 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

ProblemSolution
"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 foundCheck that the handles are correct and the accounts are public. Try increasing daysBack.
Whisper errorsVerify your OpenAI API key is valid and has credits. Videos over 25MB are automatically skipped.
Webhook errorsMake sure your Google Apps Script is deployed as a web app with "Anyone" access. Redeploy if needed.
Missing transcriptsSome reels may not have a video URL available. The transcript field will be empty for those.
Follower count is 0The Instagram actor may not return follower data for all accounts. Engagement rate will show as 0 for those.

๐Ÿ“ Output Files

LocationWhat's There
DatasetEvery reel as a structured JSON row โ€” browsable in Apify Console with Overview and Content views
Key-Value Store โ†’ RUN_SUMMARYQuick stats: accounts scraped, total reels, transcribed count, rows sent, run time
Google SheetsSame 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