Skip to content

Latest commit

 

History

History
390 lines (280 loc) · 15.9 KB

README-es.md

File metadata and controls

390 lines (280 loc) · 15.9 KB

YouTube Music

GitHub release GitHub license eslint code style Build status GitHub All Releases AUR Known Vulnerabilities

Screenshot

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

Imagen de demostración

Pantalla del reproductor (color del álbum como tema y luz ambiental)
Screenshot1

Contenido

Características:

  • 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 ...

Plugins disponibles:

  • 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

  • Tuna OBS: Integración con el complemento Tuna de OBS

  • 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

Traducción

Puedes ayudar con la traducción en Hosted Weblate.

estado de traducción estado de traducción 2

Descarga

Puedes consultar la última versión para encontrar rápidamente la versión más reciente.

Arch Linux

Instala el paquete youtube-music-bin desde AUR. Para obtener instrucciones de instalación de AUR, consulta esta página del wiki.

macOS

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:

xattr -cr /Applications/YouTube\ Music.app

Windows

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

Cómo instalar sin conexión a Internet? (en Windows)

  • Descarga el archivo *.nsis.7z para la arquitectura de tu dispositivo en la página de lanzamientos.
    • x64 para Windows de 64 bits
    • ia32 para Windows de 32 bits
    • arm64 para Windows ARM64
  • Descarga el instalador en la página de lanzamientos. (*-Setup.exe)
  • Colócalos en el mismo directorio.
  • Ejecuta el instalador.

Temas

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.

Dev

git clone https://github.com/th-ch/youtube-music
cd youtube-music
pnpm install --frozen-lockfile
pnpm dev

Crea tus propios plugins

Usando plugins, puedes:

  • manipular la aplicación - se pasa el BrowserWindow de electron al controlador del plugin
  • cambiar la interfaz manipulando el HTML/CSS

Creación de un plugin

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) {},
  },
});

Casos de uso comunes

  • 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 plugin sponsorblock.

Compilar

  1. Clonar el repositorio
  2. Seguir esta guía para instalar pnpm
  3. Ejecutar pnpm install --frozen-lockfile para instalar las dependencias
  4. Ejecutar pnpm build:OS
  • pnpm dist:win - Windows
  • pnpm 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.

Vista previa de producción

pnpm start

Tests

pnpm test

Utiliza Playwright para probar la aplicación.

Licencia

MIT © th-ch

Preguntas frecuentes

¿Por qué no se muestra el menú de aplicaciones?

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)