Este script descarga automáticamente todos los mapas que has jugado en osu! desde tu perfil público. Es útil para tener una copia local de tus mapas favoritos.
- Descarga automática de todos los mapas de tu perfil de osu!
- Descargas paralelas para mayor velocidad
- Detección automática de mapas ya descargados
- Guardado de progreso para poder continuar más tarde
- Sistema de lotes con pausas para evitar límites de la API
- Nombres de archivo seguros y organizados
- Python 3.6 o superior
- Conexión a internet
- Cuenta de osu! con mapas jugados
- Clona o descarga este repositorio
- Instala las dependencias necesarias:
pip install requests
- Ve a tu perfil en osu.ppy.sh
- Copia el número que aparece en la URL:
https://osu.ppy.sh/users/TU_ID_AQUI - Abre
script.pyy cambia el valor deID_USUARIO:
ID_USUARIO = 1234567 # Reemplaza con tu ID realIMPORTANTE: Las cookies son necesarias para descargar los mapas. Sigue estos pasos:
- Ve a osu.ppy.sh e inicia sesión en tu cuenta
- Abre las herramientas de desarrollador (presiona F12)
- Ve a la pestaña "Application" o "Aplicación"
- En el panel izquierdo, busca "Cookies" y selecciona "https://osu.ppy.sh"
- Busca estas dos cookies y copia sus valores:
osu_sessioncf_clearance
- Abre
script.pyy pega los valores enCOOKIES_SESION:
COOKIES_SESION = {
"locale": "es",
"osu_session": "TU_VALOR_DE_OSU_SESSION_AQUI",
"cf_clearance": "TU_VALOR_DE_CF_CLEARANCE_AQUI"
}Puedes ajustar estos parámetros en script.py si es necesario:
LIMITE_POR_PAGINA = 50 # Mapas por petición (recomendado: 50)
DIRECTORIO_SALIDA = "maps" # Carpeta donde se guardarán los mapas
MAX_DESCARGAS_SIMULTANEAS = 4 # Descargas paralelas (recomendado: 3-4)
TAMAÑO_LOTE = 20 # Mapas por lote
PAUSA_ENTRE_LOTES = 90 # Pausa entre lotes en segundos-
Ejecuta el script:
python script.py
-
El script mostrará información sobre:
- Mapas ya descargados
- Progreso de la descarga
- Estadísticas finales
-
Los mapas se guardarán en la carpeta
maps/con el formato:ID_Beatmapset Artista - Título.osz
- El script detecta automáticamente mapas ya descargados
- Puedes ejecutarlo múltiples veces sin duplicar descargas
- El progreso se guarda en
download_state.json - Puedes interrumpir el script (Ctrl+C) y continuar más tarde
- El script continuará desde donde se quedó
- Utiliza múltiples hilos para descargar mapas simultáneamente
- Optimiza el tiempo de descarga total
- Descarga mapas en lotes pequeños
- Incluye pausas entre lotes para respetar los límites de osu!
Si recibes errores de autenticación:
- Verifica que las cookies estén actualizadas
- Las cookies expiran, necesitarás obtenerlas nuevamente
- Asegúrate de estar logueado en osu.ppy.sh
Si tienes problemas de conexión:
- Verifica tu conexión a internet
- Aumenta el valor de
PAUSA_ENTRE_LOTES - Reduce
MAX_DESCARGAS_SIMULTANEAS
Si algunos mapas no se descargan:
- Verifica que tengas permisos para descargar esos mapas
- Algunos mapas pueden estar restringidos
- Revisa los mensajes de error en la consola
osu_script/
├── script.py # Script principal
├── download_state.json # Estado de descarga (generado automáticamente)
├── maps/ # Carpeta con los mapas descargados
│ ├── 123456 Artista - Título.osz
│ └── 789012 Otro Artista - Otro Título.osz
└── README.md # Este archivo
- Solo descarga mapas que has jugado (según tu perfil público)
- Requiere cookies de sesión válidas
- Respeta los límites de la API de osu!
- No puede descargar mapas privados o restringidos
- Las cookies contienen información de sesión sensible
- No compartas tu archivo
script.pycon las cookies incluidas - Las cookies expiran automáticamente después de un tiempo
Si encuentras problemas:
- Verifica que sigas todos los pasos de configuración
- Asegúrate de tener las dependencias instaladas
- Revisa que las cookies estén actualizadas
- Consulta los mensajes de error en la consola
Este script es de uso libre. Úsalo responsablemente y respeta los términos de servicio de osu!