[Neues Modul] Spotify

Begonnen von neumann, 28 Mai 2017, 15:58:19

Vorheriges Thema - Nächstes Thema

Anjo1979

#180
Hallo Speridal, TabletUI-Interessierten,

ich hatte mal begonnen eine TabletUI-Oberfläche zu erstellen. Ergebnis siehe Bild, läuft soweit auch ganz gut. Vielleicht hilft es dir weiter. Für Hinweise/Anregungen bin ich dankbar.

Hier der Code:


<html>
<title>FHEM</title>
<head>
<!--
/* FHEM tablet ui */
* Multimedia * -->
</head>
<body>
<div class="page" id="main2">
<div class="gridster">
<ul>


<li data-row="2" data-col="4" data-sizex="3" data-sizey="6">
                <header class="">Spotify</header>
              <div class="sheet">

                <div class="row-40">
                <div class="cell top-space">
                        <div data-type="image"
                                data-device="Spotify"
                                data-get="track_album_cover_medium"
                                data-height='240'
                                data-width='240'
                                class="">
                        </div>
                </div>
                </div>


                <div class="row-5">
                <div class="cell top-align">
                                <div data-type="label"
                                        data-device="Spotify"
                                        data-get="progress"
                                        class="inline">
                                </div>
                                <div data-type="level"
                                        data-device="Spotify"
                                        data-get="progress_ms"
                                        data-max="track_duration_ms"
                                        class="inline horizontal">
                                </div>
                                <div data-type="label"
                                        data-device="Spotify"
                                        data-get="track_duration"
                                        class="inline">
                                </div>
                </div>
                </div>

                <div class="row-10">
                <div class="cell top-align">
                        <div class="hbox items-center">
                                <div data-type="switch"
                                        data-device="Spotify"
                                        data-get="shuffle"
                                        data-set="shuffle"
                                        data-icon="fa-random" data-background-icon="-"
                                        data-on-color="white" data-off-color="gray"
                                        data-get-on="on" data-get-off="off"
                                        data-set-on="on" data-set-off="off"
                                        class="inline mini thin">
                                </div>
                                <div data-type="push"
                                        data-device="Spotify"
                                        data-icon="fa-step-backward" data-background-icon="-"
                                        data-off-color="#fff" data-on-color="#aa6900"
                                        data-set-on="previous"
                                        class="inline small thin">
                                </div>
                                <div data-type="switch"
                                        data-device="Spotify"
                                        data-states='["paused","playing"]'
                                        data-set-states='["resume","pause"]'
                                        data-background-icon="fa-circle-thin"
                                        data-background-colors='["white","white"]'
                                        data-colors='["white","white"]'
                                        data-icons='["fa-play","fa-pause"]'
                                        class="inline small">
                                </div>
                                <div data-type="push"
                                        data-device="Spotify"
                                        data-icon="fa-step-forward" data-background-icon="-"
                                        data-off-color="#fff" data-on-color="#aa6900"
                                        data-set-on="next"
                                        class="inline small thin">
                                </div>
                                <div data-type="switch"
                                        data-device="Spotify"
                                        data-get="repeat"
                                        data-set="repeat"
                                        data-icon="fa-repeat" data-background-icon="-"
                                        data-on-color="white" data-off-color="gray"
                                        data-get-on="all" data-get-off="off"
                                        data-set-on="all" data-set-off="off"
                                        class="inline mini thin">
                                </div>
                                </div>

                </div>
                </div>

                <div class="row-40">
                <div class="cell top-align">
                        <div data-type="label"
                                data-device="Spotify"
                                data-get="track_name"
                                data-substitution="s/Or//g"
                                class="large thin bold top-space truncate">
                        </div>
                        <div data-type="label"
                                data-device="Spotify"
                                data-get="track_artist_name"
                                class="large truncate">
                        </div>
                </div>
                </div>

              </div>
        </li>
</ul>
</div>
</div>
</body>
</html>


speridal

Hi Anjo1979,

vielen Dank für deinen Code! Klappt auf Anhieb und sieht sehr gut aus!

Ich will noch irgendwann die Möglichkeit einbauen, die anderen Ausgabegeräte anzuwählen. Wenn ich Zeit dafür finde, würde ich das dann hier posten.

Gruß,
Bernd

Anjo1979

Hallo Bernd,

