Skip to content

Gudynya/instaloader_scripts

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📸 Descargador de Instagram - Suite Completa

Una colección de scripts especializados en Python para descargar contenido de Instagram de manera segura y eficiente. Cada script está optimizado para diferentes casos de uso.

🌟 Scripts Disponibles

Script Nivel Descripción Mejor para
🍪 browser_session_downloader.py RECOMENDADO Usa cookies del navegador Perfiles privados, máxima seguridad
📚 browser_stories_downloader.py NUEVO Stories con cookies del navegador Stories de usuarios específicos
🛡️ instagram_downloader_safe.py Intermedio Descargas con pausas largas Evitar bloqueos de Instagram
📱 instagram_downloader.py Avanzado Script completo con todas las opciones Usuarios experimentados
🔧 instagram_fixed.py Robusto Manejo avanzado de errores Problemas de conectividad
🚀 simple_downloader.py Principiante Script básico sin configuraciones Primeras pruebas
minimal_downloader.py Básico Configuración ultra-simple Testing rápido

🎯 Método RECOMENDADO: Browser Session Downloader

✨ Características principales

  • 🍪 Autenticación con cookies: Usa las cookies de tu navegador (más seguro)
  • 🔓 Acceso a perfiles privados: Si sigues al usuario en Instagram
  • 🚫 Sin contraseñas: No necesitas escribir tu contraseña en ningún lado
  • 🛡️ Detección mínima: Instagram detecta menos este método
  • 📊 Diagnósticos detallados: Información completa de progreso y errores

🚀 Instalación

Prerrequisitos

  • Python 3.7 o superior
  • pip (gestor de paquetes de Python)

Pasos de instalación

  1. Clona o descarga este repositorio

    git clone <url-del-repositorio>
    cd instaloader
  2. Instala las dependencias

    pip install -r requirements.txt

📖 Cómo obtener cookies de Instagram

🍪 Método 1: Developer Tools (Chrome/Edge/Firefox)

  1. Abre Instagram en tu navegador y haz login
  2. Presiona F12 o clic derecho → "Inspeccionar elemento"
  3. Ve a la pestaña Network (Red)
  4. Recarga la página (F5)
  5. Busca alguna petición a instagram.com
  6. En la sección Request Headers busca la línea Cookie:
  7. Copia todas las cookies

🍪 Método 2: Extensión EditThisCookie

  1. Instala EditThisCookie en Chrome
  2. Ve a Instagram y haz login
  3. Haz clic en el ícono de la extensión
  4. Clic en "Export" → "JSON"
  5. Copia el JSON generado

🍪 Método 3: Exportar manualmente las cookies importantes

Solo necesitas estas cookies esenciales:

  • sessionid - La más importante para autenticación
  • ds_user_id - ID de tu usuario
  • csrftoken - Token de seguridad

🚀 USO PRINCIPAL - Browser Session Downloader

📋 Sintaxis

# Formato básico
python browser_session_downloader.py <username> <cookies.json>

# Con límite de posts  
python browser_session_downloader.py <username> <cookies.json> <número_posts>

# Desde JSON directo (string)
python browser_session_downloader.py <username> '[{"name":"sessionid"...}]'

📊 Ejemplos prácticos

# 1. Descargar todos los posts usando archivo de cookies
python browser_session_downloader.py natgeo instagram_cookies.json

# 2. Descargar solo 100 posts de un perfil privado
python browser_session_downloader.py amigo_privado cookies.json 100

# 3. Descargar 50 posts con límite
python browser_session_downloader.py usuario_objetivo cookies.json 50

# 4. Crear archivo de ejemplo de cookies
python browser_session_downloader.py --ejemplo

🎯 Casos de uso recomendados

  • Perfiles privados que sigues
  • Cuentas grandes (millones de posts) con límite
  • Máxima discreción para evitar detección
  • Sin riesgo de contraseña expuesta

📚 NUEVO: Browser Stories Downloader - Para Stories específicamente

✨ Características especiales para Stories

  • 📚 Especializado en Stories: Optimizado exclusivamente para stories (duran 24h)
  • 👥 Múltiples usuarios: Descarga stories de varios usuarios de una vez
  • 🍪 Autenticación con cookies: Mismo sistema seguro que el descargador principal
  • 🔄 Auto-organización: Cada usuario en su propia carpeta
  • Consciente del tiempo: Alerta si no hay stories disponibles

