Instaloader en Kali Linux: Guía
Instaloader en Kali Linux: Guía
Instaloader es una herramienta de terminal muy potente escrita en Python que sirve para descargar fotos, videos y metadatos de Instagram. Al estar en Kali, ya tienes casi todo lo necesario.
Pasos para la instalación
Sigue estos comandos en tu terminal:
Actualiza tu sistema:
Es buena práctica asegurarse de que los repositorios estén al día.
Bashsudo apt updateInstala el gestor de paquetes de Python (pip):
Si no lo tienes instalado, ejecútalo así:
Bashsudo apt install python3-pipInstala Instaloader:
Ahora, descarga e instala la herramienta:
Bashpip3 install instaloader
Comandos básicos de uso
Una vez instalado, aquí tienes los comandos más comunes para que empieces a usarlo:
Descargar todo el perfil de un usuario:
Bashinstaloader nombre_de_usuarioDescargar solo las "Stories" (requiere iniciar sesión):
Bashinstaloader --stories --login tu_usuario nombre_del_objetivoDescargar un post específico por su enlace:
Bashinstaloader -- -shortcode_del_post(El shortcode es el código que aparece en la URL del post, por ejemplo:
C1Ab23dEFgH).
⚠️ Notas importantes
Inicia sesión con precaución: Si vas a descargar mucho contenido o perfiles privados, usa
--login. Sin embargo, Instagram es estricto; si haces demasiadas peticiones en poco tiempo, podrían suspender tu cuenta temporalmente. Usa una cuenta secundaria si es posible.Privacidad: Recuerda siempre respetar la privacidad de los demás y usar estas herramientas de forma ética.
Automatizar esto te ahorrará mucho tiempo, especialmente si sigues varias cuentas de interés (como perfiles de ciberseguridad o fotografía).
Aquí tienes un script sencillo en Python que lee una lista de usuarios desde un archivo de texto y descarga sus publicaciones más recientes.
1. Prepara tu lista de objetivos
Crea un archivo llamado usuarios.txt en la misma carpeta donde pondrás el script. Escribe un nombre de usuario por línea:
usuario_ejemplo1
usuario_ejemplo2
coding_magic
2. El Script de Automatización (descargador.py)
Copia este código en un archivo nuevo:
import instaloader
# Inicializamos Instaloader
L = instaloader.Instaloader()
# Opcional: Descomenta la línea de abajo si quieres loguearte (Recomendado)
# L.login("TU_USUARIO", "TU_CONTRASEÑA")
def descargar_lista():
try:
with open("usuarios.txt", "r") as archivo:
usuarios = archivo.readlines()
for usuario in usuarios:
nombre = usuario.strip() # Limpiamos espacios o saltos de línea
if nombre:
print(f"--- Iniciando descarga de: {nombre} ---")
try:
# Esto descarga el perfil completo
L.download_profile(nombre, profile_pic_only=False)
except Exception as e:
print(f"Error con {nombre}: {e}")
except FileNotFoundError:
print("Error: No se encontró el archivo usuarios.txt")
if __name__ == "__main__":
descargar_lista()
3. Cómo ejecutarlo
Desde tu terminal en Kali Linux, simplemente corre:
python3 descargador.py
💡 Un par de consejos "Pro":
Evita el Ban: Instagram detecta comportamientos robóticos. Si vas a descargar muchos perfiles, añade una pausa entre cada uno usando
import timeytime.sleep(30)(espera 30 segundos) dentro del ciclofor.Filtros: Puedes modificar el script para que solo descargue fotos que tengan más de X cantidad de "likes" o que se hayan publicado después de una fecha específica.
Vamos a darle un toque más profesional al script. Le añadiremos un retraso aleatorio (para que Instagram no sospeche que eres un bot) y un filtro por fecha para que no descargues todo el historial cada vez, sino solo lo más reciente.
Script Avanzado: descargador_pro.py
Este script solo descargará publicaciones hechas en los últimos 30 días.
import instaloader
from datetime import datetime, timedelta
import time
import random
# Configuramos Instaloader
L = instaloader.Instaloader()
# --- CONFIGURACIÓN ---
# L.login("tu_usuario", "tu_password") # Recomendado para evitar bloqueos
DIAS_ATRAS = 30
fecha_limite = datetime.now() - timedelta(days=DIAS_ATRAS)
def descargar_recientes():
try:
with open("usuarios.txt", "r") as f:
targets = [line.strip() for line in f if line.strip()]
for username in targets:
print(f"\n[+] Analizando: {username}")
try:
perfil = instaloader.Profile.from_username(L.context, username)
# Iteramos sobre los posts del perfil
for post in perfil.get_posts():
if post.date_utc > fecha_limite:
print(f"Descargando post del {post.date_utc}...")
L.download_post(post, target=perfil.username)
else:
# Como los posts vienen ordenados, si uno es viejo, los demás también
print(f"[-] Fin de posts recientes para {username}.")
break
# Pausa aleatoria entre 20 y 60 segundos para evitar baneos
espera = random.randint(20, 60)
print(f"Esperando {espera}s para el siguiente perfil...")
time.sleep(espera)
except Exception as e:
print(f"Error con {username}: {e}")
except FileNotFoundError:
print("Archivo 'usuarios.txt' no encontrado.")
if __name__ == "__main__":
descargar_recientes()
¿Qué hace este script diferente?
Filtro Temporal: Usa la librería
datetimepara calcular qué fecha fue hace 30 días. Si el post es más antiguo, el script se detiene y pasa al siguiente usuario.Sigilo (Stealth): La función
random.randint(20, 60)hace que el script espere un tiempo distinto cada vez. Esto imita mejor el comportamiento humano y protege tu dirección IP de ser marcada como spam.Eficiencia: No descarga gigabytes de datos antiguos que probablemente ya tienes, ahorrando espacio en tu disco duro de Kali.
Un último consejo de seguridad en Kali:
Si vas a realizar descargas masivas, considera usar una VPN o la red Tor (usando proxychains). Instagram registra tu IP, y si descargas cientos de perfiles en una hora, podrían bloquear tu acceso temporalmente.
Configurar Proxychains con Tor en Kali es el siguiente nivel para cualquier herramienta de recolección de datos (OSINT) como Instaloader. Esto hará que tu conexión rebote por tres nodos alrededor del mundo, ocultando tu dirección IP real de los servidores de Instagram.
Aquí tienes los pasos para dejarlo listo:
1. Instalar y activar Tor
Primero, necesitamos que el servicio de Tor esté corriendo en tu máquina.
sudo apt update
sudo apt install tor -y
sudo service tor start
Tip: Puedes verificar si está activo con
sudo service tor status. Debería decir "active (running)".
2. Configurar Proxychains
Proxychains ya viene preinstalado en Kali, pero debemos asegurarnos de que use el puerto correcto de Tor.
Abre el archivo de configuración:
Bashsudo nano /etc/proxychains4.confBusca la línea que dice
strict_chainy asegúrate de que no tenga un#delante.Baja hasta el final del archivo (sección
[ProxyList]). Debe verse exactamente así:Plaintextsocks5 127.0.0.1 9050(Si dice
socks4, cámbialo asocks5).Guarda y sal (
Ctrl + O,Enter,Ctrl + X).
3. Ejecutar Instaloader a través de Tor
Ahora, para usar tu script o el comando directo de Instaloader de forma anónima, simplemente antepones la palabra proxychains4:
Para el script que creamos:
Bashproxychains4 python3 descargador_pro.pyPara un comando directo:
Bashproxychains4 instaloader nombre_usuario
🧪 Cómo saber si está funcionando
Antes de empezar a descargar, haz esta prueba en tu terminal:
proxychains4 curl ifconfig.me
Si la IP que aparece no es la tuya (sino una de Alemania, EE. UU., etc.), ¡felicidades! Estás navegando a través de Tor.
⚠️ Advertencia de Velocidad
Ten en cuenta que Tor es más lento que tu conexión normal porque cifra los datos y los pasa por varios servidores. Si descargas videos pesados, tardará un poco más, pero tu privacidad estará a salvo.
Vamos a crear un script de Bash (un archivo .sh) que automatice todo el proceso. Este "lanzador" se encargará de:
Verificar si el servicio de Tor está encendido (y encenderlo si no lo está).
Lanzar tu script de Python a través de Proxychains.
Limpiar la pantalla y darte un reporte visual de lo que está pasando.
1. Crea el Lanzador (iniciar_descarga.sh)
Copia el siguiente código en un archivo nuevo llamado iniciar_descarga.sh:
#!/bin/bash
# Colores para que se vea profesional en la terminal de Kali
VERDE='\033[0;32m'
AZUL='\033[0;34m'
ROJO='\033[0;31m'
NC='\033[0m' # No Color
echo -e "${AZUL}[*] Iniciando el entorno de descarga anónima...${NC}"
# 1. Comprobar si Tor está corriendo
STATUS=$(service tor status | grep "active (running)")
if [ -z "$STATUS" ]; then
echo -e "${ROJO}[!] Tor no está activo. Iniciando servicio...${NC}"
sudo service tor start
sleep 2
else
echo -e "${VERDE}[V] Servicio Tor detectado y activo.${NC}"
fi
# 2. Verificar conexión anónima rápida
echo -e "${AZUL}[*] Verificando IP anónima...${NC}"
IP_ANON=$(proxychains4 curl -s ifconfig.me)
echo -e "${VERDE}[V] Tu IP actual (Tor): $IP_ANON${NC}"
# 3. Ejecutar el script de Python
echo -e "${AZUL}[*] Lanzando Instaloader con Proxychains...${NC}"
proxychains4 python3 descargador_pro.py
echo -e "${VERDE}[+] Proceso finalizado con éxito.${NC}"
2. Dale permisos de ejecución
Para que Kali te deje ejecutar este archivo como un programa, abre la terminal y escribe:
chmod +x iniciar_descarga.sh
3. Cómo usarlo de ahora en adelante
Ya no necesitas escribir comandos largos. Cada vez que quieras descargar tus perfiles de forma segura, solo escribe:
./iniciar_descarga.sh
💡 Estructura final de tu carpeta
Para que todo funcione perfectamente, asegúrate de tener estos 3 archivos en la misma carpeta:
usuarios.txt(Tu lista de nombres de usuario).descargador_pro.py(El script de Python con el filtro de fecha).iniciar_descarga.sh(El lanzador que acabamos de crear).
Nota de experto: Si notas que la conexión falla, a veces es porque los nodos de salida de Tor están saturados. Simplemente cierra el script y vuelve a ejecutarlo;
proxychainsintentará una ruta nueva.
Para que tu sistema de Kali Linux trabaje por ti mientras duermes, utilizaremos Cron, que es el administrador de tareas programadas en sistemas Linux.
Configuraremos una tarea (llamada cronjob) para que el script se ejecute automáticamente todos los domingos a medianoche.
1. Preparar el entorno
Cron no sabe dónde están tus archivos ni qué usuario eres, así que lo más seguro es usar rutas completas.
Primero, averigua la ruta de tu carpeta actual escribiendo esto en la terminal:
pwd
(Supongamos que el resultado es /home/kali/instagram_bot).
2. Editar el Crontab
Escribe el siguiente comando para abrir el editor de tareas:
crontab -e
Si es la primera vez que lo usas, elige la opción 1 (nano) que es la más sencilla.
3. Añadir la tarea programada
Ve al final del archivo y pega la siguiente línea (ajustando la ruta a la tuya):
0 0 * * 0 cd /home/kali/instagram_bot && ./iniciar_descarga.sh >> log_descargas.txt 2>&1
¿Qué significa cada parte?
0 0 * * 0: Significa "Minuto 0, Hora 0, cualquier día del mes, cualquier mes, el día 0 de la semana (Domingo)".cd /home/kali/instagram_bot: Entra en tu carpeta antes de hacer nada.&& ./iniciar_descarga.sh: Si entró bien a la carpeta, ejecuta el lanzador.>> log_descargas.txt 2>&1: Guarda todo lo que pase (errores y mensajes) en un archivo llamadolog_descargas.txtpara que puedas revisarlo el lunes por la mañana.
4. Guardar y Verificar
Presiona
Ctrl + O, luegoEnterpara guardar.Presiona
Ctrl + Xpara salir.Verifica que se guardó correctamente con:
Bashcrontab -l
💡 Un detalle importante sobre Sudo
Como el script de bash usa sudo service tor start, Cron podría pedirte contraseña y quedarse bloqueado. Para evitar esto en Kali, tienes dos opciones:
Dejar Tor siempre encendido:
sudo systemctl enable tor && sudo service tor start.Configurar sudo sin contraseña: (Solo recomendado si es una máquina de pruebas/aprendizaje).
Resumen de tu herramienta OSINT:
✅ Anónima: Gracias a Tor y Proxychains.
✅ Inteligente: Solo baja contenido de los últimos 30 días.
✅ Sigilosa: Tiene esperas aleatorias para evitar bloqueos.
✅ Automática: Se ejecuta sola cada semana.