Also, damit TuneIn wieder funktioniert muss man das Modul an paar Stellen patchen.
Basis des Patches ist die Beta Version aus dem Store!!!
Zu finden ist das Modul im Store-Unterverzeichnis von IPS => modules/.store/ fonzo.ipsymconechoremote
.
HINWEIS: Da ich IPS auf einem RasbPi laufen zu haben => Erklärung via Linux (für Windows adaptieren)
Fangen wir mit dem Echo Device an:
- Wechseln in das Verzeichnis „Echo Device“ =>
cd Echo\ Device/
- Die Datei module.php mit Editor öffnen =>
sudo nano module.php
- in der Funktion
public function TuneIn(string $guideId): bool
folgendes ändern …
$postfields = [
'contentType' => 'station',
'guideId' => $guideId,
'mediaOwnerCustomerId' => $this->GetCustomerID()];
in
$postfields = [
'contentToken' => 'music:' . base64_encode(base64_encode('["music/tuneIn/stationId","' . $guideId .'"]|{"previousPageId":"TuneIn_SEARCH"}'))];
// 'contentType' => 'station',
// 'guideId' => $guideId,
// 'mediaOwnerCustomerId' => $this->GetCustomerID()];
Also die original Fields auskommentieren oder löschen und den neuen ‚contentToken‘ aufnehmen.
- Speichern nicht vergessen
- Wieder ein Verzeichnis hoch =>
cd ..
Jetzt geht’s an das Echo IO:
- Wechseln in das Verzeichnis „Echo IO“ =>
cd Echo\ IO/
- Die Datei module.php mit Editor öffnen =>
sudo nano module.php
- in der Funktion
private function GetHeader(): array
folgendes ändern …
$header = [
'User-Agent: ' . $this->ReadPropertyString('browser'),
'Accept-Encoding: gzip, deflate, br',
'Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7',
'Accept: application/json, text/javascript, */*; q=0.01',
'Referer: http://alexa.' . $this->GetAmazonURL() . '/spa/index.html',
'Connection: keep-alive'];
//'Content-Type: application/x-www-form-urlencoded; charset=UTF-8']; //todo: experimentell auskommentiert, damit Capabilities abgefragt werden können
in
$header = [
'User-Agent: ' . $this->ReadPropertyString('browser'),
'Accept-Encoding: gzip, deflate, br',
'Accept-Language: de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7',
'Accept: application/json, text/javascript, */*; q=0.01',
'Referer: http://alexa.' . $this->GetAmazonURL() . '/spa/index.html',
'Connection: keep-alive',
'Content-Type: application/json; charset=UTF-8'];
// 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8']; //todo: experimentell auskommentiert, damit Capabilities abgefragt werden können
Also die Zeile mit dem ‚Content-Type‘ kommt dazu!
- In der Funktion
private function TuneinQueueandplay(array $getfields, array $postfields)
folgendes ändern …
private function TuneinQueueandplay(array $getfields, array $postfields)
{
$url = 'https://' . $this->GetAlexaURL() . '/api/tunein/queue-and-play?' . http_build_query($getfields);
$header = $this->GetHeader();
return $this->SendEcho($url, $header, $postfields);
}
in
private function TuneinQueueandplay(array $getfields, array $postfields)
{
//HW $url = 'https://' . $this->GetAlexaURL() . '/api/tunein/queue-and-play?' . http_build_query($getfields);
$url = 'https://' . $this->GetAlexaURL() . '/api/entertainment/v1/player/queue?' . http_build_query($getfields);
$header = $this->GetHeader();
return $this->SendEcho($url, $header, $postfields, null, 'PUT');
}
Also die URL und der SendEcho Aufruf ändert sich hier.
- Speichern nicht vergessen
Das war’s auch schon! Sollte eigentlich ohne Restart usw. gehen, aber ich weiß es nicht mehr genau
VielErfolg
Heiko