📋 Sintaxis

# Stories de usuarios específicos
python browser_stories_downloader.py user1,user2,user3 cookies.json

# Stories de TODOS los usuarios que sigues
python browser_stories_downloader.py --siguiendo cookies.json

# Crear archivo de ejemplo de cookies
python browser_stories_downloader.py --ejemplo

📊 Ejemplos prácticos

# 1. Stories de usuarios específicos (separados por comas)
python browser_stories_downloader.py natgeo,cristiano,nike instagram_cookies.json

# 2. Stories de todos los usuarios que sigues
python browser_stories_downloader.py --siguiendo instagram_cookies.json

# 3. Solo un usuario específico
python browser_stories_downloader.py mi_amigo instagram_cookies.json

🎯 Casos de uso ideales

  • Stories de amigos cercanos antes de que expiren
  • Stories de marcas/celebridades que sigues
  • Descarga masiva de todos los stories disponibles
  • Backup temporal de stories importantes

📁 Estructura de archivos para stories

instagram_stories/
├── natgeo_stories/
│   ├── 2025-01-17_story1.jpg
│   ├── 2025-01-17_story1.json
│   └── 2025-01-17_story2.mp4
├── cristiano_stories/
│   ├── 2025-01-17_story1.jpg
│   └── 2025-01-17_story2.jpg
└── siguiendo_stories/
    ├── usuario1_stories/
    ├── usuario2_stories/
    └── ...

⚠️ Limitaciones de Stories

  • 🕐 24 horas: Los stories desaparecen automáticamente
  • 🔐 Requieren autenticación: Casi siempre necesitan cookies válidas
  • 👥 Visibilidad limitada: Solo stories que tienes permiso de ver
  • 📱 Privacidad: Respeta las configuraciones de privacidad de cada usuario

📋 GUÍA DE SCRIPTS ALTERNATIVOS

🛡️ Instagram Downloader Safe - Para evitar bloqueos

Características:

  • ⏰ Pausas largas entre descargas (10-60 segundos)
  • 🐌 Muy lento pero muy seguro
  • 🔐 Soporte para autenticación usuario/contraseña
  • ✅ Ideal para cuentas públicas grandes
# Solo posts públicos (MUY lento)
python instagram_downloader_safe.py natgeo

# Con autenticación (ULTRA lento) 
python instagram_downloader_safe.py usuario_privado tu_usuario tu_contraseña

📱 Instagram Downloader - Script completo avanzado

Características:

  • 🎯 Todas las opciones: posts, stories, highlights, tagged
  • 📁 Organización automática en carpetas
  • 📊 Logging detallado
  • ⚙️ Múltiples parámetros configurables
# Uso básico
python instagram_downloader.py nombre_usuario

# Con autenticación y opciones completas
python instagram_downloader.py nombre_usuario -u tu_usuario -p tu_contraseña --stories --highlights --tagged -f mi_carpeta

Parámetros disponibles:

Parámetro Descripción Ejemplo
profile Requerido. Nombre del perfil de Instagram natgeo
-u, --username Tu usuario de Instagram para autenticación -u mi_usuario
-p, --password Tu contraseña de Instagram -p mi_contraseña
-f, --folder Carpeta donde guardar las descargas -f descargas
--stories Descargar stories actuales --stories
--highlights Descargar highlights --highlights
--tagged Descargar posts donde está etiquetado --tagged

🔧 Instagram Fixed - Para problemas de conectividad

Características:

  • 🛠️ Inicialización robusta de Instaloader
  • 🔄 Múltiples reintentos automáticos
  • ⚡ Manejo avanzado de errores de red
  • 🎯 Soluciona errores de NoneType y conexión
python instagram_fixed.py natgeo

🚀 Simple Downloader - Para principiantes

Características:

  • 📝 Código simple y fácil de entender
  • ⚡ Sin configuraciones complejas
  • 📱 Solo perfiles públicos
  • 🎯 Ideal para primeras pruebas
python simple_downloader.py natgeo

Minimal Downloader - Testing básico

Características:

  • 🔬 Configuración ultra-básica
  • 🎯 Máximo 10 posts (modo prueba)
  • ⚡ Pausas cortas (3 segundos)
  • 🧪 Para testing y desarrollo