es freut mich, dass es gleich auf Anhieb klappt und gefällt. Die Auswahl der anderen Ausgabegeräte steht bei mir auch auf der ToDo-Liste (recht weit hinten), über dein Ergebnis würde ich mich freuen.

Grüße
Thomas

masl

Ich bin total von dem Modul begeistert.

Allerdings komme ich nicht weiter mit den Device Einstellungen.

Ich habe Spotify auf meinem Smartphone und ebenso auf dem Tablet auf dem auch TabletUI läuft.
Zudem ist ein Chromecast installiert.
Bin ich zuhause habe ich bisher mit dem Smartphone über den Chromecast Spotify gehört.
Allerdings höre ich Spotify auch wenn ich unterwegs bin.

In FHEM habe ich einen Dummy angelegt:
Zitatdefine n_musik_an notify Musik_an:on set AV_Receiver on;; set AV_Receiver input: av5;; set AV_Receiver volume: 43 | set Spotify playPlaylistByName Mixed 02/2018

Wie bekomme ich nun Spotify gesagt, dass er die Playlist vom Tablet abspielen soll und die Ausgabe über Chromecast erfolgen soll?

Muss dies über "Googlecast" gemacht werden?

riker1

Hi

hatte leider einen Fehler bei der Anmeldung des Dev in Fhem.

die redirect url ist nicht gültig?


INVALID_CLIENT: Invalid redirect URI

authorization pending (see instructions)



komisch, man kann doch gar nicht viel falsch machen?

habe die app angelegt, die beiden ids client|secret  eingegeben und die redirect url

...was kann das denn sein?

Danke

FHEM    5.26.1 Ubuntu 18, FHEM    5.26.1 RPI 3 , Actoren: IT ,Tasmota, ESPEasy,
MAX CUBE, MAX HT, MAX WT, Selbstbau nanoCULs, FS 20,Tasmota, Homematic, FTK, SW. DIM, Smoke,KODI,Squeezebox

Tardar

Zitat von: riker1 am 06 Oktober 2018, 20:21:53
Hi

hatte leider einen Fehler bei der Anmeldung des Dev in Fhem.

die redirect url ist nicht gültig?


INVALID_CLIENT: Invalid redirect URI

authorization pending (see instructions)



komisch, man kann doch gar nicht viel falsch machen?

habe die app angelegt, die beiden ids client|secret  eingegeben und die redirect url

...was kann das denn sein?

Danke

Habe es gerade eingerichtet, warte aber noch auf meine PREMIUM Freischaltung :)
Mit ClientID & Secret Device in FHEM anlegen, die URL vom Oskar funktioniert.
Dann den Link aufrufen, dort den Code kopieren und unter "set Code" einfügen.
Speichern und du bist connected.

Bei mir funktioniert aktuell die Steuerung noch nicht, das wird aber gehen, sobald mein Premium aktiv ist denke ich :)

Viele Grüße

merrytor

#186
Zitat von: riker1 am 06 Oktober 2018, 20:21:53
Hi

hatte leider einen Fehler bei der Anmeldung des Dev in Fhem.

die redirect url ist nicht gültig?


INVALID_CLIENT: Invalid redirect URI

authorization pending (see instructions)



komisch, man kann doch gar nicht viel falsch machen?

habe die app angelegt, die beiden ids client|secret  eingegeben und die redirect url

...was kann das denn sein?

Danke

Ähnliches auch bei mir...

Bei mir ist in der  AUTHORIZATION_URL am Ende die Adresse zu https://oskar.pw "kryptisch", aus welchem Grund auch immer.
Sieht bei mir so aus uri=https%3a%2f%2foskar%2epw%2f

Wenn ich mir die AUTHORIZATION_URl kopiere und dann in einem anderen Tab kopiere und das "kryptische" abändere komme ich dann weiter und bekomme dann den Code von Oskar.pw angezeigt. Nach einfügen in FHEM bekomme ich dann die folgende Fehlermeldung.

ZitatFailed to get access token: Please add https://oskar.pw/ as a redirect_uri at https://developer.spotify.com/my-applications/#!/applications/




merrytor

spannend jetzt gehts...

ich habe noch einmal die libcrypt-ssleay-perl gelöscht und neu installiert, dann gings.

Chris489

Erstmal ein ganz großes DANKE!

