Quaisquer ajustes do Spotify com o atalho do teclado para as faixas 'star'?

21

Sou assinante premium do Spotify e sou um nerd obsessivo em produtividade.

Uma coisa que realmente me incomoda é que não há um atalho de teclado para 'estrelar' uma faixa (por exemplo, adicionar uma faixa aos favoritos). Eu gosto de deixar o rádio do Spotify ligado enquanto eu estou trabalhando e de vez em quando eu tenho que abaixar e clicar com o botão direito na faixa e então selecionar 'Star' sempre que eu ouço uma música que eu realmente gosto.

Existe algum tweet / plugins do Spotify que me permita 'star' tracks com atalhos de teclado?

    
por Eddy 17.08.2011 / 19:12

7 respostas

3

Claro, use o AutoHotkey !

Uma vez instalado, coloque isso no seu arquivo AutoHotkey.ahk:

#*::
WinWait, Spotify, 
IfWinNotActive, Spotify, , WinActivate, Spotify, 
WinWaitActive, Spotify, 
MouseClick, left,  79,  90
Sleep, 100
MouseClick, left,  256,  152
Sleep, 100
return

Isso adiciona uma tecla de atalho Win + Asterisk que vai estrelar a faixa que está tocando.

Você também pode estar interessado em outros atalhos do Spotify para o AutoHotkey.

    
por 31.08.2011 / 01:26
2

Eu tentei o outro atalho Autohotkey e não funcionou para mim (apenas mudou para spotify e clicou em dois pontos mortos). Eu criei o seguinte, que funciona desde que você tenha "Large Now Playing Artwork" selecionado:

CoordMode, Mouse, Relative
;star currently playing
+^l::
SpotifyWinHeight = 1050 ;set to 1080 - 30 for small taskbar size, just in case WinGetPos doesn't work for some reason
WinGetActiveTitle, CurWindow
WinActivate Spotify
WinWaitActive Spotify
WinGetPos,  ,  ,  , SpotifyWinHeight, Spotify
;          X  Y  W  H, we don't care about anything but height
RightClickTarget := SpotifyWinHeight - 250
ContextMenuTarget := RightClickTarget + 110
MouseMove, 100, %RightClickTarget%
Click Right
Sleep, 50
MouseMove, 180, %ContextMenuTarget%
Sleep, 50
Click
WinActivate %CurWindow%
return

Ele faz o seguinte:

  • Armazena a janela ativa no momento
  • ativa o Spotify
  • Calcula os deslocamentos para clicar na capa do álbum em relação à janela de spotify
  • Mostra o que está sendo reproduzido no momento (clique com o botão direito do mouse no trabalho artístico, clique com o botão esquerdo em Estrela)
  • Restaura a janela que estava ativa antes de tudo isso

Não é perfeito (provavelmente não será feliz se, por algum motivo, você mantiver o foco pendurado principalmente na tela para a direita), mas faz o trabalho na maioria dos casos.

    
por 23.05.2012 / 19:31
2

Com estrela não é mais uma coisa.

Vá aqui para as perguntas e respostas atualizadas

Resposta antiga abaixo aqui ...

Aqui está outra solução AutoHotkey . Há comentários liberais. Além disso, a documentação e os fóruns do AutoHotkey são ótimos lugares para aprender, se desejado.

Pressionar Control + Shift + * fará a estrela da música ativa.
Uma das principais características deste script é que ele verifica se a música já está marcada com estrela e deixa a mesma em branco.

^+*::
spotify = ahk_class SpotifyMainWindow
IfWinExist, %spotify%
{
;Store active window and mouse position.
WinGetActiveTitle, activeWindow
MouseGetPos x, y, winID

;Activate Spotify.
WinActivate %spotify%
WinWaitActive %spotify%

;Right click near the song title in the "Now Playing" box.
WinGetPos,  ,  ,  , spotifyHeight, %spotify%
MouseClick, Right, 100, spotifyHeight - 70, 1, 0

;Get the contents of the context menu.
WinWait, ahk_class #32768
SendMessage, 0x1E1      ; MN_GETHMENU
allContextMenuInfo := ErrorLevel

;The "Star" command is the 5th menu item.
;If the song is Unstarred the text is Star, and vice versa. But sometimes some wierd characters are included.
;The only reliable way I found is to check if the first letter is S.
menuText_StarUnstar := GetContextMenuItemText(allContextMenuInfo, 5)
StringGetPos, positionOfS, menuText_StarUnstar, S

;If S is the first letter, star the song.
notStarred := (%positionOfS% = 0)
If notStarred {
    ;Arrow down to the Star menu item and press enter.
    Send {Down}{Down}{Down}{Down}{Down}{Enter}
} Else {
    ;Just close the context menu.
    Send {Escape}
}

;Restore original window and mouse position.
WinActivate ahk_id %winID%
MouseMove %x%, %y%
}

Return

;Conext menu helper function.
GetContextMenuItemText(hMenu, nPos)
{
length := DllCall("GetMenuString"
        , "UInt", hMenu
        , "UInt", nPos
        , "UInt", 0 ; NULL
        , "Int", 0  ; Get length
        , "UInt", 0x0400)   ; MF_BYPOSITION
    VarSetCapacity(lpString, length + 1)
    length := DllCall("GetMenuString"
        , "UInt", hMenu
        , "UInt", nPos
        , "Str", lpString
        , "Int", length + 1
        , "UInt", 0x0400)
return lpString
}
    
por 21.12.2012 / 07:15
0

Eu não tenho o representante para colocar isso em um comentário para a resposta de GollyJer, mas notei que ao tentar usar esse script houve um problema com os pressionamentos das teclas {down} que de alguma forma o moviam a lista de reprodução para baixo, em vez de descer no menu. Eu modifiquei para fazer um clique do mouse na entrada do menu "Estrela" em vez de usar as teclas, parece funcionar muito bem. Eu também o editei para minimizar o Spotify antes que ele volte para a janela que você estava usando se fosse minimizado para começar.