python minimal_downloader.py usuario_test

📁 Estructura de archivos descargados

🍪 Browser Session Downloader

username_browser_session/
├── 2025-09-03_15-00-08_UTC.jpg      # Imagen del post
├── 2025-09-03_15-00-08_UTC.json     # Metadatos (likes, comentarios, descripción)
├── 2025-09-03_15-00-08_UTC.txt      # Descripción en texto plano
└── 2025-09-03_15-00-08_UTC.mp4      # Video (si aplica)

📱 Instagram Downloader (script completo)

descargas/
└── usuario_20231201_143022/
    ├── posts/
    │   └── usuario/
    │       ├── 2023-12-01_12-34-56_UTC.jpg
    │       ├── 2023-12-01_12-34-56_UTC.json
    │       └── 2023-12-01_12-34-56_UTC.mp4
    ├── stories/
    │   └── usuario/
    │       └── story_2023-12-01.jpg
    ├── highlights/
    │   └── usuario/
    │       └── highlight_vacation.jpg
    └── tagged/
        └── usuario_tagged/
            └── tagged_post.jpg

🚀 Scripts simples

username/
├── 2023-12-01_12-34-56_UTC.jpg
├── 2023-12-01_12-34-56_UTC.json  
└── 2023-12-01_12-34-56_UTC.mp4

🎯 ¿Qué script usar? - Guía de decisión

🔥 Casos más comunes

Situación Script recomendado ¿Por qué?
Perfil privado que sigues 🍪 browser_session_downloader.py Más seguro, sin contraseñas
Solo Stories específicos 📚 browser_stories_downloader.py Especializado en stories, múltiples usuarios
Perfil público grande 🛡️ instagram_downloader_safe.py Pausas largas evitan bloqueos
Primera vez usando 🚀 simple_downloader.py Fácil de entender
Quiero TODO (stories, highlights) 📱 instagram_downloader.py Script más completo
Errores de conexión 🔧 instagram_fixed.py Manejo robusto de errores
Solo testing/prueba minimal_downloader.py Rápido, máximo 10 posts

🏆 Ranking por seguridad (menos a más detección)

  1. 🥇 Browser Session - Cookies del navegador
  2. 🥈 Safe Mode - Pausas muy largas
  3. 🥉 Fixed - Reintentos moderados
  4. 🏅 Complete - Múltiples requests
  5. ⚠️ Simple/Minimal - Sin pausas largas

🔐 Autenticación

¿Cuándo necesitas autenticarte?

  • Para descargar perfiles privados
  • Para descargar stories
  • Para descargar highlights
  • Para acceder a contenido completo sin limitaciones

⚠️ Consideraciones de seguridad

  • NUNCA compartas tus credenciales
  • Usa una cuenta secundaria si es posible
  • Instagram puede detectar uso automatizado y limitar temporalmente tu cuenta
  • El script incluye pausas para minimizar este riesgo

🚨 Limitaciones y advertencias

  1. Términos de servicio: Este script debe usarse respetando los términos de servicio de Instagram
  2. Uso ético: Solo descarga contenido que tengas derecho a descargar
  3. Rate limiting: Instagram puede limitar las descargas si detecta actividad automatizada excesiva
  4. Perfiles privados: Requieren autenticación y que sigas la cuenta
  5. Stories: Solo se pueden descargar las stories actuales (24h)

💡 EJEMPLOS PRÁCTICOS POR ESCENARIOS

🎯 Escenario 1: Quiero descargar un perfil privado

Problema: Necesitas acceder a contenido privado de forma segura

# SOLUCIÓN: Usa cookies del navegador 
python browser_session_downloader.py amigo_privado instagram_cookies.json 200

🎯 Escenario 2: Perfil público con millones de posts

Problema: Cuenta muy grande (ej: @natgeo con 30K+ posts)

# SOLUCIÓN: Safe mode con pausas largas o límite
python browser_session_downloader.py natgeo instagram_cookies.json 500
# o
python instagram_downloader_safe.py natgeo

🎯 Escenario 3: Primera vez, solo quiero probar

Problema: No sabes si funciona, quieres algo simple

# SOLUCIÓN: Script simple con perfil público
python simple_downloader.py natgeo

🎯 Escenario 4: Solo quiero stories específicos

Problema: Necesitas descargar stories antes de que expiren (24h)

