Añadir soporte de links spotify en firefox

Quien dice spotify, podría decir ed2k o el protocolo que vuesa merced guste. El proceso siempre es el mismo:

  1. Abrir about:config en firefox
  2. Añadir par de booleanos (valores lógicos):
    • network.protocol-handler.external.spotify a true
    • network.protocol-handler.warn-external.spotify a false
  3. Añadir una cadena network.protocol-handler.app.spotify con valor /usr/bin/spotify
  4. Crear un ejecutable (en este caso en /usr/bin/spotify y teniendo en cuenta dónde lo instalamos anteriormente)
    #!/bin/sh
    exec wine "C:\Program Files\Spotify\spotify.exe" /uri "$@"

16 Thoughts on “Añadir soporte de links spotify en firefox

  1. sucotronic on 5 February, 2009 at 9:20 said:

    Vaya, ya me había hecho ilusiones con que existiese una versión para linux, hasta que he visto la ñapa con wine 😛

  2. No es ninguna ñapa, a decir verdad funciona perfectamente e incluso en la propia web te dicen que uses wine si eres usuario de linux.

  3. kriparam on 12 May, 2009 at 18:22 said:

    Hola,yo en ubuntu, he seguido los pasos desde la página oficial donde te piden crear un ejecutable en ~/.browswe2spotify
    pero me lío con la dirección pues yo el spotify.exe lo tengo en:
    /proc/13371/fd/6/spotify.exe
    y poniendo esta dirección en exec no se abren los enlaces en firefox.
    Tú dices de ponerlo en /usr/bin pero si no tengo el spotify allí me da la impresión de que no va a funcionar. ¿puedes aclararme esto?. Gracias

  4. kriparam on 12 May, 2009 at 18:38 said:

    Explico mejor lo que he hecho:
    :~$ echo ‘#!/bin/sh’ > ~/.browser2spotify

    kriparam@kriparam:~$ echo ‘exec wine “/home/kriparam/.wine/drive_c/Archivos de programa/Spotify/spotify.exe” /uri “$@”‘ >> ~/.browser2spotify

    kriparam@kriparam:~$ chmod 755 ~/.browser2spotify.

    Aparte claro de los cambios del about:config.
    Y no funciona

    • Prueba a ejecutarlo desde una consola, así sabrás si es problema del script (que diría que no) o de configuración en el firefox. Ejecuta esto y debería abrirte el spotify con un álbum de música clásica 🙂
      $ ~/.browser2spotify spotify:album:1n0EJpaO0sl9GmK1AQuvT

      • kriparam on 12 May, 2009 at 20:25 said:

        Gracias por responder. Esto es lo que me sale:

        kriparam@kriparam:~$ ~/.browser2spotify spotify:album:1n0EJpaO0sl9GmK1AQuvT
        fixme:reg:GetNativeSystemInfo (0x6e2577) using GetSystemInfo()
        fixme:toolhelp:CreateToolhelp32Snapshot Unimplemented: heap list snapshot
        fixme:thread:NtSetInformationThread info class 17 not supported yet
        fixme:imagehlp:CheckSumMappedFile (0xdb0000, 1957884, 0x72b78c, 0x72b790): stub
        fixme:debugstr:CheckRemoteDebuggerPresent (0xffffffff)->(0x7318e1): Stub!

      • Todos esos errores que te salen no pasa nada, es de wine quejándose de cosas, pero el programa se te lanzará igualmente, ¿no?. ¿Te sale la lista?

        $ ~/.browser2spotify spotify:album:5Y3ydtN5nEFpfdisJW2xNU

        Debería salirte disco de Second – Fracciones de un segundo.

      • kriparam on 13 May, 2009 at 22:20 said:

        Hola,
        Sí lo abre. No sé si antes lo había probado con el programa ya abierto o qué. Y, sí, aparece el Second con sus fracciones de segundo.
        Entonces ¿por qué me aparece el mensaje:

        Firefox no sabe cómo abrir esta dirección, porque el protocolo (spotify) no está asociado con ningún programa?.
        El about:config está como decía la web de spotify:

        network.protocol-handler.app.spotify ;~/.browser2spotify
        network.protocol-handler.external.spotify;true.
        Un saludo

    • te falta declarar network.protocol-handler.warn-external.spotify

      • kriparam on 15 May, 2009 at 0:19 said:

        Ya he añadido el network.protocol-handler.warn-external.spotify, pero sigue igual. Un saludo.

  5. Antesc on 31 July, 2009 at 19:54 said:

    hola he echo todo los pasos, va bien pero en consola , he puesto about:config
    network.protocol-handler.app.spotify ; /usr/bin/spotify
    Lo unico que consigo con ello es que no salga el mensaje de que no hay ninguna aplicación asociada, lo raro que desde consola pongo spotify y el enlace, funciona correctamente.

  6. Anonymous on 9 November, 2009 at 0:46 said:

    network.protocol-handler.expose.spotify puesto a false ha sido la clave para que me funcionara por fin
    Saludos

  7. rramos on 10 January, 2010 at 19:30 said:

    Por lo visto este método es válido para Firefox <= 3.0. Para 3.5 hay que registrar el protocolo creando la entrada network.protocol-handler.expose.spotify = false.
    http://kb.mozillazine.org/Register_protocol

    Luego se le asocia el script en Preferencias/Programas, o cuando te lo pregunte al abrir un link.

    • Saludos,
      Lo que comenta rramos me funciono, solo un logico
      network.protocol-handler.expose.spotify = false
      y listo Gracias

  8. Alexis on 2 September, 2010 at 0:20 said:

    Tengo mil dudas pues soy nuevo en linux, pero he seguido todos los pasos y he conseguido que al pulsar sobre un playlist de Spotify desde Firefox se abra Spotify, pero no obtengo el Playlist, simplemente se abre.

    Comentar que lo del ejecutable no lo he hecho porque no se hacerlo, si alguien me lo pudiera explicar…

    Gracias.

  9. Phoenix on 11 January, 2011 at 16:43 said:

    @blaxter

    A ver si me puedes ayudar a mi también.
    Sistema operativo Ubuntu 10.10, navegador Firefox 3.6.
    Bien, yo también he seguido los pasos indicados por la página de Spotify:
    Para poder abrir las URI de Spotify, necesitas en primer lugar un sencillo script:

    echo ‘#!/bin/sh’ > ~/.browser2spotify
    echo ‘exec wine “C:\Archivos de programa\Spotify\spotify.exe” /uri “$@”‘ >> ~/.browser2spotify
    chmod 755 ~/.browser2spotify

    Y después vi tu respuesta a @kriparam y probé a abrir desde terminal. Efectivamente se abre el programa de Spotify y me aparece la lista; aún así desde firefox no conseguía esto.
    Por lo tanto seguí tu siguiente consejo “te falta declarar network.protocol-handler.warn-external.spotify”
    Bien, los links siguen sin abrirse desde firefox.
    Así que seguí el siguiente consejo dado aquí “network.protocol-handler.expose.spotify puesto a false ha sido la clave para que me funcionara por fin” y sigo en las mismas.
    Esto es, desde el terminal se abre todo perfectamente.
    Desde Firefox todo lo más que consigo es asociar el tipo de links de spotify a spotify.exe (situado en /.wine/drive_c/Archivos de programa/Spotify). En este último caso lo que sucede es que se abre el programa pero no me aparecen la lista del link.
    Ahora y después de tener añadido todo lo anterior, también he conseguido asociar los links de spotify a .browser2spotify pero en ese caso no sucede nada.

    Por si te es necesario esto es lo que me aparece en el terminal cuando abro un link desde él:
    fixme:toolhelp:CreateToolhelp32Snapshot Unimplemented: heap list snapshot
    fixme:advapi:RegisterEventSourceW ((null),L”Spotify”): stub
    fixme:winsock:WSALookupServiceBeginW (0x2b6ea24 0x00000ff1 0x277a018) Stub!
    fixme:dwmapi:DwmIsCompositionEnabled 0x32fbc8
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETSTATE): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=0): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=1): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=2): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=3): stub
    shm_open() failed: Permiso denegado
    shm_open() failed: Permiso denegado
    shm_open() failed: Permiso denegado
    fixme:hnetcfg:fw_app_get_Enabled 0x16b160, 0x32f49c
    fixme:hnetcfg:fw_app_put_ProcessImageFileName 0x16b160, L”C:\\Archivos de programa\\Spotify\\spotify.exe”
    fixme:hnetcfg:fw_app_put_Name 0x16b160, L”Spotify”
    fixme:hnetcfg:fw_apps_Add 0x16b0b0, 0x16b160
    fixme:win:RegisterShellHookWindow (0x1004e): stub
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:winhttp:WinHttpGetIEProxyConfigForCurrentUser returning no proxy used
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETSTATE): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=0): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=1): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=2): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=3): stub
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:advapi:GetCurrentHwProfileW (0x32f4b4)
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETSTATE): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=0): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=1): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=2): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=3): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETSTATE): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=0): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=1): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=2): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=3): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETSTATE): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=0): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=1): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=2): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=3): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETSTATE): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=0): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=1): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=2): stub
    fixme:appbar:handle_appbarmessage SHAppBarMessage(ABM_GETAUTOHIDEBAR, hwnd=(nil), edge=3): stub
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags
    fixme:ntdll:NtQueryInformationProcess (process=0xffffffff) Unimplemented information class: ProcessDebugFlags

    Esta última línea se va repitiendo sucesivamente hasta que cierro Spotify o el terminal (cierre el que cierre primero, el otro se cierra al mismo tiempo).

    Siento molestarte, de verdad. Pero es que ya he intentado todos los pasos posibles de todas las páginas que he encontrado y… parece que tú entiendes bastante del tema…
    Muchísimas gracias por adelantado

Post Navigation