^+*::
spotify = ahk_class SpotifyMainWindow
IfWinExist, %spotify%
{
WinGet, MMX, MinMax, %spotify%
;Store active window and mouse position.
WinGetActiveTitle, activeWindow
MouseGetPos x, y, winID

;Activate Spotify.
WinActivate %spotify%
WinWaitActive %spotify%

;Right click near the song title in the "Now Playing" box.
WinGetPos,  ,  ,  , spotifyHeight, %spotify%
MouseClick, Right, 100, spotifyHeight - 70, 1, 0

;Get the contents of the context menu.
WinWait, ahk_class #32768
SendMessage, 0x1E1      ; MN_GETHMENU
allContextMenuInfo := ErrorLevel

;The "Star" command is the 5th menu item.
;If the song is Unstarred the text is Star, and vice versa. But sometimes some wierd characters are included.
;The only reliable way I found is to check if the first letter is S.
menuText_StarUnstar := GetContextMenuItemText(allContextMenuInfo, 5)
StringGetPos, positionOfS, menuText_StarUnstar, S

;If S is the first letter, star the song.
notStarred := (%positionOfS% = 0)
If notStarred {
    ;Arrow down to the Star menu item and press enter.
    MouseClick, Left, 20, -120, 1, 0,, R
} Else {
    ;Just close the context menu.
    Send {Escape}
}

;Restore original window and mouse position.
IfEqual MMX, -1, WinMinimize, %spotify%
WinActivate ahk_id %winID%
MouseMove %x%, %y%
}

Return

;Context menu helper function.
GetContextMenuItemText(hMenu, nPos)
{
length := DllCall("GetMenuString"
        , "UInt", hMenu
        , "UInt", nPos
        , "UInt", 0 ; NULL
        , "Int", 0  ; Get length
        , "UInt", 0x0400)   ; MF_BYPOSITION
    VarSetCapacity(lpString, length + 1)
    length := DllCall("GetMenuString"
        , "UInt", hMenu
        , "UInt", nPos
        , "Str", lpString
        , "Int", length + 1
        , "UInt", 0x0400)
return lpString
}
    
por 11.03.2013 / 01:04
0

Você também pode experimentar meu Spotify App, Twinkle , que é uma plataforma e solução independente de layout de GUI para visualizar Spotify músicas com um único clique.

    
por 22.09.2013 / 20:05
0

As soluções que dependem de um comando "Estrela" não funcionam mais ... não há mais um comando Estrela, mas "Com estrela" é um item de pasta que pode ser adicionado. Este script faz isso.

; Spotify "Star Song"
^+*::
spotify = ahk_class SpotifyMainWindow
IfWinExist, %spotify%
{
;Store active window and mouse position.
WinGetActiveTitle, activeWindow
MouseGetPos x, y, winID

;Activate Spotify.
WinActivate %spotify%
WinWaitActive %spotify%

;Right click near the song title in the "Now Playing" box.
WinGetPos,  ,  ,  , spotifyHeight, %spotify%
MouseClick, Right, 100, spotifyHeight - 70, 1, 0

;Open Add To... sub-menu
Send {A}

;The "Starred" command is the 2nd menu item. If the song is Starred it will be disabled.
Send {Down}{Enter}

;Restore original window and mouse position.
WinActivate ahk_id %winID%
MouseMove %x%, %y%
}

Return
    
por 18.02.2015 / 19:16
0

Spotify não tem mais a "estrela", e eu não consigo recuperar o conteúdo do menu de contexto mais, então, este método olha para uma cor de pixel no menu de contexto e usa as teclas de seta para selecionar. Funciona se maximizado, minimizado e se a capa do álbum é grande ou pequena.

^+*::
{
    spotify = ahk_class SpotifyMainWindow
    IfWinExist, %spotify% 
    {
        ;Store active window and mouse position.
        WinGet, MMX, MinMax, %spotify%
        WinGetActiveTitle, activeWindow
        MouseGetPos x, y, winID

        ;Activate Spotify.
        WinActivate %spotify%
        WinWaitActive %spotify%

        ;Get maximised status
        WinGet, isMaximised, MinMax

        ;Clear any context menus
        Send {Escape down}{Escape up}

        ;Right click near the song title in the "Now Playing" box.
        WinGetPos,  ,  ,  , spotifyHeight, %spotify%
        MouseClick, Right, 44, spotifyHeight - (isMaximised = 1 ? 75 : 66), 1, 0
        sleep 200
        MouseMove 10,0, ,R
        sleep 200

        ; Determine if the song is already added to your library or not
        ; Look at left edge of the 'S' in Save to Your Library
        ; or the 'R' in Remove from Your Library
        ; 0x282828 is the background color of the menu
        ; if the background color is not present then the song is not in your library
        PixelGetColor, pixelColor, 91, spotifyHeight - (isMaximised = 1 ? 129 : 119)
        if (pixelColor = 0x282828) {
            ;Move up to 'Save to Your Library' and hit enter
            loop, 1 {
                Send {Up down}
                sleep 50
                Send {Up up}
                sleep 50
            }
            Send {Enter down}
            sleep 50
            Send {Enter up}
            sleep 50
        } else {
            ; Already added, so close context menu
            Send {Escape down}
            sleep 50
            Send {Escape up}
            Sleep 50
        }

        ;Restore original window and mouse position.
        IfEqual MMX, -1, WinMinimize, %spotify%
        WinActivate ahk_id %winID%
        MouseMove %x%, %y%

    }
    Return
}
    
por 05.10.2017 / 17:33