# SOLUCIÓN: Script especializado para stories
python browser_stories_downloader.py natgeo,cristiano,nike instagram_cookies.json
# o todos los stories de quienes sigues
python browser_stories_downloader.py --siguiendo instagram_cookies.json

🎯 Escenario 5: Quiero TODO (stories, highlights, tagged)

Problema: Necesitas contenido completo de un perfil

# SOLUCIÓN: Script completo con autenticación
python instagram_downloader.py usuario -u tu_usuario -p tu_contraseña --stories --highlights --tagged

🎯 Escenario 6: Tengo problemas de conexión/errores

Problema: El script se rompe, errores de red

# SOLUCIÓN: Script robusto con reintentos
python instagram_fixed.py problema_usuario

🎮 GUÍA PASO A PASO - Browser Session (RECOMENDADO)

📋 Paso 1: Obtener cookies

  1. Ve a Instagram en Chrome/Firefox
  2. Haz login normalmente
  3. Presiona F12 → pestaña ApplicationCookieshttps://www.instagram.com
  4. Copia las cookies importantes: sessionid, ds_user_id, csrftoken

📋 Paso 2: Crear archivo JSON

# Crear plantilla automáticamente
python browser_session_downloader.py --ejemplo

📋 Paso 3: Editar cookies

Abre cookies_ejemplo.json y reemplaza TU_SESSION_ID_AQUI con tus valores reales

📋 Paso 4: ¡Descargar!

python browser_session_downloader.py objetivo cookies_ejemplo.json

🚨 SOLUCIÓN DE PROBLEMAS

🍪 Problemas con cookies

"Se requiere login" / "LoginRequiredException"

# CAUSA: Cookies expiradas o inválidas
# SOLUCIÓN: Obtener cookies frescas
  1. Cierra Instagram en el navegador
  2. Abre Instagram y haz login de nuevo
  3. Extrae las cookies nuevamente
  4. Intenta de nuevo

"403 Forbidden" / "ConnectionException"

# CAUSA: Instagram detectó el bot
# SOLUCIÓN: Cambiar estrategia
  1. Espera 2-4 horas antes de reintentar
  2. Usa un navegador diferente para las cookies
  3. Cambia al script instagram_downloader_safe.py (más lento)

"Cookies esenciales faltantes"

# CAUSA: JSON de cookies incompleto  
# SOLUCIÓN: Verificar cookies importantes

Asegúrate de tener: sessionid, ds_user_id, csrftoken

🛡️ Errores generales

"Profile not exists"

  • ✅ Verifica que el nombre de usuario sea correcto (sin @)
  • ✅ El perfil podría estar desactivado o cambiado de nombre

"TooManyRequestsException"

  • ✅ Instagram te está limitando temporalmente
  • ✅ Espera 30-60 minutos antes de reintentar
  • ✅ Usa scripts con pausas más largas (*_safe.py)

"Challenge required"

  • ✅ Instagram requiere verificación (captcha/SMS)
  • ✅ Inicia sesión manualmente en el navegador
  • ✅ Espera 24 horas e intenta de nuevo

Scripts se cierran o cuelgan

  • ✅ Usa instagram_fixed.py para problemas de conectividad
  • ✅ Revisa los archivos .log para más detalles
  • ✅ Reinicia tu conexión a internet

Optimización de velocidad vs seguridad

Problema Script más rápido Script más seguro
Cuenta grande minimal_downloader.py instagram_downloader_safe.py
Perfil privado browser_session_downloader.py browser_session_downloader.py
Primera vez simple_downloader.py instagram_downloader_safe.py
Errores frecuentes instagram_fixed.py instagram_fixed.py

🔧 Tips de rendimiento

  • 🎯 Usa límites: No descargues todos los posts si no los necesitas
  • 🍪 Browser session es el más eficiente para perfiles privados
  • Safe mode para cuentas grandes (>10K posts)
  • 🔄 Fixed mode para conexiones inestables

📊 COMPARATIVA DETALLADA DE MÉTODOS

