# Instagram Reels Metadata Scraper & Reels Downloader🔬 (`scrapearchitect/instagram-reels-metadata-scraper-reels-downloader`) Actor

📥Download Reel videos, audio & thumbnails in HD🔍 Extract DEEP metadata: likes, comments, codecs, bitrates & more! 🗃️ Choose direct links or secure Apify storage. Perfect for marketers 🎯, developers & researchers 🎬 Ultimate Instagram Reels Toolkit! 🔬Instagram Reels Scraper & Reels Downloader🤖

- **URL**: https://apify.com/scrapearchitect/instagram-reels-metadata-scraper-reels-downloader.md
- **Developed by:** [Scrape Architect](https://apify.com/scrapearchitect) (community)
- **Categories:** Social media, Videos, Developer tools
- **Stats:** 12 total users, 0 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

$12.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#rental-actors

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## 📥 Instagram Reels Metadata Scraper & Reels Downloader🔬 🎬 – The Ultimate Professional Metadata Extraction Toolkit

### 🌟 Executive Summary

In the rapidly evolving landscape of social media analytics and content management, access to comprehensive, structured data is paramount. The **Instagram Reels Scraper & Reels Downloader** represents the pinnacle of data extraction technology, offering unprecedented depth and flexibility for analyzing and archiving Instagram Reels content.

This enterprise-grade solution goes far beyond simple video downloading—it provides a complete ontological mapping of every aspect of an Instagram Reel, from surface-level engagement metrics to deep technical media specifications. Engineered for data scientists, marketing analysts, content architects, and developers who require the most granular data available.

> 🚀 **Industry-Leading Data Depth**: Seven distinct metadata categories with over 500 potential data points per Reel  
> 🔍 **Forensic-Level Technical Analysis**: Frame-by-frame video analysis and sample-level audio inspection  
> 📊 **Multi-Source Data Fusion**: Combines data and direct API responses for complete coverage  
> 🗃️ **Intelligent Storage Architecture**: Dual-mode output with direct links or secure Apify Key-Value Store persistence  
> ⚙️ **Precision Control System**: Modular toggle system for optimizing performance and data relevance  
> 📈 **Enterprise-Ready Output**: Pre-configured dataset views for instant business intelligence integration

---

### 🏆 Key Features & Capabilities

##### 🎥 Comprehensive Media Capture System
- **Multi-Format Video Download**: Extract every available video variant (DASH, merged, adaptive streams)
- **Lossless Audio Extraction**: Isolate audio tracks in native quality without transcoding artifacts
- **Complete Thumbnail Suite**: Capture all thumbnail resolutions and aspect ratios
- **Original Quality Preservation**: Maintain source bitrates, codecs, and container formats

### 🔍 Deep Metadata Architecture

##### **Surface Metadata Layer** (Always Available)
- Creator identification (`author_username`, `owner_user_id`)
- Content analytics (`likes`, `comments`, `view_count`)
- Temporal metadata (`upload_date`, `duration`)
- Content description (`description`, `title`)
- Basic media specs (`resolution`, `format`)

##### **Intermediate Metadata Layer** (`additional_metadata: true`)
- Open Graph protocol data (`og:title`, `og:description`, `og:image`)
- Twitter Card metadata (`twitter:card`, `twitter:site`)
- Application linking data (`al:ios:app_store_id`, `al:android:package`)
- Platform identification (`theme-color`, `viewport`, `application-title`)
- Robot directives (`robots`, `google`, `bingbot`, `noarchive`)
- Social graph information (`fb:app_id`, `instapp:owner_user_id`)

##### **Deep Technical Metadata Layers** (With KV Store Enabled)
- **Video Stream Analysis**: Codec profiling, frame-level metadata, bitrate analysis, color space mapping
- **Audio Stream Analysis**: Sample format, channel configuration, compression profiling
- **Container Analysis**: Format validation, stream synchronization, duration precision
- **Image Metadata**: Compression analysis, color profiling, EXIF-equivalent data

### 📊 Intelligent Output Processing

##### **Data Validation & Enrichment**
- Automatic field normalization and standardization
- Cross-validation between metadata sources
- Unit conversion and formatting consistency
- Error handling and quality assurance reporting

##### **Performance Optimization**
- Parallel processing of multiple Reels
- Intelligent caching strategies
- Bandwidth-optimized download sequencing
- Memory-managed large file handling

---

### ⚙️📋 Full Input Specification Schema

```json
{
  "reel_urls": [
    {
      "url": "https://www.instagram.com/reel/DI4N8ZyNaGW/",
      "method": "GET",
    },
    {
      "url": "https://www.instagram.com/reel/Cz9fXb1sLQP/",
      "method": "GET"
    }
  ],
  "use_key_value_store": true,
  "additional_metadata": true,
  "additional_reels_metadata": true,
  "additional_thumbnail_metadata": false,
  "additional_audio_metadata": true,
}
````

### 🔧 Input Parameters Deep Dive

| Parameter | Type | Default | Required | Description | Technical Impact |
| :--- | :--- | :--- | :--- | :--- | :--- |
| **`reel_urls`** | Array\[Object] | - | ✅ | List of Reel URLs with request options | Base processing queue |
| **`use_key_value_store`** | Boolean | `false` | ❌ | Toggle between direct and stored URLs | Enables advanced metadata extraction |
| **`additional_metadata`** | Boolean | `true` | ❌ | Comprehensive post metadata extraction | Adds 60+ metadata fields |
| **`additional_reels_metadata`** | Boolean | `false` | ❌ | video analysis | Requires KV store, adds 50+ technical fields |
| **`additional_audio_metadata`** | Boolean | `false` | ❌ | audio analysis | Requires KV store + audio, adds 30+ fields |
| **`additional_thumbnail_metadata`** | Boolean | `false` | ❌ | image analysis | Requires KV store, adds 20+ technical fields |

### 📊🏗️ Comprehensive Output Structure

```json
{
  // CORE IDENTIFICATION
  "original_url": "https://www.instagram.com/reel/DI4N8ZyNaGW/",
  "shortcode": "DI4N8ZyNaGW",
  "feedback": "Reels video found and metadata extracted.",
  
  // CREATOR INFORMATION
  "author_username": "photoshop",
  "account_owner": "1311592681",
  "owner_user_id": "1311592681",
  "channel_url": "https://www.instagram.com/photoshop/",
  
  // CONTENT METADATA
  "description": "Live from Adobe MAX London: a creative pro workflow...",
  "viewport": "width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=2, viewport-fit=cover",
  "duration": 60.059,
  "upload_date": "April 25, 2025",
  
  // ENGAGEMENT METRICS
  "likes": "1.4K",
  "comments": "27",
  "like_count": 2425,
  "comment_count": 61,
  
  // MEDIA URLs (KV Store Mode)
  "video_url": "https://api.apify.com/v2/.../video_9ee3...5d.mp4",
  "audio_url": "https://api.apify.com/v2/.../audio_bc39...84.m4a",
  "thumbnail_url": "https://api.apify.com/v2/.../thumb_8be3...f0.jpg",
  
  // MEDIA SPECIFICATIONS
  "resolution": "612x764",
  "format": "2 - 612x764",
  "color-scheme": "light",
  "medium": "image",
  
  // FORMAT CATALOGS
  "all_video_formats": [...],  // 5+ format variants
  "all_audio_formats": [...],  // 2+ audio variants
  "all_thumbnails": [...],     // 3+ thumbnail variants
  
  // DEEP METADATA SECTIONS
  "post_metadata": {...},              // 60+ fields when additional_metadata: true
  "video_metadata_main": {...},        // 50+ technical fields
  "audio_metadata_main": {...},        // 30+ technical fields
  "thumbnail_metadata_main": {...},    // 20+ technical fields
  "video_formats_metadata": [...],     // Per-format technical analysis
  "audio_formats_metadata": [...],     // Per-format technical analysis
  "thumbnail_items_metadata": [...]    // Per-thumbnail technical analysis
}
```

### 🔬 Technical Metadata Deep Dive

##### **Post Metadata Example** \[When (`additional_metadata`) ON - 60+ Fields]

```json
{
  "post_metadata": {
    // TECHNICAL IDENTIFIERS
    "username": "Adobe Photoshop",
    "shortcode": "DI4N8ZyNaGW",
    "account_owner": "1311592681",
    "owner_user_id": "1311592681",
    
    // PLATFORM METADATA
    "viewport": "width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=2, viewport-fit=cover",
    "application-title": "Instagram",
    "theme-color": "#ffffff",
    "color-scheme": "light",
    "google": "notranslate",
    "medium": "image",
    
    // OPEN GRAPH PROTOCOL
    "og:type": "article",
    "og:site_name": "Instagram",
    "og:url": "https://www.instagram.com/photoshop/reel/DI4N8ZyNaGW/",
    "og:title": "Adobe Photoshop on Instagram: \"Live from Adobe MAX London...\"",
    "og:description": "1,378 likes, 27 comments - photoshop on April 25, 2025...",
    "og:image": "https://scontent-lga3-3.cdninstagram.com/v/t51.71878-15/503083137_676368641906708_1014457861134201731_n.jpg?stp=cmp1_dst-jpg_e35_s640x640_tt6&_nc_cat=108&ccb=1-7&_nc_sid=18de74&_nc_ohc=_ed0N96eBa8Q7kNvwH9YpnV&_nc_oc=AdnG1Q7j3qRu2DJune_krSlUT0yDI1B6c_wRnoQ47xhvAZcIk552iygNn_6S55E1_g4&_nc_zt=23&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_gid=N3UV8YgXpEIKWBJL677NXQ&oh=00_Afa_0r-dgh3aCFT877sfA8vN0YXuhM2fgtkwFQkykUqUew&oe=68BE6802",
    
    // TWITTER CARD
    "twitter:card": "summary_large_image",
    "twitter:site": "@instagram",
    "twitter:title": "Adobe Photoshop (@photoshop) • Instagram reel",
    "twitter:image": "https://scontent-lga3-3.cdninstagram.com/v/t51.71878-15/503083137_676368641906708_1014457861134201731_n.jpg?stp=cmp1_dst-jpg_e35_s640x640_tt6&_nc_cat=108&ccb=1-7&_nc_sid=18de74&_nc_ohc=_ed0N96eBa8Q7kNvwH9YpnV&_nc_oc=AdnG1Q7j3qRu2DJune_krSlUT0yDI1B6c_wRnoQ47xhvAZcIk552iygNn_6S55E1_g4&_nc_zt=23&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_gid=N3UV8YgXpEIKWBJL677NXQ&oh=00_Afa_0r-dgh3aCFT877sfA8vN0YXuhM2fgtkwFQkykUqUew&oe=68BE6802",
    "twitter:maxage": "86400",
    
    // APPLICATION LINKS
    "al:ios:app_name": "Instagram",
    "al:ios:app_store_id": "389801252",
    "al:ios:url": "instagram://media?id=3618703626051363222",
    "al:android:app_name": "Instagram",
    "al:android:package": "com.instagram.android",
    "al:android:url": "https://www.instagram.com/reel/DI4N8ZyNaGW/",
    
    // SECURITY & PRIVACY
    "robots": "noarchive, noimageindex",
    "bingbot": "noarchive",
    "fb:app_id": "124024574287414",
    "instapp:owner_user_id": "1311592681",
    
    // CONTENT METRICS
    "like_count": 2425,
    "comment_count": 61,
    "likes": 1378,
    "comments": 27,
    
    // MEDIA SPECIFICATIONS
    "image_url": "https://scontent-lga3-3.cdninstagram.com/v/t51.71878-15/503083137_676368641906708_1014457861134201731_n.jpg?stp=cmp1_dst-jpg_e35_s640x640_tt6&_nc_cat=108&ccb=1-7&_nc_sid=18de74&_nc_ohc=_ed0N96eBa8Q7kNvwH9YpnV&_nc_oc=AdnG1Q7j3qRu2DJune_krSlUT0yDI1B6c_wRnoQ47xhvAZcIk552iygNn_6S55E1_g4&_nc_zt=23&_nc_ht=scontent-lga3-3.cdninstagram.com&_nc_gid=N3UV8YgXpEIKWBJL677NXQ&oh=00_Afa_0r-dgh3aCFT877sfA8vN0YXuhM2fgtkwFQkykUqUew&oe=68BE6802",
    "thumbnail_url": "https://scontent-atl3-3.cdninstagram.com/v/t51.2885-15/503083137_676368641906708_1014457861134201731_n.jpg?stp=dst-jpg_e15_tt6&efg=eyJ2ZW5jb2RlX3RhZyI6ImltYWdlX3VybGdlbi42MTJ4NzY0LnNkci5mNzE4NzguZGVmYXVsdF9jb3Zlcl9mcmFtZS5jMiJ9&_nc_ht=scontent-atl3-3.cdninstagram.com&_nc_cat=108&_nc_oc=Q6cZ2QGXGLQeFgLXAtvcfgFFmMnASq-GXbuGOQLvGza4g9eiyEtRckmQQ-fe2lA4qvDp5vQDgoilvrmk-CTTNZlLVTNb&_nc_ohc=WModLZpfcUcQ7kNvwEEj_EK&_nc_gid=tMyx3Ot9tqgPuZtTHgieIQ&edm=ANTKIIoBAAAA&ccb=7-5&oh=00_AfZW1HwGKMeR9KmvwiJnxAwf89HwhHoEBKM0M40emJRgBg&oe=68BE3FA3&_nc_sid=d885a2",
    "height": 764,
    "width": 612,
    "ext": "mp4",
    "duration": 60.059,
    "resolution": "612x764",
    "format": "2 - 612x764",
    
    // CONTENT TEXT
    "raw_title": "Video by photoshop",
    "description": "Live from Adobe MAX London: a creative pro workflow in action. From Photoshop edits and Firefly-powered visuals to blend mode precision and seamless color correction. This demo brings serious design power to your fingertips. ⚡🎨.",
    
    // MOBILE INTEGRATION
    "mobile-web-app-capable": "yes",
    "apple-mobile-web-app-status-bar-style": "default"
  }
}
```

##### **Video Stream Analysis Example** \[When (`additional_reels_metadata`) ON]

```json
    "video_metadata_main": {
      "url": "https://api.apify.com/v2/key-value-stores/6314e8Zh4rXjb.......",
      "metadata": {
        "streams": [
          {
            "index": 0,
            "codec_name": "h264",
            "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
            "profile": "Main",
            "codec_type": "video",
            "codec_tag_string": "avc1",
            "codec_tag": "0x31637661",
            "width": 360,
            "height": 640,
            "coded_width": 360,
            "coded_height": 640,
            "closed_captions": 0,
            "film_grain": 0,
            "has_b_frames": 2,
            "pix_fmt": "yuv420p",
            "level": 30,
            "color_range": "tv",
            "color_space": "bt709",
            "color_transfer": "bt709",
            "color_primaries": "bt709",
            "chroma_location": "left",
            "field_order": "progressive",
            "refs": 1,
            "is_avc": "true",
            "nal_length_size": "4",
            "id": "0x1",
            "r_frame_rate": "2997/125",
            "avg_frame_rate": "2997/125",
            "time_base": "1/11988",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 720000,
            "duration": "60.060060",
            "bit_rate": "204187",
            "bits_per_raw_sample": "8",
            "nb_frames": "1440",
            "extradata_size": 45,
            "disposition": {
              "default": 1,
              "dub": 0,
              "original": 0,
              "comment": 0,
              "lyrics": 0,
              "karaoke": 0,
              "forced": 0,
              "hearing_impaired": 0,
              "visual_impaired": 0,
              "clean_effects": 0,
              "attached_pic": 0,
              "timed_thumbnails": 0,
              "captions": 0,
              "descriptions": 0,
              "metadata": 0,
              "dependent": 0,
              "still_image": 0
            },
            "tags": {
              "language": "und",
              "handler_name": "VideoHandler",
              "vendor_id": "[0][0][0][0]",
              "encoder": "AVC Coding"
            }
          },
          {
            "index": 1,
            "codec_name": "aac",
            "codec_long_name": "AAC (Advanced Audio Coding)",
            "profile": "HE-AAC",
            "codec_type": "audio",
            "codec_tag_string": "mp4a",
            "codec_tag": "0x6134706d",
            "sample_fmt": "fltp",
            "sample_rate": "48000",
            "channels": 2,
            "channel_layout": "stereo",
            "bits_per_sample": 0,
            "id": "0x2",
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/48000",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 2888642,
            "duration": "60.180042",
            "bit_rate": "62061",
            "nb_frames": "1411",
            "extradata_size": 4,
            "disposition": {
              "default": 1,
              "dub": 0,
              "original": 0,
              "comment": 0,
              "lyrics": 0,
              "karaoke": 0,
              "forced": 0,
              "hearing_impaired": 0,
              "visual_impaired": 0,
              "clean_effects": 0,
              "attached_pic": 0,
              "timed_thumbnails": 0,
              "captions": 0,
              "descriptions": 0,
              "metadata": 0,
              "dependent": 0,
              "still_image": 0
            },
            "tags": {
              "language": "und",
              "handler_name": "SoundHandler",
              "vendor_id": "[0][0][0][0]"
            }
          }
        ],
        "format": {
          "filename": "temp_4d548202-2398-429c-84e3-acdff1f960a0.mp4",
          "nb_streams": 2,
          "nb_programs": 0,
          "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
          "format_long_name": "QuickTime / MOV",
          "start_time": "0.000000",
          "duration": "60.181000",
          "size": "2036041",
          "bit_rate": "270655",
          "probe_score": 100,
          "tags": {
            "major_brand": "isom",
            "minor_version": "512",
            "compatible_brands": "isomiso2avc1mp41"
          }
        }
      }
    }
```

##### **Audio Metadata Example** \[When (`additional_audio_metadata`) ON]

```json
    "audio_metadata_main": {
      "url": "https://api.apify.com/v2/key-value-stores/6314e8Zh4rXj.......",
      "metadata": {
        "streams": [
          {
            "index": 0,
            "codec_name": "aac",
            "codec_long_name": "AAC (Advanced Audio Coding)",
            "profile": "HE-AAC",
            "codec_type": "audio",
            "codec_tag_string": "mp4a",
            "codec_tag": "0x6134706d",
            "sample_fmt": "fltp",
            "sample_rate": "48000",
            "channels": 2,
            "channel_layout": "stereo",
            "bits_per_sample": 0,
            "id": "0x1",
            "r_frame_rate": "0/0",
            "avg_frame_rate": "0/0",
            "time_base": "1/48000",
            "start_pts": -5058,
            "start_time": "-0.105375",
            "duration_ts": 2883584,
            "duration": "60.074667",
            "bit_rate": "2307",
            "extradata_size": 4,
            "disposition": {
              "default": 1,
              "dub": 0,
              "original": 0,
              "comment": 0,
              "lyrics": 0,
              "karaoke": 0,
              "forced": 0,
              "hearing_impaired": 0,
              "visual_impaired": 0,
              "clean_effects": 0,
              "attached_pic": 0,
              "timed_thumbnails": 0,
              "captions": 0,
              "descriptions": 0,
              "metadata": 0,
              "dependent": 0,
              "still_image": 0
            },
            "tags": {
              "creation_time": "2025-04-28T22:07:12.000000Z",
              "language": "und",
              "handler_name": "SoundHandler",
              "vendor_id": "[0][0][0][0]"
            }
          }
        ],
        "format": {
          "filename": "temp_4bab0be4-3f12-4852-bf8d-b5ac0f1d7ca0.m4a",
          "nb_streams": 1,
          "nb_programs": 0,
          "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
          "format_long_name": "QuickTime / MOV",
          "start_time": "-0.105375",
          "duration": "60.074667",
          "size": "619810",
          "bit_rate": "82538",
          "probe_score": 100,
          "tags": {
            "major_brand": "mp41",
            "minor_version": "0",
            "compatible_brands": "iso8isommp41dashcmfc",
            "creation_time": "2025-04-28T22:07:12.000000Z"
          }
        }
      }
    }
```

##### **Thumbnail Metadata Example** \[When (`additional_thumbnail_metadata`) ON]

```json
    "thumbnail_metadata_main": {
      "url": "https://api.apify.com/v2/key-value-stores/631...........",
      "metadata": {
        "streams": [
          {
            "index": 0,
            "codec_name": "mjpeg",
            "codec_long_name": "Motion JPEG",
            "profile": "Progressive",
            "codec_type": "video",
            "codec_tag_string": "[0][0][0][0]",
            "codec_tag": "0x0000",
            "width": 612,
            "height": 764,
            "coded_width": 612,
            "coded_height": 764,
            "closed_captions": 0,
            "film_grain": 0,
            "has_b_frames": 0,
            "sample_aspect_ratio": "1:1",
            "display_aspect_ratio": "153:191",
            "pix_fmt": "yuvj420p",
            "level": -99,
            "color_range": "pc",
            "color_space": "bt470bg",
            "chroma_location": "center",
            "refs": 1,
            "r_frame_rate": "25/1",
            "avg_frame_rate": "25/1",
            "time_base": "1/25",
            "start_pts": 0,
            "start_time": "0.000000",
            "duration_ts": 1,
            "duration": "0.040000",
            "bits_per_raw_sample": "8",
            "disposition": {
              "default": 0,
              "dub": 0,
              "original": 0,
              "comment": 0,
              "lyrics": 0,
              "karaoke": 0,
              "forced": 0,
              "hearing_impaired": 0,
              "visual_impaired": 0,
              "clean_effects": 0,
              "attached_pic": 0,
              "timed_thumbnails": 0,
              "captions": 0,
              "descriptions": 0,
              "metadata": 0,
              "dependent": 0,
              "still_image": 0
            }
          }
        ],
        "format": {
          "filename": "temp_69e9acf6-4157-4e71-a470-61acbe64d731.jpg",
          "nb_streams": 1,
          "nb_programs": 0,
          "format_name": "image2",
          "format_long_name": "image2 sequence",
          "start_time": "0.000000",
          "duration": "0.040000",
          "size": "51778",
          "bit_rate": "10355600",
          "probe_score": 50
        }
      }
    }
```

***

### 🎯 Enterprise Use Cases & Applications

##### 📊 Business Intelligence & Analytics

- **Competitive Analysis**: Track competitor content performance and production quality
- **Content Strategy Optimization**: Identify high-performing formats and topics
- **Influencer Marketing Analytics**: Vet creators based on actual content quality and engagement
- **Trend Forecasting**: Analyze emerging content patterns and format innovations

##### 🎨 Content Production & Management

- **Quality Assurance**: Verify technical specifications meet platform requirements
- **Content Repurposing**: Extract assets for cross-platform content strategies
- **Archival & Compliance**: Maintain comprehensive records for regulatory requirements
- **Asset Management**: Catalog media with complete technical metadata

##### 🔬 Research & Development

- **Algorithm Training**: Provide structured data for machine learning models
- **Platform Research**: Study Instagram's encoding practices and quality variations
- **User Behavior Analysis**: Correlate technical quality with engagement metrics
- **Format Evolution Tracking**: Monitor changes in Instagram's media delivery over time

##### 🤖 Technical Integration

- **CMS Integration**: Feed structured content into content management systems
- **Workflow Automation**: Trigger processes based on content characteristics
- **Quality Monitoring**: Automatically flag content that doesn't meet technical standards
- **Data Warehousing**: Populate analytics platforms with social media performance data

***

### 🛡️ Compliance & Ethical Usage

##### 📜 Usage Guidelines

- **Public Content Only**: This tool is designed for public Instagram Reels only
- **Rate Limiting Compliance**: Built-in delays respect platform guidelines
- **Data Minimization**: Only extracts data necessary for the requested analysis
- **Transparency**: Clear documentation of what data is collected and how it's used

##### 🔒 Privacy Protection

- **No Authentication Required**: Operates without requiring Instagram credentials
- **Selective Data Collection**: Only extracts publicly available information
- **Secure Storage**: Apify Key-Value Store provides enterprise-grade security
- **Data Retention Control**: Users control how long data is stored

##### ⚖️ Legal Considerations

- **Terms of Service Compliance**: Designed to operate within Instagram's terms
- **Copyright Respect**: intended for legitimate analysis and fair use applications
- **GDPR Compliance**: Provides tools for data subject request compliance
- **Ethical Scraping**: Incorporates best practices for respectful data collection

***

### 🚀 Performance & Scalability

##### ⚡ Optimization Features

- **Parallel Processing**: Simultaneous processing of multiple Reels
- **Intelligent Caching**: Redundant request minimization
- **Bandwidth Management**: Optimized download sequencing
- **Memory Efficiency**: Stream-based processing of large media files
- **Error Resilience**: Automatic retry and recovery systems

##### 📈 Scaling Capabilities

- **Small Scale**: 1-10 Reels - Immediate processing, minimal resources
- **Medium Scale**: 10-100 Reels - Parallel processing, moderate resources
- **Large Scale**: 100-1000 Reels - Batch processing, significant resources
- **Enterprise Scale**: 1000+ Reels - Distributed processing, custom configuration

##### 🛠️ Resource Requirements

| Scale | Processing Time |
| :--- | :--- |
| **Small (1-10)** | 1-5 minutes |
| **Medium (10-100)** | 5-30 minutes |
| **Large (100-1000)** | 30-120 minutes |
| **Enterprise (1000+)** | Custom configuration |

***

### 🆘 Troubleshooting & Support

##### 🔍 Common Issues & Solutions

| Issue | Possible Cause | Solution |
| :--- | :--- | :--- |
| **No metadata extracted** | Instagram layout change | Rerun after 1 minute for 99% accuracy |

##### 📞 Support Channels

- **Documentation**: Comprehensive usage guides and examples
- **Community Forum**: Peer support and knowledge sharing
- **Email Support**: <scrapearchitect@gmail.com>
- **Priority Support**: Available for enterprise customers

##### 🚨 Error Handling Framework

- **Automatic Retries**: Configurable retry logic for transient errors
- **Graceful Degradation**: Partial data return when full extraction fails
- **Detailed Logging**: Comprehensive error reporting for debugging
- **Quality Metrics**: Success rate tracking and performance monitoring

***

### 📈 Version History & Changelog

##### 🔄 Version 1.0 (Current)

- **Initial Release**: Complete Instagram Reels extraction capability
- **Core Features**: Basic metadata, media download, Apify KV Store integration
- **Advanced Features**: Integration for technical metadata
- **Performance**: Optimized for small to big batch processing

# Actor input Schema

## `reel_urls` (type: `array`):

A list of public Instagram Reels URLs to process.

## `use_key_value_store` (type: `boolean`):

Download video, audio, and thumbnails to the key-value store. When enabled, media URLs in outputs are replaced with Apify Key-Value Store URLs. Required to extract additional media metadata.

## `additional_metadata` (type: `boolean`):

Include combined post-level metadata (yt-dlp + BeautifulSoup) in the 'post\_metadata' field.

## `additional_reels_metadata` (type: `boolean`):

If the key-value store is enabled, extract advanced video metadata (ffprobe) from the stored Reel video.

## `additional_thumbnail_metadata` (type: `boolean`):

If the key-value store is enabled, extract advanced thumbnail metadata (ffprobe) from the stored thumbnail.

## `additional_audio_metadata` (type: `boolean`):

If the key-value store is enabled and audio is available, extract advanced audio metadata (ffprobe) from the stored audio.

## Actor input object example

```json
{
  "reel_urls": [
    {
      "url": "https://www.instagram.com/reel/DI4N8ZyNaGW/"
    },
    {
      "url": "https://www.instagram.com/reel/DIwULw2RynT/"
    }
  ],
  "use_key_value_store": false,
  "additional_metadata": true,
  "additional_reels_metadata": false,
  "additional_thumbnail_metadata": false,
  "additional_audio_metadata": false
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "reel_urls": [
        {
            "url": "https://www.instagram.com/reel/DI4N8ZyNaGW/"
        },
        {
            "url": "https://www.instagram.com/reel/DIwULw2RynT/"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapearchitect/instagram-reels-metadata-scraper-reels-downloader").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "reel_urls": [
        { "url": "https://www.instagram.com/reel/DI4N8ZyNaGW/" },
        { "url": "https://www.instagram.com/reel/DIwULw2RynT/" },
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scrapearchitect/instagram-reels-metadata-scraper-reels-downloader").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "reel_urls": [
    {
      "url": "https://www.instagram.com/reel/DI4N8ZyNaGW/"
    },
    {
      "url": "https://www.instagram.com/reel/DIwULw2RynT/"
    }
  ]
}' |
apify call scrapearchitect/instagram-reels-metadata-scraper-reels-downloader --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapearchitect/instagram-reels-metadata-scraper-reels-downloader",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Instagram Reels Metadata Scraper & Reels Downloader🔬",
        "description": "📥Download Reel videos, audio & thumbnails in HD🔍 Extract DEEP metadata: likes, comments, codecs, bitrates & more! 🗃️ Choose direct links or secure Apify storage. Perfect for marketers 🎯, developers & researchers 🎬 Ultimate Instagram Reels Toolkit! 🔬Instagram Reels Scraper & Reels Downloader🤖",
        "version": "1.0",
        "x-build-id": "RhrGWdWiezpPmt0t0"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/scrapearchitect~instagram-reels-metadata-scraper-reels-downloader/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-scrapearchitect-instagram-reels-metadata-scraper-reels-downloader",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/scrapearchitect~instagram-reels-metadata-scraper-reels-downloader/runs": {
            "post": {
                "operationId": "runs-sync-scrapearchitect-instagram-reels-metadata-scraper-reels-downloader",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/scrapearchitect~instagram-reels-metadata-scraper-reels-downloader/run-sync": {
            "post": {
                "operationId": "run-sync-scrapearchitect-instagram-reels-metadata-scraper-reels-downloader",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "reel_urls"
                ],
                "properties": {
                    "reel_urls": {
                        "title": "Instagram Reels URLs",
                        "type": "array",
                        "description": "A list of public Instagram Reels URLs to process.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "url": {
                                    "title": "Reel URL",
                                    "description": "The full URL of the public Instagram Reel.",
                                    "type": "string",
                                    "pattern": "^https://(?:www\\.)?instagram\\.com/(?:[a-zA-Z0-9_.]+/)?reels?/[a-zA-Z0-9_-]+/?(?:\\?[^\\s]*)?$"
                                }
                            },
                            "required": [
                                "url"
                            ]
                        }
                    },
                    "use_key_value_store": {
                        "title": "Use Key-Value Store",
                        "type": "boolean",
                        "description": "Download video, audio, and thumbnails to the key-value store. When enabled, media URLs in outputs are replaced with Apify Key-Value Store URLs. Required to extract additional media metadata.",
                        "default": false
                    },
                    "additional_metadata": {
                        "title": "Additional Reel Post Metadata",
                        "type": "boolean",
                        "description": "Include combined post-level metadata (yt-dlp + BeautifulSoup) in the 'post_metadata' field.",
                        "default": true
                    },
                    "additional_reels_metadata": {
                        "title": "Additional Reel Video Metadata (KV required)",
                        "type": "boolean",
                        "description": "If the key-value store is enabled, extract advanced video metadata (ffprobe) from the stored Reel video.",
                        "default": false
                    },
                    "additional_thumbnail_metadata": {
                        "title": "Additional Thumbnail Metadata (KV required)",
                        "type": "boolean",
                        "description": "If the key-value store is enabled, extract advanced thumbnail metadata (ffprobe) from the stored thumbnail.",
                        "default": false
                    },
                    "additional_audio_metadata": {
                        "title": "Additional Audio Metadata (KV required)",
                        "type": "boolean",
                        "description": "If the key-value store is enabled and audio is available, extract advanced audio metadata (ffprobe) from the stored audio.",
                        "default": false
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
