base on Un cliente de YouTube Music con Material Design 3, para Android # OpenTune
<div align="center">
<img src="https://github.com/Arturo254/OpenTune/blob/master/fastlane/metadata/android/en-US/images/featureGraphic.png" alt="Banner de OpenTune" width="100%"/>
### Cliente Avanzado de YouTube Music con Material Design 3 para Android
[](https://github.com/Arturo254/OpenTune/releases)
[](https://github.com/Arturo254/OpenTune/blob/main/LICENSE)
[](https://crowdin.com/project/opentune)
[](https://www.android.com)
[](https://github.com/Arturo254/OpenTune/stargazers)
[](https://github.com/Arturo254/OpenTune/network/members)
</div>
[](README.en.md)
---
## Tabla de Contenido
- [Visión General](#visión-general)
- [Stack Tecnológico](#stack-tecnológico)
- [Características Principales](#características-principales)
- [Documentación](#documentación)
- [Instalación](#instalación)
- [Compilación desde Código Fuente](#compilación-desde-código-fuente)
- [Contribuciones](#contribuciones)
- [Apoya el Proyecto](#apoya-el-proyecto)
- [Reconocimientos](#reconocimientos)
- [Licencia](#licencia)
---
## Visión General
**OpenTune** es un cliente de YouTube Music de código abierto diseñado específicamente para dispositivos Android. Ofrece una experiencia de usuario superior con una interfaz moderna que implementa Material Design 3, proporcionando funcionalidades avanzadas para explorar, reproducir y gestionar contenido musical sin las limitaciones de la aplicación oficial.
### Beneficios Clave
- **Experiencia sin Anuncios**: Disfruta de música sin interrupciones publicitarias
- **Rendimiento Mejorado**: Optimizado para reproducción y navegación fluida
- **Enfoque en la Privacidad**: Sin recolección de datos ni seguimiento
- **Interfaz Personalizable**: Personaliza tu experiencia musical
- **Capacidades Offline**: Descarga y reproduce música sin conexión a internet
> **Nota**: OpenTune es un proyecto independiente y no está afiliado, patrocinado ni respaldado por YouTube o Google.
---
## Stack Tecnológico
<div align="center">
| Frontend | Backend | Herramientas de Desarrollo |
|:--------:|:-------:|:-------------------------:|
|  |  |  |
|  |  |  |
|  | |  |
</div>
---
## Características Principales
### Funcionalidad Principal
<table>
<tr>
<th width="30%">Característica</th>
<th width="70%">Descripción</th>
</tr>
<tr>
<td><strong>🎵 Reproducción sin Anuncios</strong></td>
<td>Disfruta de música sin interrupciones publicitarias</td>
</tr>
<tr>
<td><strong>🔄 Reproducción en Segundo Plano</strong></td>
<td>Continúa escuchando mientras usas otras aplicaciones</td>
</tr>
<tr>
<td><strong>🔍 Búsqueda Avanzada</strong></td>
<td>Encuentra rápidamente canciones, vídeos, álbumes y listas de reproducción</td>
</tr>
<tr>
<td><strong>👤 Integración de Cuenta</strong></td>
<td>Inicia sesión para sincronizar preferencias y colecciones</td>
</tr>
<tr>
<td><strong>📚 Gestión de Biblioteca</strong></td>
<td>Organiza y administra completamente tu colección musical</td>
</tr>
<tr>
<td><strong>📱 Modo Offline</strong></td>
<td>Descarga contenido para escuchar sin conexión</td>
</tr>
</table>
### Mejoras de Audio
<table>
<tr>
<th width="30%">Característica</th>
<th width="70%">Descripción</th>
</tr>
<tr>
<td><strong>🎤 Letras Sincronizadas</strong></td>
<td>Visualiza letras de canciones perfectamente sincronizadas</td>
</tr>
<tr>
<td><strong>⚡ Omisión Inteligente de Silencios</strong></td>
<td>Omite automáticamente segmentos sin audio</td>
</tr>
<tr>
<td><strong>🔊 Normalización de Volumen</strong></td>
<td>Equilibra los niveles de sonido entre diferentes pistas</td>
</tr>
<tr>
<td><strong>🎛️ Control de Tempo y Tono</strong></td>
<td>Ajusta la velocidad y el tono de reproducción según preferencias</td>
</tr>
</table>
### Personalización e Integración
<table>
<tr>
<th width="30%">Característica</th>
<th width="70%">Descripción</th>
</tr>
<tr>
<td><strong>🎨 Temas Dinámicos</strong></td>
<td>La interfaz se adapta a los colores de las portadas de álbumes</td>
</tr>
<tr>
<td><strong>🌐 Soporte Multiidioma</strong></td>
<td>Disponible en numerosos idiomas para usuarios globales</td>
</tr>
<tr>
<td><strong>🚗 Compatible con Android Auto</strong></td>
<td>Integración con sistemas de infoentretenimiento vehicular</td>
</tr>
<tr>
<td><strong>🎯 Material Design 3</strong></td>
<td>Diseño alineado con las últimas directrices de diseño de Google</td>
</tr>
<tr>
<td><strong>🖼️ Exportación de Portadas</strong></td>
<td>Guarda imágenes de álbumes en alta resolución</td>
</tr>
</table>
---
## Documentación
Para información detallada sobre configuración, características avanzadas y guías de uso, consulta nuestra documentación oficial:
<div align="center">
[](https://opentune.gitbook.io/)
</div>
---
## Instalación
### Requisitos del Sistema
| Componente | Requisito Mínimo |
|:-----------|:-----------------|
| Sistema Operativo | Android 6.0 (Marshmallow) o superior |
| Espacio de Almacenamiento | 10 MB disponibles |
| Red | Conexión a Internet para streaming |
| RAM | 2 GB recomendados |
### Métodos de Instalación
#### Opción 1: Releases de GitHub (Recomendado)
1. Navega a la sección de [Releases](https://github.com/Arturo254/OpenTune/releases) en GitHub
2. Descarga el archivo APK de la última versión estable
3. Habilita "Instalar desde fuentes desconocidas" en la configuración de seguridad de tu dispositivo
4. Abre el archivo APK descargado para completar la instalación
#### Opción 2: Sitio Web Oficial
1. Visita el [sitio web oficial de OpenTune](https://opentune.netlify.app/)
2. Selecciona la opción de descarga para Android
3. Sigue las instrucciones de instalación proporcionadas
#### Opción 3: F-Droid
<div align="center">
[](https://f-droid.org/es/packages/com.Arturo254.opentune/)
</div>
#### Opción 4: OpenApk
<div align="center">
[](https://www.openapk.net/opentune/com.Arturo254.opentune/)
</div>
> **Aviso de Seguridad**: Por razones de seguridad, se recomienda obtener la aplicación exclusivamente a través de los canales oficiales mencionados anteriormente. Evita descargar APKs de fuentes no verificadas.
---
## Compilación desde Código Fuente
### Requisitos Previos
<table>
<tr>
<th>Herramienta</th>
<th>Versión Recomendada</th>
<th>Propósito</th>
</tr>
<tr>
<td>Gradle</td>
<td>7.5 o superior</td>
<td>Automatización de construcción</td>
</tr>
<tr>
<td>Kotlin</td>
<td>1.7 o superior</td>
<td>Lenguaje de programación</td>
</tr>
<tr>
<td>Android Studio</td>
<td>2022.1 o superior</td>
<td>IDE y entorno de desarrollo</td>
</tr>
<tr>
<td>JDK</td>
<td>11 o superior</td>
<td>Entorno de ejecución Java</td>
</tr>
<tr>
<td>Android SDK</td>
<td>API nivel 33 (Android 13)</td>
<td>Herramientas de desarrollo Android</td>
</tr>
</table>
### Configuración del Entorno
```bash
# Clonar el repositorio
git clone https://github.com/Arturo254/OpenTune.git
# Navegar al directorio del proyecto
cd OpenTune
# Actualizar submódulos (si los hay)
git submodule update --init --recursive
```
### Métodos de Compilación
#### Compilación con Android Studio
1. Abre Android Studio
2. Selecciona "Abrir un proyecto existente de Android Studio"
3. Navega y selecciona el directorio de OpenTune
4. Espera a que se complete la sincronización del proyecto y la indexación
5. Selecciona Construir → Construir Bundle(s) / APK(s) → Construir APK(s)
#### Compilación por Línea de Comandos
```bash
# Construir versión de producción
./gradlew assembleRelease
# Construir versión de depuración
./gradlew assembleDebug
# Construcción completa con pruebas
./gradlew build
# Ejecutar pruebas unitarias
./gradlew test
# Limpiar construcción
./gradlew clean
```
> **Nota**: Los archivos APK compilados se ubicarán en el directorio `app/build/outputs/apk/`.
---
## Contribuciones
### Código de Conducta
Todos los participantes en este proyecto deben adherirse a nuestro código de conducta que promueve un entorno inclusivo, respetuoso y constructivo. Por favor, revisa el [Código de Conducta completo](https://github.com/Arturo254/OpenTune/blob/master/CODE_OF_CONDUCT.md) antes de contribuir.
### Traducción
Ayuda a traducir OpenTune a tu idioma o mejorar las traducciones existentes:
<div align="center">
[](https://poeditor.com/join/project/208BwCVazA)
[](https://crowdin.com/project/opentune)
</div>
### Canales de Comunidad
<div align="center">
[](https://t.me/OpenTune_chat)
[](https://t.me/opentune_updates)
</div>
### Flujo de Trabajo de Desarrollo
1. **Revisión de Issues**: Verifica [issues abiertas](https://github.com/Arturo254/OpenTune/issues) o crea una nueva describiendo el problema o característica
2. **Fork del Repositorio**: Crea un fork personal del repositorio
3. **Rama de Característica**: Crea una rama para tu característica (`git checkout -b feature/nueva-caracteristica`)
4. **Implementación**: Implementa cambios siguiendo las convenciones de código del proyecto
5. **Pruebas**: Asegúrate de que el código pase todas las pruebas (`./gradlew test`)
6. **Commit**: Realiza commits con mensajes descriptivos (`git commit -m 'feat: añadir nueva característica'`)
7. **Push de Cambios**: Sube cambios a tu fork (`git push origin feature/nueva-caracteristica`)
8. **Pull Request**: Abre un PR detallando los cambios y referenciando la issue correspondiente
> **Directrices de Desarrollo**: Revisa nuestras [directrices de contribución](https://github.com/Arturo254/OpenTune/blob/master/CONTRIBUTING.md) para información detallada sobre el proceso de desarrollo, estándares de código y flujo de trabajo.
---
## Apoya el Proyecto
Si encuentras valor en **OpenTune** y quieres contribuir a su desarrollo continuo, considera hacer una donación. Tu apoyo financiero nos permite:
- Implementar nuevas características y mejoras
- Corregir errores y optimizar el rendimiento
- Mantener la infraestructura del proyecto
- Dedicar más tiempo al desarrollo y mantenimiento
<div align="center">
[](https://github.com/sponsors/Arturo254)
[](mailto:
[email protected])
</div>
> **Nota**: Las donaciones son completamente opcionales. OpenTune siempre será gratuito y de código abierto, independientemente del apoyo financiero recibido.
---
## Reconocimientos
Agradecimientos especiales a los siguientes contribuidores y colaboradores:
- **mostafaalagamy** - Implementación de MetroList
- **Fabito02** - Apoyo incondicional desde el principio
- **Traductores de la comunidad** - Haciendo OpenTune accesible mundialmente
- **Testers beta** - Ayudando a mejorar la estabilidad y usabilidad
---
## Licencia
**Copyright © 2025 Arturo Cervantes**
Este programa es software libre: puedes redistribuirlo y/o modificarlo bajo los términos de la Licencia Pública General GNU publicada por la Free Software Foundation, ya sea la versión 3 de la Licencia, o (a tu elección) cualquier versión posterior.
Este programa se distribuye con la esperanza de que sea útil, pero **SIN NINGUNA GARANTÍA**; ni siquiera la garantía implícita de COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulta la [Licencia Pública General GNU](https://github.com/Arturo254/OpenTune/blob/main/LICENSE) para más detalles.
<div align="center">
[](https://www.gnu.org/licenses/gpl-3.0)
</div>
> **Importante**: Cualquier uso comercial no autorizado de este software o sus derivados constituye una violación de los términos de licencia.
---
<div align="center">
<p><strong>© 2023-2024 Proyectos de Código Abierto</strong></p>
<p>Desarrollado con pasión por <a href="https://github.com/Arturo254">Arturo Cervantes</a></p>
<br>
[](https://github.com/Arturo254)
[](mailto:
[email protected])
</div>
", Assign "at most 3 tags" to the expected json: {"id":"13326","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"