⏱️ Lectura: 12 min

Si usás macOS y Spotify (o cualquier reproductor que no sea el nativo), conocés la molestia: pulsás la tecla ▶ Play del teclado, o terminás una llamada con los auriculares Bluetooth, y de la nada se abre Apple Music. Una utilidad diminuta llamada Music Decoy resuelve esto con un truco elegante y sin gastar un solo ciclo de CPU.

📑 En este artículo
  1. TL;DR
  2. Qué es Music Decoy y qué problema resuelve
  3. Cómo funciona: el truco del bundle identifier
  4. El verdadero culpable: el daemon rcd
  5. Instalación y uso
  6. Configurar otra app al pulsar Play
  7. Alternativas y el mismo problema en otros sistemas
    1. En macOS
    2. En Windows
    3. En Linux
  8. Por qué este tipo de utilidades importan
  9. Preguntas frecuentes
    1. ¿Music Decoy consume batería o CPU?
    2. ¿Es seguro usar el bundle identifier de Apple?
    3. ¿Cómo cierro Music Decoy si no tiene icono?
    4. ¿Puedo hacer que se abra Spotify en lugar de bloquear todo?
    5. ¿Existe algo equivalente en Windows o Linux?
    6. ¿Qué pasa si simplemente desactivo el daemon rcd?
  10. Referencias

Lo interesante no es lo que hace, sino lo poco que hace: no vigila procesos, no corre tareas en segundo plano. Simplemente existe y, por existir, engaña al sistema. Veamos cómo, por qué macOS se comporta así y qué equivalentes hay en Windows y Linux.

TL;DR

  • Music Decoy es una app gratuita de macOS que impide que Apple Music se abra al pulsar la tecla Play o conectar auriculares Bluetooth.
  • El truco: registra el mismo bundle identifier que Music (com.apple.Music), así el sistema cree que la app ya está corriendo.
  • No consume CPU: solo existe como proceso, sin trabajo en segundo plano ni icono en el Dock o la barra de menú.
  • Se instala con brew install music-decoy y se cierra con killall ‘Music Decoy’ o desde el Monitor de Actividad.
  • Desde v1.1 podés configurar otra app (ej. Spotify) para que se abra al pulsar Play con un comando defaults write.
  • El culpable real es rcd (Remote Control Daemon), que lanza Music cuando ningún otro programa reproduce audio.
  • Alternativas: noTunes en macOS, AutoHotkey en Windows y desactivar MPRIS o remapear teclas multimedia en Linux.

Qué es Music Decoy y qué problema resuelve

Music Decoy es una aplicación para macOS publicada por lowtechguys que ataca un punto de fricción específico del sistema operativo de Apple. Mientras la app esté corriendo, la aplicación Music del sistema no se abrirá cuando pulses accidentalmente ▶ Play. Eso es todo. No tiene panel de preferencias intrusivo, no aparece en el Dock ni en la barra de menú, y según su autor «no hace absolutamente ningún trabajo en segundo plano».

El escenario es familiar para cualquier desarrollador o usuario de LATAM que tenga un MacBook y prefiera Spotify, YouTube Music, Deezer o un reproductor local: estás escribiendo código, tu dedo roza la fila de teclas función, y de golpe Apple Music salta a primer plano con su biblioteca vacía o, peor, empieza a reproducir una canción al azar. Music Decoy elimina esa interrupción de raíz.

💭 Clave: La filosofía de Music Decoy es que la mejor utilidad de fondo es la que no hace nada. Cuanto menos código corre, menos batería gasta y menos puede fallar.
Teclado de MacBook con la tecla Play multimedia que dispara Apple Music
La tecla Play del teclado es el disparador más común de la molestia.

Cómo funciona: el truco del bundle identifier

Cada aplicación de macOS se identifica con un bundle identifier, una cadena en estilo DNS invertido que vive en el archivo Info.plist del paquete .app. El de la app nativa es com.apple.Music. El sistema usa ese identificador para saber qué apps están instaladas y, sobre todo, cuáles están corriendo en un momento dado.

Music Decoy se aprovecha de esto de la forma más directa posible: declara en su propio Info.plist exactamente el mismo identificador, com.apple.Music. Cuando Music Decoy arranca, el sistema registra que ya hay un proceso vivo con ese bundle ID. Por lo tanto, cuando algo intenta «lanzar Music», macOS concluye que la app ya está abierta y no hace nada más. La app real nunca se ejecuta.

<!-- Fragmento conceptual del Info.plist de Music Decoy -->
<key>CFBundleIdentifier</key>
<string>com.apple.Music</string>

Es un caso de suplantación benigna de identidad de aplicación. No modifica el sistema, no requiere permisos especiales de accesibilidad ni desactiva la Protección de Integridad del Sistema (SIP). Solo ocupa, pacíficamente, el lugar que el sistema reservaría para Music.

