English version below
Disclaimer: Ich habe nichts mit diesem Programm oder dessen Entwickler zu tun, und Benutzung meiner oder anderer Programme/Skripte geschieht wie immer auf eigene Gefahr
Hallo,
ich möchte euch heute kurz den Kommandozeilen-Spotify-Client vorstellen, den ich seit über einem Jahr benutze. Ok, ich weiß nich, ob Kommandozeile das richtige Wort ist, schließlich geht es hier nicht um eine CLI-Schnittstelle, sondern eine echte GUI (oder zumindest GUI-like laut Wikipedia), gerendert in einem Terminal-Emulator. Hier ein Bild:
(Source: https://github.com/hrkfdn/ncspot)
Das Projekt ist hier verfügbar (https://github.com/hrkfdn/ncspot), ist gebaut mit Rust und der offenen Bibliothek librespot. Librespot ist keine offizielle API, die offizielle libspotify wurde von Spotify eingestampft; wenn ich mich nicht irre, funktioniert librespot über das Reversen vom Web Player. Librespot funktioniert nach eigener Aussage nur mit Premium-Account.
Das Programm hat auch sonst ein paar Einschränkungen; z.B. ging vor ein paar Monaten das Erstellen einer Radiostation nicht; anhören schon. Auch das Hin- und Herschalten zwischen Geräten wird meines Wissens nach nicht unterstützt; beide lassen sich aber behelfsmäßig über den Web Player machen.
Ansonsten habe ich gelesen, dass das Interface einem typischen MPD-Client nachempfunden ist, wer also in der Richtung bewandert ist oder Spaß an ncurses hat, wird hier auf seine Kosten kommen. Alles wird mit einzelnen Tasten gesteuert, was nach einer etwas steileren Lernkurve doch eine wenigstens für mich komfortablere Navigation erlaubt. Hier ein Screenshot von Tastenbelegungen:
Ich finde, die Meisten sind hinreichend intuitiv. Oft gebraucht habe ich bis jetzt (in beliebiger Reihenfolge:
- [ ] für Lautstärke
- b f bzw Strg-{b,f} für Seeking (Vor- und Zurückspulen)
- s und d für Save to / Delete from Favourites
- Shift-p für Play/pause bzw Enter für Start Song und Space für Queue Song
- F{1-3} für die drei Hauptscreens Queue, Library, Search
- Shift-x für share (Link in Zwischenablage, glaube ich)
- o bzw Shift-o für Aktuelles Lied bzw Gehighlightetes Lied öffnen (öffnet Menü mit Navigationsoptionen)
- r z für Repeat / Shuffle
- < > für Vor/Zurück
und natürlich ? für Hilfe öffnen.
Ich habe beizeiten sogar ein Build Script geschrieben, weil Maintainen einer Build Umgebung für Rust doch etwas nerviger war. Hier ein Screenshot.
und hier der Code: https://pastebin.com/V5Nz7jbG
Man benötigt Rust, Cargo, Git zum Bauen. Ansonsten mal im Paketmanager eures Vertrauens oder in der Anleitung auf dem offiziellen Github schauen. Peace out.
English version
Disclaimer: I have nothing to do with this program or its developer, and use of my or other programs/scripts is as always at your own risk.
Hello,
today I'd like to briefly introduce you to the command line Spotify client I've been using for over a year. Ok, I don't know if command line is the right word, after all we're not talking about a CLI interface here, but a real GUI (or at least GUI-like according to Wikipedia), rendered in a terminal emulator. Here is a picture:
(Source: https://github.com/hrkfdn/ncspot)
The project is available here (https://github.com/hrkfdn/ncspot), is built with Rust and the open library librespot. Librespot is not an official API, the official libspotify has been mashed by Spotify; if I'm not mistaken, librespot works by reversing from the web player. Librespot, by its own admission, only works with premium account.
The program also has a few other limitations; for example, creating a radio station didn't work a few months ago; listening to it did. Switching back and forth between devices is also not supported, as far as I know; but both can be done makeshift via the web player.
Otherwise, I've read that the interface is modeled after a typical MPD client, so if you're into that or enjoy ncurses, you'll get your money's worth here. Everything is controlled with single keys, which after a somewhat steep learning curve allows a more comfortable navigation, at least for me. Here is a screenshot of key assignments:
I think most of them are sufficiently intuitive. Often I have used so far (in any order:
- [ ] for volume
- b f or Ctrl-{b,f} for Seeking (forward and rewind)
- s and d for Save to / Delete from Favourites
- Shift-p for Play/pause or Enter for Start Song and Space for Queue Song
- F{1-3} for the three main screens Queue, Library, Search
- Shift-x for share (link to clipboard, I think)
- o or Shift-o for Open Current Song or Highlighted Song (opens menu with navigation options)
- r z for repeat / shuffle
- < > for Forward/Back
and of course ? for Open Help.
I even wrote a build script, because maintaining a build environment for Rust was a bit more annoying. Here is a screenshot.
and here the code: https://pastebin.com/V5Nz7jbG
You need Rust, Cargo, Git to build. Otherwise have a look in the package manager of your trust or in the manual on the official github. Peace out.