Electron wrapper de YouTube Music con las siguientes características:
- Apariencia y sensación nativa, tiene como objetivo mantener la interfaz original
- Framework para plugins personalizados: cambia YouTube Music según tus necesidades (estilo, contenido, funciones), habilita/deshabilita plugins con un solo clic
Pantalla del reproductor (color del álbum como tema y luz ambiental) |
---|
- Características
- Plugins disponibles
- Traducción
- Descarga
- Temas
- Dev
- Crea tus propios plugins
- Compilar
- Vista previa de producción
- Tests
- Licencia
- Preguntas frecuentes
-
Confirmación automática al pausar (Siempre habilitado): desactiva el mensaje emergente "¿Continuar reproduciendo?" que pausa la música después de cierto tiempo
-
Y más ...
-
Bloqueador de Anuncios: Bloquea todos los anuncios y rastreadores de forma predeterminada
-
Acciones de Álbum: Agrega botones de deshacer No me gusta, No me gusta, Me gusta, y Deshacer me gusta a todas las canciones de una lista de reproducción o álbum
-
Tema de Color del Álbum: Aplica un tema dinámico y efectos visuales basados en la paleta de colores del álbum
-
Modo Ambiente: Aplica un efecto de iluminación proyectando colores suaves del video en el fondo de tu pantalla
-
Compresor de Audio: Aplica compresión al audio (reduce el volumen de las partes más fuertes de la señal y aumenta el volumen de las partes más suaves)
-
Barra de Navegación Difuminada: hace que la barra de navegación sea transparente y borrosa
-
Omitir Restricciones de Edades: omite la verificación de edad de YouTube
-
Selector de Subtítulos: Habilita los subtítulos
-
Barra Lateral Compacta: Siempre muestra la barra lateral en modo compacto
-
Crossfade: Transición suave entre canciones
-
Desactivar Reproducción Automática: Hace que cada canción comience en modo "pausado"
-
Discord Rich Presence: Muestra a tus amigos lo que estás escuchando con Rich Presence
-
Descargador: Descarga MP3 directamente desde la interfaz (youtube-dl)
-
Volumen Exponencial: Hace que el control de volumen sea exponencial para facilitar la selección de volúmenes más bajos
-
Menú en la Aplicación: da a las barras un aspecto elegante y oscuro
(consulta esta publicación si tienes problemas para acceder al menú después de habilitar este plugin y la opción hide-menu)
-
Scrobbler: Agrega soporte para scrobbling en Last.fm y ListenBrainz
-
Lumia Stream: Agrega soporte para Lumia Stream
-
Letras Genius: Agrega soporte de letras para la mayoría de las canciones
-
Music Together: Comparte una lista de reproducción con otros. Cuando el anfitrión reproduce una canción, todos los demás escucharán la misma canción
-
Navegación: Flechas de siguiente/anterior integradas directamente en la interfaz, como en tu navegador favorito
-
Sin Inicio de Sesión de Google: Elimina los botones y enlaces de inicio de sesión de Google de la interfaz
-
Notificaciones: Muestra una notificación cuando comienza una canción a reproducirse (notificaciones interactivas están disponibles en Windows)
-
Picture-in-picture: permite cambiar la aplicación al modo picture-in-picture
-
Velocidad de Reproducción: Escucha rápido, escucha lento! Agrega un deslizador que controla la velocidad de reproducción de las canciones
-
Volumen Preciso: Controla el volumen de forma precisa utilizando la rueda del mouse/atajos de teclado, con un HUD personalizado y pasos de volumen personalizables
-
Atajos (& MPRIS): Permite configurar atajos globales para la reproducción (reproducir/pausar/siguiente/anterior) + desactivar osd multimedia al anular las teclas multimedia + habilitar Ctrl/CMD + F para buscar + habilitar el soporte mpris de Linux para teclas multimedia + atajos personalizados para usuarios avanzados
-
Saltar Canción no Gustada: Salta las canciones que no te gustan
-
Saltar Silencios: Salta automáticamente las secciones de silencio
-
SponsorBlock: Salta automáticamente las partes que no son de música, como la introducción/final o partes de videos musicales donde no se reproduce la canción
-
Control Multimedia en la Barra de Tareas: Controla la reproducción desde la barra de tareas de Windows
-
TouchBar: Diseño personalizado de TouchBar para macOS
-
Cambiador de Calidad de Video: Permite cambiar la calidad del video con un botón en la superposición de video
-
Alternar Video: Agrega un botón para alternar entre el modo de video/canción. también puede eliminar opcionalmente toda la pestaña de video
-
Visualizador: Diferentes visualizadores de música
Puedes ayudar con la traducción en Hosted Weblate.
Puedes consultar la última versión para encontrar rápidamente la versión más reciente.
Instala el paquete youtube-music-bin
desde AUR. Para obtener instrucciones de instalación de AUR, consulta esta página del wiki.
Puedes instalar la aplicación usando Homebrew (consulta la definición de cask):
brew install th-ch/youtube-music/youtube-music
Si instalas la aplicación manualmente y obtienes un error "está dañado y no se puede abrir" al iniciar la aplicación, ejecuta lo siguiente en la Terminal:
/usr/bin/xattr -cr /Applications/YouTube\ Music.app
Puedes usar el administrador de paquetes Scoop para instalar el paquete youtube-music
desde
el extras
bucket.
scoop bucket add extras
scoop install extras/youtube-music
Alternativamente, puedes usar Winget, el administrador de paquetes CLI oficial de Windows 11 para instalar el paquete th-ch.YouTubeMusic
.
Nota: Microsoft Defender SmartScreen podría bloquear la instalación ya que proviene de un "editor desconocido". Esto también esválido para la instalación manual al intentar ejecutar el ejecutable (.exe) después de una descarga manual aquí en GitHub (mismo archivo).
winget install th-ch.YouTubeMusic
- Descarga el archivo
*.nsis.7z
para la arquitectura de tu dispositivo en la página de lanzamientos.x64
para Windows de 64 bitsia32
para Windows de 32 bitsarm64
para Windows ARM64
- Descarga el instalador en la página de lanzamientos. (
*-Setup.exe
) - Colócalos en el mismo directorio.
- Ejecuta el instalador.
Puedes cargar archivos CSS para cambiar la apariencia de la aplicación (Opciones > Ajustes visuales > Tema).
Algunos temas predefinidos están disponibles en https://github.com/kerichdev/themes-for-ytmdesktop-player.
git clone https://github.com/th-ch/youtube-music
cd youtube-music
pnpm install --frozen-lockfile
pnpm dev
Usando plugins, puedes:
- manipular la aplicación - se pasa el
BrowserWindow
de electron al controlador del plugin - cambiar la interfaz manipulando el HTML/CSS
Crea una carpeta en src/plugins/NOMBRE-DEL-PLUGIN
:
index.ts
: el archivo principal del plugin
import style from './style.css?inline'; // importar estilo como inline
import { createPlugin } from '@/utils';
export default createPlugin({
name: "Plugin Label",
restartNeeded: true, // si el valor es true, ytmusic muestra el diálogo de reinicio
config: {
enabled: false,
}, // tu configuración personalizada
stylesheets: [style], // tu estilo personalizado,
menu: async ({ getConfig, setConfig }) => {
// Todos los métodos *Config están envueltos en Promise<T>
const config = await getConfig();
return [
{
label: "menu",
submenu: [1, 2, 3].map((value) => ({
label: `value ${value}`,
type: "radio",
checked: config.value === value,
click() {
setConfig({ value });
},
})),
},
];
},
backend: {
start({ window, ipc }) {
window.maximize();
// puedes comunicarte con el plugin de renderizado
ipc.handle("some-event", () => {
return "hello";
});
},
// se activa cuando cambia la configuración
onConfigChange(newConfig) { /* ... */ },
// se activa cuando se desactiva el plugin
stop(context) { /* ... */ },
},
renderer: {
async start(context) {
console.log(await context.ipc.invoke("some-event"));
},
// Solo disponible en el plugin de renderizado
onPlayerApiReady(api: YoutubePlayer, context: RendererContext) {
// establecer la configuración del plugin fácilmente
context.setConfig({ myConfig: api.getVolume() });
},
onConfigChange(newConfig) { /* ... */ },
stop(_context) { /* ... */ },
},
preload: {
async start({ getConfig }) {
const config = await getConfig();
},
onConfigChange(newConfig) {},
stop(_context) {},
},
});
- inyectar CSS personalizado: crea un archivo
style.css
en la misma carpeta y luego:
// index.ts
import style from './style.css?inline'; // importar estilo como inline
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // si el valor es true, ytmusic mostrará el diálogo de reinicio
config: {
enabled: false,
}, // tu configuración personalizada
stylesheets: [style], // tu estilo personalizado
renderer() {} // define el hook del renderizador
});
- Si quieres cambiar el HTML:
import { createPlugin } from '@/utils';
export default createPlugin({
name: 'Plugin Label',
restartNeeded: true, // si el valor es true, ytmusic mostrará el diálogo de reinicio
config: {
enabled: false,
}, // tu configuración personalizada
renderer() {
// Elimina el botón de inicio de sesión
document.querySelector(".sign-in-link.ytmusic-nav-bar").remove();
} // define el hook del renderizador
});
- comunicación entre el front y el back: se puede hacer utilizando el módulo ipcMain de electron. Ver archivo
index.ts
y ejemplo en el pluginsponsorblock
.
- Clonar el repositorio
- Seguir esta guía para instalar
pnpm
- Ejecutar
pnpm install --frozen-lockfile
para instalar las dependencias - Ejecutar
pnpm build:OS
pnpm dist:win
- Windowspnpm dist:linux
- Linux (amd64)pnpm dist:linux:deb-arm64
- Linux (arm64 para Debian)pnpm dist:linux:rpm-arm64
- Linux (arm64 para Fedora)pnpm dist:mac
- macOS (amd64)pnpm dist:mac:arm64
- macOS (arm64)
Construye la aplicación para macOS, Linux y Windows, utilizando electron-builder.
pnpm start
pnpm test
Utiliza Playwright para probar la aplicación.
MIT © th-ch
Si la opción Ocultar menú
está activada - puedes mostrar el menú con la tecla alt (o ` [acento grave] si estás utilizando el plugin in-app-menu)