Läuft bisher Top!
Da ich gerade an der FTUI Integration bin fällt mir auf, das es kein "set Spotify playbydeviceid" oder so gibt.
Ich würde gerne wenn eine Playlist läuft auch das Gerät wechseln können.

Oder habe ich was übersehen?

Grüße

Abercrombie1892

#189
Zitat von: Chris489 am 09 November 2018, 18:26:33
Erstmal ein ganz großes DANKE!

Läuft bisher Top!
Da ich gerade an der FTUI Integration bin fällt mir auf, das es kein "set Spotify playbydeviceid" oder so gibt.
Ich würde gerne wenn eine Playlist läuft auch das Gerät wechseln können.

Oder habe ich was übersehen?

Grüße

device lässt sich bei transfer playback ändern mit der device id. problem ist halt oft nur das nicht die gleichen connect geräte wie in der app zusehen sind.
evtl hat es ja jemand schon geschafft in der richtung multicast etwas einzubauen

Jackson

#190
Hi,

ich habe da mal eine Frage zu den Devices..

es findet nur meinen Fire Stick und meinen Laptop als device aber nicht meine SONOS PLAY1. Gibt es noch was zu beachten, kann man die ID irgendwo auslesen? Ich möchte eigentlich die PLAY1 als Device in FHEM angelegen.

Gruss und Danke
Christian

EDIT: Die Antwort ist hier: https://github.com/spotify/web-api/issues/525#issuecomment-301759031.  Wird leider nicht unterstützt :(
FHEM5.9@RPI3

Bytechanger

Hallo,

welche Funktionalität müsste dann bei der Redirect-URI hinterlegt werden?
Was muss also die Seite können, auf die gelinkt wird?


Ich würde gerne diese Funktion auf meine NAS legen.

Greets

Byte

Bytechanger

#192
Erledigt, sie dient offensichtlich nur als Ziel für den Token!

Eine Bitte an die Entwicklung, bitte das Interlnal REDIRECT_URI in ein Attribut ändern, dann kann man selbst den Server wählen.

Greets

Byte

EDIT: Sorry, kann man ja bereits, in der define-Methode, sorry, übersehen!

MisterBeats

Hallo zusammen,

ich habe mir Spotify auch mal eingerichtet. Connected ist es, jedoch kommt immer wieder diese Fehlermeldung:

Spotify: request failed: Player command failed: Premium required

Premium Zugang habe ich schon seit Jahren.

UweUwe

Hallo ,

versuche mir gerade Spotify einzurichten und bekomme die Authorisation url auch zurück.
Mit dieser laufe ich aber auf ein Problem bei Spotify:

https://accounts.spotify.com/authorize/?client_id=1ef940bf87ae45b2abfe992f13ff17a6&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=%5bhttps%3a%2f%2foskar%2epw%5d

Was mache ich falsch:

List auf Spotify sieht so aus:
Internals:
   A1_INSTRUCTIONS Open AUTHORIZATION_URL in your browser and set the code afterwards. Make sure to specify REDIRECT_URI as a redirect_uri in your API application.
   AUTHORIZATION_URL https://accounts.spotify.com/authorize/?client_id=1ef940bf87ae45b2abfe992f13ff17a6&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=%5bhttps%3a%2f%2foskar%2epw%5d
   CFGFN     
   CLIENT_ID  1ef940bf87ae45b2abfe992f13ff17a6
   CLIENT_SECRET 82327dbdb48e4da1b23f89cec2496aeb
   DEF        1ef940bf87ae45b2abfe992f13ff17a6 82327dbdb48e4da1b23f89cec2496aeb [https://oskar.pw]
   NAME       Spotify
   NR         154
   NTFY_ORDER 50-Spotify
   REDIRECT_URI [https://oskar.pw]
   STATE      authorization pending (see instructions)
   TYPE       Spotify
   helper:
     access_token
     authorization_url https://accounts.spotify.com/authorize/?client_id=1ef940bf87ae45b2abfe992f13ff17a6&response_type=code&scope=playlist-read-private%20playlist-read-collaborative%20streaming%20user-library-read%20user-read-private%20user-read-playback-state&redirect_uri=%5bhttps%3a%2f%2foskar%2epw%5d
     custom_redirect 1
     expires   
     refresh_token
Attributes:
   DbLogExclude .