App en Python + Streamlit para trabajar con datos públicos de Instagram (sin login).
python -m venv .venv
# Windows PowerShell
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
streamlit run app.pyNueva página en Streamlit: IG Public Analyzer (menú lateral).
- Consulta el endpoint no oficial:
https://i.instagram.com/api/v1/users/web_profile_info/?username=<username> - Normaliza perfil y posts recientes (hasta N).
- Aplica caché local en
.ig_cache/por username (JSON, sin dependencias extra). - Exporta a CSV/JSON y permite generar un snapshot descargable.
- Abre la página
IG Public Analyzer. - Pega un
@usernameo una URL del perfil (https://instagram.com/<user>). - Pulsa Analizar.
- Revisa perfil, tabla de posts, KPI de ER estimado y gráficos.
- Descarga
perfil.csv,posts.csv,perfil.json,posts.json,summary.jsono el snapshot.
Ejemplo:
python examples/run_ig_cli.py --username @notjustanalytics --max-posts 24 --out out/Genera en out/:
perfil.csv(1 fila)posts.csv(N filas)perfil.json,posts.jsonsummary.jsonreport_ig_<username>_<fecha>.json(snapshot)
Si no existe .env, la app usa defaults.
IG_USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124 Safari/537.36"
IG_MAX_POSTS=24
IG_CACHE_TTL_HOURS=6
IG_REQUEST_DELAY_SEC=2.5Opcional:
IG_TIMEZONE(por defectoEurope/Madrid) para el heatmap de día/hora.
- Solo datos públicos: no incluye métricas privadas (reach/impresiones/saves).
- Es un endpoint no oficial: puede romperse si Instagram cambia su web o aplica bloqueos (403/429).
- El rate limiting básico se controla con
IG_REQUEST_DELAY_SECy un candado por username.