Documentación extensa para usar el toolkit de limpieza y organización de librerías para DJs y Productores en macOS.
.pkg y automatización de tareas de desarrollo.DJProducerTools_MultiScript_ES.sh – interfaz en español.DJProducerTools_MultiScript_EN.sh – interfaz en inglés.install_djpt.sh – instalador simple (descarga última versión).cat <<'EOF' > install_djpt.sh
#!/usr/bin/env bash
set -e
for f in DJProducerTools_MultiScript_ES.sh DJProducerTools_MultiScript_EN.sh; do
url="https://raw.githubusercontent.com/Astro1Deep/DjProducerTool/main/$f"
curl -fsSL "$url" -o "$f"
chmod +x "$f"
done
echo "Listo. Ejecuta ./DJProducerTools_MultiScript_ES.sh o ./DJProducerTools_MultiScript_EN.sh"
EOF
chmod +x install_djpt.sh
./install_djpt.sh
python3 recomendado para ffprobe/librosa y ML opcional._DJProducerTools/ (config, logs, planes, quarantine)../DJProducerTools_MultiScript_ES.sh # versión en español
./DJProducerTools_MultiScript_EN.sh # versión en inglés
_DJProducerTools/ en el BASE_PATH (config/logs/planes/quarantine)._DJProducerTools cerca del directorio actual, se usa esa raíz como BASE_PATH._DJProducerTools/config/: djpt.conf (BASE_PATH, roots, flags SafeMode/Lock/DryRun), perfiles de exclusiones, historial de rutas._DJProducerTools/reports/: hash_index.tsv, media_corrupt.tsv, workspace_scan.tsv, serato_video_report.tsv, playlists_per_folder.m3u8, ml_predictions_*.tsv, etc._DJProducerTools/plans/: dupes_plan.tsv/json, cleanup_pipeline_*.txt, workflow_*.txt, integration_engine_*.txt, efficiency_*.tsv, ml_organization_*.tsv, predictive_backup_*.txt, cross_platform_*.txt, mirror_integrity_*.tsv, etc._DJProducerTools/quarantine/: archivos movidos por la opción 11 o cadenas que la usen._DJProducerTools/logs/: ejecuciones, instalaciones ML; visor en opción 28._DJProducerTools/venv/: entorno virtual para ML opcional.SAFE_MODE y DJ_SAFE_LOCK bloquean acciones peligrosas (quarantine/movidas). Desactiva ambos si quieres aplicar planes.DRYRUN_FORCE fuerza simulación en algunas acciones.DEBUG_MODE: Si una tarea se queda “colgada” con el logo girando, puedes editar el script y poner DEBUG_MODE=1 al principio. Esto desactivará las animaciones y mostrará la salida de los comandos en tiempo real para ayudarte a diagnosticar el problema.1) Backup seguro + snapshot (8 -> 27)
2) Dedup exacto + quarantine (10 -> 11)
3) Limpieza metadatos + nombres (39 -> 34)
4) Salud media: rescan + playlists + relink (18 -> 14 -> 15)
5) Prep show: backup/snapshot/dup/playlist (8 -> 27 -> 10 -> 11 -> 14 -> 8)
6) Integridad + corruptos (13 -> 18)
7) Plan eficiencia (42 -> 44 -> 43)
8) ML organización básica (45 -> 46)
9) Backup predictivo (49 -> 8 -> 27)
10) Sync multiplataforma (50 -> 39 -> 8 -> 8)
11) Diagnóstico rápido (1 -> 3 -> 4 -> 5)
12) Salud Serato (7 -> 59)
13) Hash + mirror check (9 -> 68)
14) Audio prep (31 -> 69 -> 70)
15) Auditoría integridad (6 -> 9 -> 27 -> 68)
16) Limpieza + backup seguro (39 -> 34 -> 10 -> 11 -> 8 -> 27)
17) Prep sync librerías (18 -> 14 -> 50 -> 8 -> 27)
18) Salud visuales (V2 -> V6 -> V8 -> V9 -> 8)
19) Organización audio avanzada (31 -> 30 -> 35 -> 45 -> 46)
20) Seguridad Serato reforzada (7 -> 8 -> 59 -> 12 -> 49)
21) Dedup multi-disco + mirror (9 -> 10 -> 46 -> 11 -> 68)
_DJProducerTools/plans/ (dupes, limpieza, workflows, integraciones, sync, eficiencia)._DJProducerTools/reports/ (hashes, corruptos, catálogos, playlists, cues, ML)._DJProducerTools/quarantine/ (aplicado por 11 o cadenas que la usen)._DJProducerTools/logs/ (visor en opción 28).hash_index (9) y dupes_plan (10); desactiva SafeMode/Lock si quieres aplicar (11).docs/menu_es_full.svg y docs/menu_en_full.svg.bash docs/generate_menu_svgs.sh.Para evitar desastres antes de un gig, sigue esta regla usando las herramientas del script:
-q:a 0). El script mueve automáticamente los WAVs pesados a una carpeta _WAV_Backup para que puedas archivarlos en tu disco de estudio y llevar solo los MP3s ligeros.Los CDJs antiguos pueden fallar con caracteres extraños o art works muy grandes.
artist_pages.tsv (en config/) con plantillas de bio, press kit, rider/stage plot, showfile DMX/OBS/Ableton y links a plataformas/redes (Spotify, Apple, YouTube, SoundCloud, Beatport, Traxsource, Bandcamp, Mixcloud, Audius, Tidal, Deezer, Amazon, Shazam, Juno, Pandora, Instagram, TikTok, Facebook, Twitter/X, Threads, RA, Patreon, Twitch, Discord, Telegram, WhatsApp, Merch, Boiler Room…). Puedes editar en línea y exportar a CSV/HTML/JSON (reports/).LICENSE).El proyecto incluye una suite de tests unitarios básicos para verificar la funcionalidad de las funciones de utilidad principales.
cd "/Users/ivan/Desktop/0 SERATO BIBLIOTECA/DJProducerTools_Project "
chmod +x tests/test_runner.sh
bash tests/test_runner.sh
El runner descubrirá y ejecutará automáticamente todas las funciones de test, mostrando un resumen de los tests pasados y fallidos.
tests/test_runner.sh carga el script principal (DJProducerTools_MultiScript_EN.sh).test_*) valida una pieza de lógica específica usando helpers simples como assert_equals.strip_quotes y should_exclude_path.Para añadir un nuevo test, abre tests/test_runner.sh y crea una nueva función cuyo nombre empiece por test_. El runner la detectará automáticamente.
build_macos_pkg.sh: Crea un instalador .pkg nativo de macOS que instala la aplicación en /Applications. Ideal para una distribución sencilla.generate_menu_svgs.sh: Genera automáticamente las capturas de pantalla de los menús en formato SVG. Requiere termtosvg (pip install termtosvg).test_runner.sh: Ejecuta la suite de tests unitarios para asegurar la calidad del código.tests/check_consistency.sh: Verifica la consistencia interna del proyecto. Comprueba menús, funciones, cadenas, existencia de documentación, busca TODOs/FIXMEs pendientes, valida la sintaxis de todos los scripts .sh usando shellcheck (si está instalado) y busca posibles secretos o claves hardcodeadas. Esencial para ejecutar antes de un commit.build_release_pack.sh: Prepara un paquete completo para un lanzamiento en GitHub. Genera un borrador del CHANGELOG.md agrupando los commits por tipo (ej. feat, fix) a partir del historial de git. Opcionalmente, puede publicar el release automáticamente en GitHub si configuras un token de acceso.generate_html_report.sh: Ejecuta el script check_consistency.sh y genera un informe de estado visual en formato HTML (project_status_report.html), con secciones separadas para fallos, tareas pendientes (TODOs) y comprobaciones correctas.Estos scripts automatizan el ciclo de vida del desarrollo, desde las pruebas hasta la creación del producto final y la actualización de la documentación.
Para distribuir tu aplicación fuera de la Mac App Store sin que los usuarios vean advertencias de seguridad de Gatekeeper, necesitas firmar tu instalador .pkg con un certificado de desarrollador de Apple y, opcionalmente, notarizarlo.
.cer..pkgsecurity find-identity -v -p codesigning
Busca en la lista una línea que se parezca a esto:
1) XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX "Developer ID Installer: Tu Nombre (XXXXXXXXXX)"
Copia el texto completo que está entre comillas, incluyendo el ID entre paréntesis.
Modifica el Script build_macos_pkg.sh:
Abre el archivo build_macos_pkg.sh en un editor de texto. Verás una sección comentada para la firma. Descomenta la línea SIGNING_IDENTITY=... y pega la identidad que copiaste.
El resultado debería ser algo así:
SIGNING_IDENTITY="Developer ID Installer: John Appleseed (123ABC456D)"
./build_macos_pkg.sh, el script usará automáticamente tu certificado para firmar el paquete .pkg resultante.La firma evita la mayoría de las advertencias, pero para una compatibilidad total con las últimas versiones de macOS, Apple recomienda “notarizar” la aplicación. El script build_macos_pkg.sh puede automatizar este proceso.
xxxx-xxxx-xxxx-xxxx).build_macos_pkg.sh:
Abre el script y busca la sección de notarización. Descomenta y rellena las siguientes variables:
# Tu correo electrónico de Apple ID
APPLE_ID_EMAIL="tu-correo@example.com"
# La contraseña específica de app que generaste
APPLE_ID_APP_PASSWORD="xxxx-xxxx-xxxx-xxxx"
SIGNING_IDENTITY. Al ejecutar ./build_macos_pkg.sh, el script firmará el paquete, lo subirá a Apple para su notarización, esperará el resultado y, si tiene éxito, adjuntará el “ticket” de notarización al instalador.El script build_release_pack.sh puede publicar automáticamente el release en GitHub.
repo.export GITHUB_TOKEN="ghp_...".build_release_pack.sh, el script detectará el token y te ofrecerá publicar el release de forma automática.