Es una aplicación de escritorio moderna desarrollada con Python y PyQt6 diseñada para organizar, clasificar y audicionar colecciones de música local de manera rápida y fluida mediante una interfaz minimalista inspirada en un sistema de tarjetas (card-based layout).
- Interfaz Dinámica con Desenfoque de Carátulas: Extrae los metadatos y la portada de los archivos de audio para generar un fondo dinámico difuminado y colores adaptativos con el procesador de gráficos de PyQt.
- Smart Drop (Análisis de Momentos Destacados): Algoritmo interno basado en análisis espectral y hash para saltar instantáneamente a los mejores fragmentos (drops o estribillos) de cada pista.
- Navegador de Onda de Audio: Barra de progreso interactiva simulada por picos de onda para una navegación fluida por la pista de audio.
- Gestión de Favoritos en Paralelo: Organiza automáticamente las
canciones seleccionadas moviéndolas a una carpeta de favoritos
dedicada (
_Favoritos) sin perder el control de la sesión. - Soporte Multiformato: Compatible con MP3, FLAC, WAV, M4A y
AAC gracias al soporte integrado de
mutagen. - Optimización con Hilos Secundarios (
QThread): Lectura asíncrona de metadatos para evitar congelamientos en la interfaz de usuario.
- Sistema Operativo: Windows 10 / 11 (Probado y optimizado).
←Descartar pista actual.→Guardar en favoritos.↓Activar Smart Drop.EspacioPausar / Reproducir.
- Python 3.x
- PyQt6
- Mutagen
- Clona el repositorio:
git clone https://github.com/FlixForge/Music-Match.git
cd Music-Match- Instala las dependencias:
pip install PyQt6 mutagen- Ejecuta la aplicación:
python main.pySi deseas compilar la aplicación por tu cuenta en un archivo ejecutable portable, puedes usar PyInstaller con el archivo de especificación incluido:
- pip install pyinstaller
- pyinstaller MusicMatch.spec
- Music-Match/
- │
- ├── resources/ # Contiene iconos, carátulas de prueba y recursos visuales
- ├── MusicMatch.py # Script principal y lógica de la interfaz PyQt6
- ├── MusicMatch.spec # Configuración para compilar con PyInstaller
- ├── requirements.txt # Dependencias del proyecto
- ├── LICENSE # Licencia de código abierto (MIT)
- └── README.md # Documentación del proyecto
Dado que la aplicación se distribuye como un ejecutable independiente (.exe) empaquetado con PyInstaller, puedes verificar su integridad y autenticidad mediante los siguientes hashes criptográficos:
- MD5:
7FE8AB56DED475E3E2775E71C9088323 - SHA-256:
34A4E10AB86861A4173FED92774154EC92FFF8B2F761D2C36BEBB98747C1B086 - SHA-512:
D18E7224ED1A3C4F7E3417132B3F6F74D8614D1A8C19E5574837F2B145E21457586392230C3798791B77ABE44FC6975D11633C7F42604E91799FEB6630E424F8
Al analizar el archivo en VirusTotal, la gran mayoría de motores lo detectan como 100% seguro y limpio. Los únicos 3 avisos corresponden a motores menores o detecciones heurísticas genéricas (como Microsoft Wacatac) que suelen catalogar erróneamente los scripts de Python empaquetados como sospechosos (falsos positivos).
Puedes consultar el reporte detallado o reanalizar el archivo directamente en VirusTotal.
Al ejecutar el programa por primera vez, es muy probable que Windows Defender SmartScreen muestre una ventana azul indicando que "Windows protegió su PC" (porque el ejecutable no está firmado con un certificado comercial de pago). Esto es completamente normal en software independiente de código abierto. Para iniciar la aplicación con total tranquilidad:
- Haz clic en el texto "Más información" que aparece en la ventana de advertencia.
- Haz clic en el botón "Ejecutar de todas formas".
¡Las contribuciones, reportes de errores y sugerencias son totalmente bienvenidos! Si deseas colaborar, por favor lee las guías en CONTRIBUTING.md antes de enviar un Pull Request.
Este proyecto es de carácter experimental. Se proporciona "tal cual", sin garantías de ningún tipo, ya sean expresas o implícitas. Cada usuario es enteramente responsable del uso que le dé a esta aplicación, así como de la gestión, resguardo y manipulación de sus archivos de audio y colecciones de música local. El autor no se hace responsable por pérdida de datos, errores de ejecución o cualquier inconveniente derivado de su utilización.
Creado por FlixForge: https://github.com/FlixForge