Característica 🍪 Browser Session 📚 Stories Browser 🛡️ Safe Mode 📱 Complete 🚀 Simple
Seguridad 🟢 Muy alta 🟢 Muy alta 🟢 Alta 🟡 Media 🔴 Baja
Velocidad 🟡 Media 🟢 Rápida 🔴 Muy lenta 🟢 Rápida 🟢 Rápida
Perfiles privados ✅ Sí ✅ Sí ✅ Con login ✅ Con login ❌ No
Stories ❌ No ✅ Especializado ❌ No ✅ Sí ❌ No
Posts ✅ Sí ❌ No ✅ Sí ✅ Sí ✅ Sí
Múltiples usuarios ❌ Uno por vez ✅ Batch stories ❌ Uno por vez ❌ Uno por vez ❌ Uno por vez
Sin contraseña ✅ Sí ✅ Sí ❌ Requiere login ❌ Requiere login ✅ Sí
Facilidad de uso 🟡 Media 🟡 Media 🟢 Fácil 🔴 Complejo 🟢 Muy fácil
Rate limiting 🟢 Resistente 🟢 Resistente 🟢 Muy resistente 🟡 Moderado 🔴 Vulnerable

📋 LOGS Y SEGUIMIENTO

🍪 Browser Session Downloader

  • ✅ Output en tiempo real con emojis
  • ✅ Información detallada de cookies
  • ✅ Progreso con porcentajes
  • ✅ Diagnóstico específico de errores

📚 Browser Stories Downloader

  • ✅ Output especializado para stories
  • ✅ Información detallada por usuario
  • ✅ Alertas cuando no hay stories disponibles
  • ✅ Resumen completo con estadísticas finales
  • ✅ Auto-organización en carpetas por usuario

📱 Instagram Downloader (completo)

  • ✅ Archivo instagram_downloader.log
  • ✅ Timestamps de todas las acciones
  • ✅ Estadísticas completas de descarga
  • ✅ Información de errores detallada

🛡️ Safe Mode

  • ✅ Output básico con progreso
  • ✅ Pausas claramente indicadas
  • ✅ Conteo de posts descargados

🚦 RECOMENDACIONES FINALES

🥇 Para la mayoría de usuarios

python browser_session_downloader.py usuario cookies.json 100

🥈 Para stories específicos (NUEVO)

python browser_stories_downloader.py natgeo,cristiano,nike cookies.json
# o todos los stories
python browser_stories_downloader.py --siguiendo cookies.json

🥉 Para perfiles muy grandes (>10K posts)

python instagram_downloader_safe.py usuario

🏅 Para principiantes

python simple_downloader.py usuario_publico

🎖️ Para contenido completo (stories, highlights)

python instagram_downloader.py usuario -u tu_user -p tu_pass --stories --highlights

⚖️ ASPECTOS LEGALES Y ÉTICOS

Uso permitido

  • 📱 Contenido de tu propia cuenta
  • 👥 Contenido público con fines educativos
  • 🎓 Investigación académica
  • 💾 Backup personal de contenido que sigues

Uso NO permitido

  • 🚫 Redistribución de contenido sin permiso
  • 💰 Uso comercial sin autorización
  • 🕷️ Scraping masivo de perfiles
  • 👤 Violación de privacidad

🤝 CONTRIBUIR

¿Mejoras, bugs o nuevas funcionalidades?

  1. Fork el proyecto
  2. Crea una rama: git checkout -b feature/MiMejora
  3. Commit: git commit -m 'Agrego nueva funcionalidad'
  4. Push: git push origin feature/MiMejora
  5. Pull Request: Crea un PR describiendo tus cambios

🙏 CRÉDITOS

  • 🚀 Instaloader: Librería principal
  • 🤖 IA: Asistencia en desarrollo y documentación
  • 🔧 Comunidad: Feedback y testing de usuarios

📞 SOPORTE

¿Problemas? ¿Preguntas?

  1. 📖 Lee este README completo (especialmente "Solución de problemas")
  2. 🍪 Prueba el Browser Session Downloader (método recomendado)
  3. 🔍 Revisa los logs de error para más detalles
  4. 🐛 Reporta bugs con información detallada

⚠️ AVISO LEGAL

📜 Términos de servicio: Respeta siempre los ToS de Instagram y las leyes locales sobre derechos de autor.

🔒 Privacidad: Solo descarga contenido que tengas derecho a descargar. No violes la privacidad de otros.

🎓 Propósito educativo: Estos scripts son para aprendizaje, investigación y uso personal responsable.


💡 ¿Encontraste útil esta suite? ⭐ ¡Dale estrella al proyecto!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors