Thyraz / Sonos-Kids-Controller

Software for self made touchscreen jukeboxes for kids. Supports Spotify streaming and uses Sonos for audio output.
150 stars 28 forks source link

Feature Request: Anzeige aktuelle Titelnummer - Titelname #68

Open Feuer-sturm opened 2 years ago

Feuer-sturm commented 2 years ago

Ich würde mir wünschen, wenn in der Playeransicht von Alben / Playlists... die aktuelle Titelnummer sowie der aktuelle Titelname angezeigt wird.

Wenn diese Anzeige nicht dauerhaft erscheinen soll, dann kann dies über die config vom sonos-kids-controller gesteuert werden.

Thyraz commented 2 years ago

Ich würde das durchaus auch gerne unterstützen. Bei Hörbüchern nicht so wichtig, bei Musikalben hingegen schon was Feines.

Aber das Ganze ist an sich ja nur ein grafisches Frontend für node-sonos-http-api. Und hier scheint es nicht so einfach zu tracken zu sein ob man überhaupt noch das gestartete Album hört oder nicht.

Die Lieder zum Album könnte ich aus der Spotify API ziehen, aber ob ich das dann irgendwie mit dem Status von node-sonos-http-api in Verbindung bringen kann?

Steht schon irgendwo auf meiner Liste wünschenswerter neuer Features, allerdings bin ich noch nicht so optimistisch, dass sich das mit den gewählten Softwarekomponenten umsetzen lässt...

stepman0 commented 2 years ago

Die node-sonos-http-api scheint die notwendigen Informationen zum aktuellen Zustand des Sonos zu enthalten

Hier die Antwort auf roomname/state:

{
    "volume": 65,
    "mute": false,
    "equalizer": {
        "bass": 0,
        "treble": 0,
        "loudness": true
    },
    "currentTrack": {
        "artist": "Karsten Glück",
        "title": "Im All",
        "album": "Die 20 wichtigsten Wissenslieder für Kinder",
        "albumArtUri": "/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a0yCwDVuh0FrBmpmcnMhAaw%3fsid%3d9%26flags%3d8224%26sn%3d5",
        "duration": 202,
        "uri": "x-sonos-spotify:spotify%3atrack%3a0yCwDVuh0FrBmpmcnMhAaw?sid=9&flags=8224&sn=5",
        "trackUri": "x-sonos-spotify:spotify%3atrack%3a0yCwDVuh0FrBmpmcnMhAaw?sid=9&flags=8224&sn=5",
        "type": "track",
        "stationName": "",
        "absoluteAlbumArtUri": "http://192.168.188.21:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a0yCwDVuh0FrBmpmcnMhAaw%3fsid%3d9%26flags%3d8224%26sn%3d5"
    },
    "nextTrack": {
        "artist": "Karsten Glück",
        "title": "Die Dinos",
        "album": "Die 20 wichtigsten Wissenslieder für Kinder",
        "albumArtUri": "/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a5mAhOrZKMZzitwv0OOfrim%3fsid%3d9%26flags%3d8224%26sn%3d5",
        "duration": 161,
        "uri": "x-sonos-spotify:spotify%3atrack%3a5mAhOrZKMZzitwv0OOfrim?sid=9&flags=8224&sn=5",
        "trackUri": "x-sonos-spotify:spotify%3atrack%3a5mAhOrZKMZzitwv0OOfrim?sid=9&flags=8224&sn=5",
        "absoluteAlbumArtUri": "http://192.168.188.21:1400/getaa?s=1&u=x-sonos-spotify%3aspotify%253atrack%253a5mAhOrZKMZzitwv0OOfrim%3fsid%3d9%26flags%3d8224%26sn%3d5"
    },
    "trackNo": 6,
    "elapsedTime": 76,
    "elapsedTimeFormatted": "00:01:16",
    "playbackState": "PAUSED_PLAYBACK",
    "playMode": {
        "repeat": "none",
        "shuffle": false,
        "crossfade": false
    }
}

Unter CurrentTrack gibt es artist, title, album sowie die duration.

Ganz unten dann noch die elapsedTime.

Thyraz commented 2 years ago

Das hab ich mir auch schon angeschaut. Das ist aber ja nur die Info zum Track. Vom Album ist nur ein Name, aber keine eindeutige ID vorhanden, oder?

Intern nutzt die Software bei Spotify ja die UniqueID für das Album. Das müsste man irgendwie in Zusammenhang bekommen.

Wenn man das Album hat, dürfte trackNo immerhin die Info liefern, das wievielte Lied/Kapitel gerade läuft.

Ebenfalls schön wäre ja, wenn ein Album z.B. übers Handy (oder bei z.B. Sonos One mit Alexa) gestartet wird, die Box auch auf das Album umspringt.

Ich fürchte nur, dass man sich da ziemlich tief in die Spotify API reinknien muss. Da will ja einiges an Infos abgerufen und lokal vorgehalten werden um solche Suchtreffer zu erlauben (sofern möglich). Könnte gut sein, dass das komplexer ist als als der gesamte bisherige Code.

Wenn ich das meiner knappen Freitzeit fürs Coden gegenüberstelle, sind die Kids ausgezogen und brauchen den Spass nicht mehr bis ich fertig bin. 😬

HeikoGr commented 2 years ago

Hier ( https://github.com/skuethe/MMM-Spotify) hat hat jemand ein Plugin für das MagicMirror Projekt geschrieben, welches die song/album/Track Information per Spotify API abgreift. MagicMirror basiert auch auf nodejs.