El verdadero culpable: el daemon rcd

Para entender por qué Music se abre sola, hay que mirar más abajo, a un componente del sistema llamado rcd, abreviatura de Remote Control Daemon. Este daemon es el responsable de manejar las teclas multimedia del teclado y los comandos que envían los dispositivos Bluetooth.

La lógica de rcd es la siguiente: cuando ocurre un evento de Play, revisa si hay alguna aplicación reproduciendo audio en ese instante. Si la hay, le reenvía el comando de reproducción a esa app. Si no hay ninguna, decide que el usuario quiere escuchar música y lanza la app Music del sistema como destino por defecto. Ese comportamiento de respaldo es precisamente el que molesta.

Music Decoy no toca a rcd. Lo deja seguir su lógica intacta, pero como ya cree que Music está corriendo, el «lanzamiento» no produce ninguna ventana nueva.

graph TD
A["Pulsás la tecla Play"] --> B{"¿Hay app reproduciendo audio?"}
B -->|"Sí"| C["rcd reenvía Play a esa app"]
B -->|"No"| D["rcd intenta lanzar Music.app"]
D --> E["Music Decoy ya ocupa com.apple.Music"]
E --> F["El sistema cree que Music ya corre: no abre nada"]

Hay tres momentos típicos en los que rcd dispara la apertura de Music, según documenta el autor:

  • Tecla Play sin audio activo — pulsás ▶ Play y ninguna otra app está reproduciendo sonido.
  • Conexión de auriculares Bluetooth — al emparejarse, muchos audífonos envían un comando de play automático.
  • Fin de una llamada — el auricular cambia de «modo llamada» a «modo música» y emite un play que despierta a Music.

Instalación y uso

La vía más cómoda es Homebrew, el gestor de paquetes de facto en macOS. En la terminal:

# macOS (Homebrew) — instalar
brew install music-decoy

Como Music Decoy no tiene icono en el Dock ni en la barra de menú, surge la pregunta lógica: ¿cómo lo cierro? Hay dos caminos:

# macOS — cerrar la app por línea de comandos
killall 'Music Decoy'

O bien abrir el Monitor de Actividad, buscar «Music Decoy» en la lista de procesos y pulsar el botón ❌ de la barra superior para forzar la salida. Ambos métodos son equivalentes.

💡 Tip: Si querés que Music Decoy arranque al iniciar sesión, agregalo como ítem de inicio en Ajustes del Sistema → General → Ítems de inicio. Así el escudo está activo desde que prendés la Mac.

Configurar otra app al pulsar Play

Desde la versión 1.1, Music Decoy va un paso más allá: en lugar de simplemente bloquear el lanzamiento, podés redirigirlo. Si querés que al pulsar ▶ Play se abra tu reproductor preferido (por ejemplo Spotify), basta un comando con defaults, la utilidad nativa de macOS para leer y escribir preferencias:

# macOS — redirigir Play a Spotify
defaults write com.lowtechguys.MusicDecoy mediaAppPath /Applications/Spotify.app

# Restablecer (volver al comportamiento de solo bloqueo)
defaults delete com.lowtechguys.MusicDecoy mediaAppPath

Notá que aquí el identificador es com.lowtechguys.MusicDecoy, el bundle ID propio del proyecto para guardar sus preferencias, distinto del com.apple.Music que suplanta de cara al sistema. Es un detalle de diseño limpio: usa la identidad de Apple solo donde necesita engañar a rcd, y la suya propia para todo lo demás.

Terminal de macOS ejecutando el comando defaults write para configurar Music Decoy
Un comando defaults redirige la tecla Play a la app que elijas.

Alternativas y el mismo problema en otros sistemas

Music Decoy no es el primer intento de domar este comportamiento. La comunidad ha probado varios caminos, cada uno con su contrapartida.

En macOS

  • Desactivar rcd directamentelaunchctl unload -w /System/Library/LaunchAgents/com.apple.rcd.plist. Funciona, pero deshabilita por completo el botón Play: perdés el control de reproducción desde el teclado para todas las apps. Demasiado destructivo.
  • noTunes — una app que escucha los lanzamientos de aplicaciones y mata Music apenas aparece. Es eficaz y popular, pero consume una pizca de CPU porque debe vigilar continuamente qué apps se abren. Music Decoy evita ese costo al no vigilar nada.
⚠️ Ojo: Descargar el daemon rcd con launchctl es reversible, pero te deja sin teclas multimedia hasta que lo vuelvas a cargar o reinicies. No es la solución que querés si usás esas teclas con Spotify u otros reproductores.

En Windows

