Mit einem aktuellen Pull Request wurde die bestehende Raycast-Erweiterung für YouTube Music umfassend erweitert. Die Ergänzungen ermöglichen nicht nur eine präzisere Steuerung von Musik- und Video-Inhalten auf YouTube, sondern machen die Integration stabiler, flexibler und plattformübergreifend nutzbar – sowohl für Musikliebhaber als auch für Power-User.
Die Erweiterung unterstützt jetzt neben dem bekannten „Like“- und „Dislike“-Verhalten auch das Zurücknehmen von Likes, eine klare URL-Präferenzsteuerung sowie eine verbesserte Logik für Trackwechsel. Grundlage dafür ist ein umfassender Pull Request von Carlo von Reyher, der gemeinsam mit weiteren Open-Source-Contributors entwickelt wurde.
Erweiterungen im Detail
Neue Funktion: „Remove Like“
Mit dem neuen Command Remove Like
können Nutzer ein Like von einem aktuell abgespielten Titel entfernen – sowohl auf YouTube Music als auch auf YouTube. Dabei wird der Status der Schaltfläche vorab geprüft, um unbeabsichtigte Zustandsänderungen zu verhindern.
Die Funktion ist vollständig HUD-integriert und gibt unmittelbares Feedback („Like removed“, „Track not liked“, etc.).
Verbesserte Like-/Dislike-Logik
Die bestehenden Befehle Like
und Dislike
wurden überarbeitet, um unbeabsichtigte Doppelklicks zu vermeiden. Es wird nun vor der Ausführung überprüft, ob der Song bereits geliked oder disliked wurde. Auch diese Befehle liefern klares Feedback via Raycast-HUD.
Steuerung von Next/Previous Track
Die Kommandos zum Überspringen und Wiederholen von Titeln wurden grundlegend überarbeitet. Dabei wurde die DOM-Logik auf den neuesten Stand gebracht, damit diese sowohl auf der klassischen Web-Oberfläche von YouTube als auch im PWA-Modus stabil funktionieren. Zusätzlich wird berücksichtigt, ob Buttons vorhanden sind, ob ein Track abgespielt wird oder ein Video neu startet.
URL-Präferenz in den Einstellungen
Nutzer können in den Raycast-Einstellungen jetzt festlegen, auf welche Plattform sich die Kommandos beziehen sollen:
- Nur YouTube
- Nur YouTube Music
- Beide Plattformen
Dies macht die Erweiterung deutlich anpassungsfähiger und ermöglicht parallele Nutzung im Multi-Tab-Szenario.
Technische Überarbeitungen
Neben den funktionalen Erweiterungen wurden zentrale Architekturkomponenten refaktoriert:
- Die Utility-Funktion
runJSInYouTubeMusicTab
wurde modularisiert und prüft nun die korrekte URL-Präferenz. - Es wurden zusätzliche Hilfsfunktionen (
escapeJS
,getUrlCondition
) eingeführt, um die Wartbarkeit und Lesbarkeit des Codes zu verbessern. - Der Code wurde auf konsistente Fehlerbehandlung optimiert und für Edge-Cases abgesichert.
Repository-Hygiene und Dokumentation wurden im Zuge dessen ebenfalls überarbeitet:
.gitignore
wurde aktualisiertCHANGELOG.md
dokumentiert die neuen Funktionen- Alle Commands wurden erfolgreich linted, getestet und als Build validiert
Mitwirkende & Community
Dieses Update wurde initiiert und umgesetzt von Carlo von Reyher. Darüber hinaus bedanken wir uns bei den folgenden aktiven Contributor:innen, deren Arbeit die Erweiterung ermöglicht und verbessert hat:
Die Erweiterung wurde ursprünglich von Daniel Bird eingereicht und ist weiterhin über den offiziellen Store erreichbar:
👉 Raycast Extension: YouTube Music
Anleitung zur Installation
- Raycast öffnen (
⌘ + Space
) - “Store” auswählen und öffnen
- “YouTube Music” im Store suchen
- Erweiterung installieren
- In den Extension Preferences die gewünschte Plattform (YouTube / YouTube Music) auswählen
- Raycast-Befehle nutzen – ohne Browserwechsel, direkt per Tastatur
Verfügbare Befehle:
Like Song
Dislike Song
Remove Like
Next Track
Previous Track
Fazit
Die überarbeitete Raycast-Erweiterung bietet nun eine robuste, präzise und plattformübergreifende Steuerung für YouTube und YouTube Music. Durch die neuen Funktionen, klare Feedbackmechanismen und konfigurierbare URL-Präferenzen wird die Integration ein noch leistungsfähigeres Tool für den täglichen Workflow – intuitiv bedienbar und offen für künftige Erweiterungen.
Für Feedback, Feature-Vorschläge oder technische Beiträge steht der Pull Request weiterhin zur Diskussion offen: