Instagram Analyzer
v1.0.0Analyze Instagram profiles and posts with detailed engagement metrics, view tracking, follower ratios, and Reels-focused analytics with JSON/CSV export.
Security Scan
OpenClaw
Suspicious
medium confidencePurpose & Capability
The name, SKILL.md, and the Python script are coherent: they implement browser-based scraping (Playwright) to analyze Instagram posts/profiles. However, the registry metadata advertised no required binaries or env vars while SKILL.md lists python3, chromium, and Playwright, and the config file contains instagram username/password fields. That metadata mismatch is unexpected and should be clarified.
Instruction Scope
Runtime instructions limit activity to browser simulation of Instagram pages, local scraping, and writing structured JSON/CSV outputs into data/ directories. The SKILL.md does ask users to place Instagram credentials in a .env for metrics that require login; otherwise the instructions do not attempt arbitrary file reads or external network reporting beyond visiting Instagram pages.
Install Mechanism
There is no install spec in the registry (instruction-only), and the included requirements.txt references standard packages (playwright, beautifulsoup4, lxml, requests). No downloads from suspicious URLs or archive extraction were observed. Note: installing Playwright will download browser binaries (normal for Playwright), so users should run that step from an environment they trust.
Credentials
The skill implicitly needs Instagram credentials to retrieve some metrics (SKILL.md and config/analyzer_config.json reference username/password and .env), but the registry lists no required env vars or primary credential. Requesting or storing Instagram credentials is proportionate to the feature set, but the lack of declared credential requirements in metadata is an incoherence and a potential risk: the skill will ask for secrets without that being obvious in the registry. Also the script writes scraped data and potentially credentials to local data files; users should understand where sensitive data is stored.
Persistence & Privilege
The skill is not always-enabled and does not request elevated system-wide privileges. It writes outputs under data/ (data/profiles, data/posts, data/output), which is reasonable for the stated purpose. Autonomous invocation is allowed (platform default) but not combined here with any other high-risk flags.
What to consider before installing
This skill appears to implement an Instagram scraper using Playwright and stores results under data/*. However: (1) the registry metadata does not declare the runtime binaries and credentials the SKILL.md and config expect — confirm you will need python3, Playwright, and Chromium and be prepared to run `playwright install chromium`. (2) Some metrics require Instagram login; the config and README mention using a .env for credentials. Only provide real Instagram credentials if you trust the code and its origin — consider using a throwaway/test account. (3) The script writes scraped data and possibly credentials to local files (data/). Inspect the full script locally (note: the provided script in the package was truncated in the review sample) to ensure there are no hidden network endpoints or exfiltration steps before running. (4) Running scrapers can violate Instagram's terms of service and may trigger rate limits or blocks; use rate-limiting settings and consider isolation (container/VM) when testing. If you plan to install, ask the publisher to fix the metadata to list required binaries and to explicitly document how credentials are used and stored.Like a lobster shell, security has layers — review code before you run it.
latest
Instagram Analyzer
A comprehensive Instagram profile and post analysis tool with engagement metrics, view tracking, and Reels-focused analytics.
---
name: instagram-analyzer
description: Analyze Instagram profiles and posts with engagement metrics, view counts, follower ratios, and Reels analytics.
emoji: 📊
version: 1.0.0
author: Sencer
tags:
- instagram
- analytics
- engagement
- reels
- influencer
metadata:
clawdbot:
requires:
bins:
- python3
- chromium
pip:
- playwright
- beautifulsoup4
- lxml
config:
stateDirs:
- data/output
- data/profiles
- data/posts
outputFormats:
- json
- csv
---
🎯 Features
📊 Single Post Analysis
- ✅ Like count
- ✅ Comment count
- ✅ Save count
- ✅ View count (Reels)
- ✅ Follower count
- ✅ View-to-Follower ratio (%)
- ✅ Time posted (hours/days ago)
👤 Profile Analysis
- ✅ Minimum 60 posts analyzed
- ✅ Reels-focused analytics
- ✅ All Reels links extraction
- ✅ Engagement rate calculations
- ✅ JSON/CSV export
🔧 Technical
- 🌐 Browser simulation with Playwright
- 🛡️ Stealth mode (human behavior)
- 📁 Structured JSON/CSV output
- ⚡ Batch processing support
🚀 Usage
Profile Analysis (Default: Reels Only! 🎯)
# Full profile analysis - REELS FOCUS (default behavior)
analyze-profile "username"
# With custom post count
analyze-profile "username" --posts 60
# All posts (including regular posts)
analyze-profile "username" --include-posts
Single Post Analysis
# Analyze a Reel/post URL
analyze-post "https://www.instagram.com/reel/ABC123xyz/"
# With JSON output
analyze-post "https://www.instagram.com/reel/ABC123xyz/" --output json
📊 Output Examples
Single Post Response
{
"post_type": "reel",
"url": "https://www.instagram.com/reel/ABC123xyz/",
"username": "example_user",
"metrics": {
"views": 125000,
"likes": 8542,
"comments": 312,
"saves": 892,
"followers": 125000,
"shares": 156
},
"ratios": {
"view_to_follower_percent": 100.0,
"like_to_view_percent": 6.83,
"comment_to_view_percent": 0.25,
"save_to_view_percent": 0.71
},
"timing": {
"posted_at": "2026-02-11T14:30:00",
"time_ago": "6 hours ago",
"age_hours": 6
}
}
Profile Analysis Response
{
"profile": {
"username": "example_user",
"full_name": "Example User",
"followers": 125000,
"following": 1500,
"posts_count": 450,
"is_verified": false
},
"analysis_summary": {
"total_posts_analyzed": 60,
"reels_analyzed": 45,
"analysis_mode": "reels_only",
"total_views": 5420000,
"average_views": 120444,
"average_engagement_rate": 8.2,
"top_reels": [...],
"reels_links": [
"https://www.instagram.com/reel/ABC123/",
"https://www.instagram.com/reel/DEF456/",
...
]
},
"engagement_breakdown": {
"avg_likes": 8542,
"avg_comments": 312,
"avg_saves": 892,
"engagement_rate": 7.8
}
}
📈 Engagement Metrics Explained
| Metric | Formula | Interpretation |
|---|---|---|
| View Rate | (Views / Followers) × 100 | How many followers actually watched |
| Engagement Rate | ((Likes + Comments + Saves) / Views) × 100 | Overall audience interaction |
| Like Rate | (Likes / Views) × 100 | Content appreciation |
| Save Rate | (Saves / Views) × 100 | Content value indicator |
⚙️ Configuration
Edit config/analyzer_config.json:
{
"scraper": {
"headless": false,
"min_followers": 1000,
"posts_to_analyze": 60,
"scroll_pause": 2,
"timeout": 30000
},
"browser": {
"stealth_mode": true,
"human_behavior": true,
"user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X)"
},
"output": {
"default_format": "json",
"save_reels_links": true,
"export_csv": true
}
}
📁 File Outputs
- Profile data:
data/profiles/{username}.json - Post analysis:
data/posts/{post_id}.json - Batch results:
data/output/batch_{timestamp}.json - Reels links:
data/output/{username}_reels.txt
🔧 Troubleshooting
Login Required
- Some metrics require login (view count, saves)
- Configure Instagram credentials in
.env
Rate Limiting
- Increase
scroll_pausein config - Reduce batch size
- Use multiple accounts
Missing Data
- Check if account is private
- Verify post exists and is accessible
- Instagram may hide some metrics
📝 Requirements
- Python 3.8+
- Playwright
- Chromium browser
- BeautifulSoup4
- lxml parser
Comments
Loading comments...