Windows tiene su propia versión del problema: la tecla multimedia puede abrir Groove, el reproductor predeterminado o, en algunos equipos, software del fabricante. La herramienta estándar de la comunidad es AutoHotkey, que permite interceptar y reasignar las teclas multimedia. Un script mínimo para neutralizar la tecla Play (y opcionalmente enviarla a Spotify) se ve así:

; Windows — AutoHotkey v2: interceptar Media_Play_Pause
Media_Play_Pause::
{
    ; Si Spotify está corriendo, mandarle el play; si no, no hacer nada
    if WinExist("ahk_exe Spotify.exe")
        ControlSend("{Media_Play_Pause}", , "ahk_exe Spotify.exe")
    return
}

En Linux

En Linux el manejo de teclas multimedia pasa por MPRIS (el estándar de control de reproductores sobre D-Bus) y por el entorno de escritorio. Si una app no deseada captura el evento, podés remapear la tecla en GNOME/KDE o interceptarla con una herramienta de bajo nivel. Un ejemplo con playerctl para dirigir el play explícitamente a un reproductor concreto:

# Linux — enviar Play solo a Spotify vía MPRIS
playerctl --player=spotify play

# Listar qué reproductores están registrados en MPRIS
playerctl --list-all

La lección transversal es la misma en los tres sistemas: el «play global» del teclado necesita un destino por defecto, y cuando ese destino no es el que querés, hay que interceptar o suplantar al intermediario que toma la decisión.

Por qué este tipo de utilidades importan

Music Decoy es un ejemplo de manual de ingeniería minimalista: en vez de pelear contra el sistema con un proceso vigilante, encuentra la pieza exacta que toma la decisión equivocada (rcd) y le presenta un estado del mundo que lo desactiva sin efectos colaterales. Para desarrolladores, es un recordatorio de que entender cómo el sistema operativo resuelve identidades y eventos a menudo abre soluciones más limpias que cualquier hack a fuerza bruta.

También es una pequeña lección de seguridad y diseño de plataformas: el hecho de que una app de terceros pueda registrar com.apple.Music y «hacerse pasar» por la app del sistema muestra que el bundle identifier es una convención de confianza, no un mecanismo de autenticación. En este caso el resultado es benigno y útil, pero ilustra por qué macOS añade capas como la firma de código y la notarización para casos donde la suplantación sí sería peligrosa.

📖 Resumen en Telegram: Ver resumen

Preguntas frecuentes

¿Music Decoy consume batería o CPU?

Prácticamente nada. A diferencia de alternativas como noTunes, no vigila procesos ni corre tareas periódicas. Solo necesita existir como proceso vivo para que el sistema crea que Music ya está abierta, por lo que su impacto en CPU y batería es despreciable.

¿Es seguro usar el bundle identifier de Apple?

Para el uso que le da Music Decoy, sí. No modifica archivos del sistema, no desactiva SIP ni pide permisos sensibles. Simplemente declara el mismo identificador en su propio paquete. El efecto es local a tu sesión y totalmente reversible cerrando la app.

¿Cómo cierro Music Decoy si no tiene icono?

Tenés dos opciones: ejecutar killall 'Music Decoy' en la terminal, o abrir el Monitor de Actividad, buscar el proceso «Music Decoy» y forzar su salida con el botón ❌ de la barra superior.

¿Puedo hacer que se abra Spotify en lugar de bloquear todo?

Sí, desde la versión 1.1. Con el comando defaults write com.lowtechguys.MusicDecoy mediaAppPath /Applications/Spotify.app redirigís la tecla Play a la app que indiques. Para revertirlo usá defaults delete con la misma clave.

¿Existe algo equivalente en Windows o Linux?

No exactamente igual, porque el truco depende del modelo de bundle identifiers de macOS. En Windows se logra un efecto parecido interceptando la tecla con AutoHotkey, y en Linux remapeando las teclas multimedia o dirigiendo el comando con playerctl a través de MPRIS.

¿Qué pasa si simplemente desactivo el daemon rcd?

Podés hacerlo con launchctl unload, pero perderás el control de reproducción desde las teclas multimedia para todas las aplicaciones, no solo para Music. Por eso Music Decoy es preferible: mantiene rcd funcionando y solo neutraliza el lanzamiento no deseado.

Referencias

📱 ¿Te gusta este contenido? Únete a nuestro canal de Telegram @programacion donde publicamos a diario lo más relevante de tecnología, IA y desarrollo. Resúmenes rápidos, contenido fresco todos los días.

Categorías: Noticias Tech

Andrés Morales

Desarrollador e investigador en inteligencia artificial. Escribe sobre modelos de lenguaje, frameworks, herramientas para devs y lanzamientos open source. Cubre papers de ML, ecosistema de startups tech y tendencias de programación.

0 Comentarios

Deja un comentario

Marcador de posición del avatar

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.