Irgendwelche Spotify-Optimierungen mit Tastaturkürzel für Sternspuren?


20

Ich bin ein Premium-Abonnent von Spotify und ein besessener Produktivitätsfreak.

Eine Sache, die mich wirklich ärgert, ist, dass es keine Tastenkombination gibt, mit der ich einen Titel markieren kann (dh, ich füge einen Titel zu den Favoriten hinzu). Ich lasse Spotify-Radio gerne eingeschaltet, während ich arbeite. Von Zeit zu Zeit muss ich mit der rechten Maustaste auf den Titel klicken und dann "Star" auswählen, wann immer ich einen Song höre, den ich wirklich mag.

Gibt es Spotify-Tweaks / -Plugins, mit denen ich Tracks mit einem Tastaturkürzel markieren kann?


Verwenden Sie Windows Media Player?
Diogo

Nein, nur Spotify
Eddy

Antworten:


3

Klar, benutze AutoHotkey !

Sobald Sie es installiert haben, fügen Sie dies in Ihre AutoHotkey.ahk-Datei ein:

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

Dies fügt einen Win + Asterisk-Hotkey hinzu, der den gerade abgespielten Titel markiert.

Möglicherweise interessieren Sie sich auch für andere Spotify-Verknüpfungen für AutoHotkey.


1
Das Problem ist, dass spotify auch denselben Speicherort hat, wenn Sie auf einen Track UNSTAR klicken. wurde so zu becareful einhüllen Sie Aufheben der Markierung eine Sterne - Spur ahk - Methode
ms. mann

2

Ich habe die andere Autohotkey-Verknüpfung ausprobiert und sie hat bei mir nicht funktioniert (ich habe nur auf Spotify umgeschaltet und zwei tote Punkte angeklickt). Ich habe Folgendes entwickelt, das funktioniert, solange Sie "Großes aktuelles Kunstwerk" ausgewählt haben:

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

Es macht Folgendes:

  • Speichert das aktuell aktive Fenster
  • Aktiviert Spotify
  • Berechnet die Offsets für das Klicken auf das Albumcover relativ zum Spotify-Fenster
  • Stars, was gerade abgespielt wird
  • Stellt das zuvor aktive Fenster wieder her

Es ist nicht perfekt (wird wahrscheinlich nicht glücklich sein, wenn Sie aus irgendeinem Grund Spotify haben, das meistens rechts von Ihrem Bildschirm hängt), erledigt aber in den meisten Fällen die Arbeit.


Das ist toll! Vielen Dank. Eine Verbesserung wäre, das letzte Kontextmenüelement zu lesen, um zu sehen, ob Unstar angezeigt wird, und wenn ja, nicht darauf zu klicken. Wenn ich dazu komme, komme ich zurück und poste.
GollyJer

2

Markiert ist keine Sache mehr.

Hier finden Sie die aktualisierten Fragen und Antworten.


Alte Antwort hier unten ...

Hier ist eine andere AutoHotkey- Lösung. Es gibt liberale Kommentare. Auf Wunsch können Sie auch die AutoHotkey-Dokumentation und -Foren lesen.

Durch Drücken von Strg + Umschalt + * wird das aktive Lied markiert.
Ein wichtiges Merkmal dieses Skripts ist, dass es prüft, ob das Lied bereits markiert ist, und es in diesem Fall in Ruhe lässt.

^+*::
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
}

Das funktioniert nicht mehr. Siehe meine Lösung.
TIG

0

Ich habe nicht den Repräsentanten, um dies in einen Kommentar zu GollyJers Antwort einzufügen, aber als ich versuchte, dieses Skript zu verwenden, bemerkte ich, dass es ein Problem mit den Tastenanschlägen {down} gab, das es irgendwie dazu brachte, den markierten Titel in der Wiedergabeliste nach unten zu verschieben , anstatt im Menü nach unten zu gehen. Ich habe es geändert, um einen Mausklick auf den Menüeintrag "Stern" zu machen, anstatt die Tasten zu verwenden. Es scheint ziemlich gut zu funktionieren. Ich habe es auch bearbeitet, um Spotify zu minimieren, bevor es zu dem von Ihnen verwendeten Fenster zurückkehrt, wenn es zunächst minimiert wurde.

^+*::
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
}


0

Die Lösungen, die davon abhängen, dass es einen "Stern" -Befehl gibt, funktionieren nicht mehr ... Es gibt keinen Stern-Befehl mehr, aber "Markiert" ist ein Ordner, zu dem Elemente hinzugefügt werden können. Dieses Skript macht das.

; 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

0

Spotify hat keinen "Stern" mehr und ich kann den Inhalt des Kontextmenüs anscheinend auch nicht mehr abrufen. Bei dieser Methode wird eine Pixelfarbe im Kontextmenü angezeigt und mit den Pfeiltasten ausgewählt. Funktioniert, wenn maximiert, minimiert und das Albumcover groß oder klein ist.

^+*::
{
    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
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.