jishi / node-sonos-http-api

An HTTP API bridge for Sonos easing automation. Hostable on any node.js capable device, like a raspberry pi or similar.
http://jishi.github.io/node-sonos-http-api/
MIT License
1.83k stars 462 forks source link

Pandora account credentials not matching in Sonos controller #614

Open jacobwtyler opened 6 years ago

jacobwtyler commented 6 years ago

I'm getting an error when trying to invoke a station on Pandora. My credentials are entered correctly both on the server side in the settings.json file and in the Pandora Service Settings in the Sonos app so that shouldn't be the problem but when I try to invoke a Pandora station with the command: http://localhost:5005/RoomName/pandora/play/{station name} I get: {"status":"error","error":"Got status 500 when invoking /MediaRenderer/AVTransport/Control","stack":"Error: Got status 500 when invoking /MediaRenderer/AVTransport/Control\n at Object.invoke (/sonos/node-sonos-http-api/node_modules/sonos-discovery/lib/helpers/soap.js:99:10)\n at Player.play (/sonos/node-sonos-http-api/node_modules/sonos-discovery/lib/models/Player.js:443:15)\n at pandoraAPI.then.then.then.then (/sonos/node-sonos-http-api/lib/actions/pandora.js:105:42)\n at <anonymous>\n at process._tickCallback (internal/process/next_tick.js:182:7)"}

and I get a popup message on all of my Sonos controller interfaces which I've included a screenshot of here:

image

And on the log output for the node server, I get:

May 01 11:57:05 jacobwtyler node[572]: Error: Got status 500 when invoking /MediaRenderer/AVTransport/Control May 01 11:57:05 jacobwtyler node[572]: at Object.invoke (/sonos/node-sonos-http-api/node_modules/sonos-discovery/lib/helpers/soap.js:99:10) May 01 11:57:05 jacobwtyler node[572]: at Player.play (/sonos/node-sonos-http-api/node_modules/sonos-discovery/lib/models/Player.js:443:15) May 01 11:57:05 jacobwtyler node[572]: at pandoraAPI.then.then.then.then (/sonos/node-sonos-http-api/lib/actions/pandora.js:105:42) May 01 11:57:05 jacobwtyler node[572]: at <anonymous> May 01 11:57:05 jacobwtyler node[572]: at process._tickCallback (internal/process/next_tick.js:182:7) �

Any help would be greatly appreciated. The Spotify credentials in my settings.json file must be working because I can invoke all Spotify playlists/songs/albums and every other command has worked flawlessly so I think my setup is good. I can call up a Pandora station by using the: http://localhost:5005/RoomName/favorite/{favorite name} but that feels a bit hacky. One possible issue is that I changed my email address that was associated with Pandora recently and my Sonos was still logged in with the old email address where the settings.json had my new email address and password. I removed my Sonos login and reauthenticated but I wonder if something got out of sync there. Today, I tried changing my Pandora password and then updating credentials on Sonos and Node side but got the same error. Sonos is clearly receiving the command but it doesn't seem to think my credentials are matching up. Btw, Pandora stations do play just fine in the Sonos Controller apps both before and after updating the credentials if I just use the stock search and click on a station method.

Update: I'm starting to think it might be the Sonos side of the equation because I sent a command to invoke a station that I hadn't listened to in a long time (so it was toward the bottom of my stations in the list in Pandora app) and it gave me the error message again but it moved the station to the top of my list so this plugin must've been logged in and called the station up. Still haven't solved it though.

Update to the update: I'm not seeing this effect anymore when picking old stations that I haven't listened to in a long time so maybe I just imagined this. Sorry for the confusion.

Anyone have any ideas on what might be going on here? I've tried absolutely everything I can think of. Luckily, WebCoRE (SmartThings Rules Engine that I use for automation) can play Pandora stations through SmartThings' (mostly broken) implementation of the Sonos' API so I have a workaround but at this point I'm just frustrated with myself that I can't implement this one element of @jishi Sonos HTTP API.

jishi commented 6 years ago

Sonos has made several changes to how they handle user accounts. Most of them was making it harder to get a hold of the account info, but sounds like they did something more to pandora.

The code makes the assumption that metadata with the tracks are created from the username, like this: SA_RINCON3_username but maybe that has changed.

I can't use Pandora here from Sweden, so I can't verify this, I need someone with Pandora to provide me with a sample of the metadata that is added when you start Pandora from the official client. There are no tools currently in the http api to read that out, which is a bit unfortunate at the moment. Maybe would make sense to add a debug endpoint that would print out useful information for me...

jacobwtyler commented 6 years ago

Sonos Play:5 MR L track data is {"station":"Ray LaMontagne Radio","name":null,"artist":null,"album":null,"trackNumber":"1","status":"playing","level":"","uri":"x-sonosapi-radio:ST%3a3622823438410124886?sid=236&flags=0&sn=18","trackUri":"x-sonos-http:PcukbeholDC2_kxNIS5LSn8JQPhSVBLLjlsfIlufrG0MyY6xnzKdxiyjfrz7-Jpf6DlxKDGwaBobtRSBKHQqPPg%3a%3aST%3a3622823438410124886%3a%3aRINCON_5CAAFD0756AC01400%3a1698538307.mp3?sid=236&flags=0&sn=18","transportUri":"","enqueuedUri":"x-sonosapi-radio:ST%3a3622823438410124886?sid=236&flags=0&sn=18","metaData":"<DIDL-Lite xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\" xmlns:r=\"urn:schemas-rinconnetworks-com:metadata-1-0/\" xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\"><item id=\"000c0000ST%3a3622823438410124886\" parentID=\"-1\" restricted=\"true\">Ray LaMontagne Radio<\u002fdc:title>object.item.audioItem.audioBroadcast<\u002fupnp:class><desc id=\"cdudn\" nameSpace=\"urn:schemas-rinconnetworks-com:metadata-1-0/\">SA_RINCON60423X#Svc60423-0-Token<\u002fdesc>https://cont-2.p-cdn.us/images/public/int/4/1/7/4/886447014714_1080W_1080H.jpg<\u002fupnp:albumArtURI><\u002fitem><\u002fDIDL-Lite>","trackMetaData":"<DIDL-Lite xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\" xmlns:r=\"urn:schemas-rinconnetworks-com:metadata-1-0/\" xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\"><item id=\"-1\" parentID=\"-1\"><res protocolInfo=\"http-get::audio/mp3:\" duration=\"0:03:54\">x-sonos-http:PcukbeholDC2_kxNIS5LSn8JQPhSVBLLjlsfIlufrG0MyY6xnzKdxiyjfrz7-Jpf6DlxKDGwaBobtRSBKHQqPPg%3a%3aST%3a3622823438410124886%3a%3aRINCON_5CAAFD0756AC01400%3a1698538307.mp3?sid=236&flags=0&sn=18<\u002fres>https://mediaserver-cont-ch1-1-v4v6.pandora.com/images/public/int/8/2/0/7/886973267028_500W_500H.jpg<\u002fupnp:albumArtURI>object.item.audioItem.musicTrack<\u002fupnp:class>You Are The Best Thing<\u002fdc:title>Ray LaMontagne<\u002fdc:creator>Ray LaMontagne<\u002fr:albumArtist>Gossip In The Grain<\u002fupnp:album>-6.450000<\u002fr:trackGain>PcukbeholDC2_kxNIS5LSn8JQPhSVBLLjlsfIlufrG0MyY6xnzKdxiyjfrz7-Jpf6DlxKDGwaBobtRSBKHQqPPg<\u002fr:tiid>NONE<\u002fr:type>NEUTRAL<\u002fr:connotation><\u002fr:rating><r:policies mask=\"0x80020008\" flags=\"0x80020008\"/><\u002fitem><\u002fDIDL-Lite>"}

Name Value
archivable true
date 2018-05-07 4:06:03.067 PM CDT (2018-05-07T21:06:03.067Z)
description Sonos Play:5 MR L track data is {"station":"Ray LaMontagne Radio","name":null,"artist":null,"album":null,"trackNumber":"1","status":"playing","level":"","uri":"x-sonosapi-radio:ST%3a3622823438410124886?sid=236&flags=0&sn=18","trackUri":"x-sonos-http:PcukbeholDC2_kxNIS5LSn8JQPhSVBLLjlsfIlufrG0MyY6xnzKdxiyjfrz7-Jpf6DlxKDGwaBobtRSBKHQqPPg%3a%3aST%3a3622823438410124886%3a%3aRINCON_5CAAFD0756AC01400%3a1698538307.mp3?sid=236&flags=0&sn=18","transportUri":"","enqueuedUri":"x-sonosapi-radio:ST%3a3622823438410124886?sid=236&flags=0&sn=18","metaData":"<DIDL-Lite xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\" xmlns:r=\"urn:schemas-rinconnetworks-com:metadata-1-0/\" xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\"><item id=\"000c0000ST%3a3622823438410124886\" parentID=\"-1\" restricted=\"true\">Ray LaMontagne Radio<\u002fdc:title>object.item.audioItem.audioBroadcast<\u002fupnp:class><desc id=\"cdudn\" nameSpace=\"urn:schemas-rinconnetworks-com:metadata-1-0/\">SA_RINCON60423X#Svc60423-0-Token<\u002fdesc>https://cont-2.p-cdn.us/images/public/int/4/1/7/4/886447014714_1080W_1080H.jpg<\u002fupnp:albumArtURI><\u002fitem><\u002fDIDL-Lite>","trackMetaData":"<DIDL-Lite xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\" xmlns:r=\"urn:schemas-rinconnetworks-com:metadata-1-0/\" xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\"><item id=\"-1\" parentID=\"-1\"><res protocolInfo=\"http-get::audio/mp3:\" duration=\"0:03:54\">x-sonos-http:PcukbeholDC2_kxNIS5LSn8JQPhSVBLLjlsfIlufrG0MyY6xnzKdxiyjfrz7-Jpf6DlxKDGwaBobtRSBKHQqPPg%3a%3aST%3a3622823438410124886%3a%3aRINCON_5CAAFD0756AC01400%3a1698538307.mp3?sid=236&flags=0&sn=18<\u002fres>https://mediaserver-cont-ch1-1-v4v6.pandora.com/images/public/int/8/2/0/7/886973267028_500W_500H.jpg<\u002fupnp:albumArtURI>object.item.audioItem.musicTrack<\u002fupnp:class>You Are The Best Thing<\u002fdc:title>Ray LaMontagne<\u002fdc:creator>Ray LaMontagne<\u002fr:albumArtist>Gossip In The Grain<\u002fupnp:album>-6.450000<\u002fr:trackGain>PcukbeholDC2_kxNIS5LSn8JQPhSVBLLjlsfIlufrG0MyY6xnzKdxiyjfrz7-Jpf6DlxKDGwaBobtRSBKHQqPPg<\u002fr:tiid>NONE<\u002fr:type>NEUTRAL<\u002fr:connotation><\u002fr:rating><r:policies mask=\"0x80020008\" flags=\"0x80020008\"/><\u002fitem><\u002fDIDL-Lite>"}
deviceId e74719c6-a757-4c98-8dfc-e09970df52ff
deviceTypeId 64f89df3-8072-4cff-9ea1-4ba19e2ec9cc
displayed false
eventSource DEVICE
hubId 73e55a51-56aa-43f6-b911-faa982264a76
id 73774fe0-523a-11e8-b483-062137da6104
isStateChange true
isVirtualHub false
linkText Sonos Play:5 MR L
locationId addf1cc3-8253-42a3-bab4-e8a2bbd778d2
name trackData
rawDescription index:94, mac:5CAAFD0756AC, headers:Tk9USUZZIC9ub3RpZnkgSFRUUC8xLjENCkhPU1Q6IDE5Mi4xNjguNTUuMjc6Mzk1MDANCkNPTk5FQ1RJT046IGNsb3NlDQpDT05URU5ULVRZUEU6IHRleHQveG1sDQpDT05URU5ULUxFTkdUSDogMzk1OQ0KTlQ6IHVwbnA6ZXZlbnQNCk5UUzogdXBucDpwcm9wY2hhbmdlDQpTSUQ6IHV1aWQ6UklOQ09OXzVDQUFGRDA3NTZBQzAxNDAwX3N1YjAwMDAwMDE3NzYNClNFUTogMTU3, body:PGU6cHJvcGVydHlzZXQgeG1sbnM6ZT0idXJuOnNjaGVtYXMtdXBucC1vcmc6ZXZlbnQtMS0wIj48ZTpwcm9wZXJ0eT48TGFzdENoYW5nZT4mbHQ7RXZlbnQgeG1sbnM9JnF1b3Q7dXJuOnNjaGVtYXMtdXBucC1vcmc6bWV0YWRhdGEtMS0wL0FWVC8mcXVvdDsgeG1sbnM6cj0mcXVvdDt1cm46c2NoZW1hcy1yaW5jb25uZXR3b3Jrcy1jb206bWV0YWRhdGEtMS0wLyZxdW90OyZndDsmbHQ7SW5zdGFuY2VJRCB2YWw9JnF1b3Q7MCZxdW90OyZndDsmbHQ7VHJhbnNwb3J0U3RhdGUgdmFsPSZxdW90O1BMQVlJTkcmcXVvdDsvJmd0OyZsdDtDdXJyZW50UGxheU1vZGUgdmFsPSZxdW90O05PUk1BTCZxdW90Oy8mZ3Q7Jmx0O0N1cnJlbnRDcm9zc2ZhZGVNb2RlIHZhbD0mcXVvdDswJnF1b3Q7LyZndDsmbHQ7TnVtYmVyT2ZUcmFja3MgdmFsPSZxdW90OzEmcXVvdDsvJmd0OyZsdDtDdXJyZW50VHJhY2sgdmFsPSZxdW90OzEmcXVvdDsvJmd0OyZsdDtDdXJyZW50U2VjdGlvbiB2YWw9JnF1b3Q7MCZxdW90Oy8mZ3Q7Jmx0O0N1cnJlbnRUcmFja1VSSSB2YWw9JnF1b3Q7eC1zb25vcy1odHRwOlBjdWtiZWhvbERDMl9reE5JUzVMU244SlFQaFNWQkxMamxzZklsdWZyRzBNeVk2eG56S2R4aXlqZnJ6Ny1KcGY2RGx4S0RHd2FCb2J0UlNCS0hRcVBQZyUzYSUzYVNUJTNhMzYyMjgyMzQzODQxMDEyNDg4NiUzYSUzYVJJTkNPTl81Q0FBRkQwNzU2QUMwMTQwMCUzYTE2OTg1MzgzMDcubXAzP3NpZD0yMzYmYW1wO2FtcDtmbGFncz0wJmFtcDthbXA7c249MTgmcXVvdDsvJmd0OyZsdDtDdXJyZW50VHJhY2tEdXJhdGlvbiB2YWw9JnF1b3Q7MDowMzo1NCZxdW90Oy8mZ3Q7Jmx0O0N1cnJlbnRUcmFja01ldGFEYXRhIHZhbD0mcXVvdDsmYW1wO2x0O0RJREwtTGl0ZSB4bWxuczpkYz0mYW1wO3F1b3Q7aHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8mYW1wO3F1b3Q7IHhtbG5zOnVwbnA9JmFtcDtxdW90O3VybjpzY2hlbWFzLXVwbnAtb3JnOm1ldGFkYXRhLTEtMC91cG5wLyZhbXA7cXVvdDsgeG1sbnM6cj0mYW1wO3F1b3Q7dXJuOnNjaGVtYXMtcmluY29ubmV0d29ya3MtY29tOm1ldGFkYXRhLTEtMC8mYW1wO3F1b3Q7IHhtbG5zPSZhbXA7cXVvdDt1cm46c2NoZW1hcy11cG5wLW9yZzptZXRhZGF0YS0xLTAvRElETC1MaXRlLyZhbXA7cXVvdDsmYW1wO2d0OyZhbXA7bHQ7aXRlbSBpZD0mYW1wO3F1b3Q7LTEmYW1wO3F1b3Q7IHBhcmVudElEPSZhbXA7cXVvdDstMSZhbXA7cXVvdDsmYW1wO2d0OyZhbXA7bHQ7cmVzIHByb3RvY29sSW5mbz0mYW1wO3F1b3Q7aHR0cC1nZXQ6KjphdWRpby9tcDM6KiZhbXA7cXVvdDsgZHVyYXRpb249JmFtcDtxdW90OzA6MDM6NTQmYW1wO3F1b3Q7JmFtcDtndDt4LXNvbm9zLWh0dHA6UGN1a2JlaG9sREMyX2t4TklTNUxTbjhKUVBoU1ZCTExqbHNmSWx1ZnJHME15WTZ4bnpLZHhpeWpmcno3LUpwZjZEbHhLREd3YUJvYnRSU0JLSFFxUFBnJTNhJTNhU1QlM2EzNjIyODIzNDM4NDEwMTI0ODg2JTNhJTNhUklOQ09OXzVDQUFGRDA3NTZBQzAxNDAwJTNhMTY5ODUzODMwNy5tcDM/c2lkPTIzNiZhbXA7YW1wO2FtcDtmbGFncz0wJmFtcDthbXA7YW1wO3NuPTE4JmFtcDtsdDsvcmVzJmFtcDtndDsmYW1wO2x0O3VwbnA6YWxidW1BcnRVUkkmYW1wO2d0O2h0dHBzOi8vbWVkaWFzZXJ2ZXItY29udC1jaDEtMS12NHY2LnBhbmRvcmEuY29tL2ltYWdlcy9wdWJsaWMvaW50LzgvMi8wLzcvODg2OTczMjY3MDI4XzUwMFdfNTAwSC5qcGcmYW1wO2x0Oy91cG5wOmFsYnVtQXJ0VVJJJmFtcDtndDsmYW1wO2x0O3VwbnA6Y2xhc3MmYW1wO2d0O29iamVjdC5pdGVtLmF1ZGlvSXRlbS5tdXNpY1RyYWNrJmFtcDtsdDsvdXBucDpjbGFzcyZhbXA7Z3Q7JmFtcDtsdDtkYzp0aXRsZSZhbXA7Z3Q7WW91IEFyZSBUaGUgQmVzdCBUaGluZyZhbXA7bHQ7L2RjOnRpdGxlJmFtcDtndDsmYW1wO2x0O2RjOmNyZWF0b3ImYW1wO2d0O1JheSBMYU1vbnRhZ25lJmFtcDtsdDsvZGM6Y3JlYXRvciZhbXA7Z3Q7JmFtcDtsdDtyOmFsYnVtQXJ0aXN0JmFtcDtndDtSYXkgTGFNb250YWduZSZhbXA7bHQ7L3I6YWxidW1BcnRpc3QmYW1wO2d0OyZhbXA7bHQ7dXBucDphbGJ1bSZhbXA7Z3Q7R29zc2lwIEluIFRoZSBHcmFpbiZhbXA7bHQ7L3VwbnA6YWxidW0mYW1wO2d0OyZhbXA7bHQ7cjp0cmFja0dhaW4mYW1wO2d0Oy02LjQ1MDAwMCZhbXA7bHQ7L3I6dHJhY2tHYWluJmFtcDtndDsmYW1wO2x0O3I6dGlpZCZhbXA7Z3Q7UGN1a2JlaG9sREMyX2t4TklTNUxTbjhKUVBoU1ZCTExqbHNmSWx1ZnJHME15WTZ4bnpLZHhpeWpmcno3LUpwZjZEbHhLREd3YUJvYnRSU0JLSFFxUFBnJmFtcDtsdDsvcjp0aWlkJmFtcDtndDsmYW1wO2x0O3I6cmF0aW5nJmFtcDtndDsmYW1wO2x0O3I6dHlwZSZhbXA7Z3Q7Tk9ORSZhbXA7bHQ7L3I6dHlwZSZhbXA7Z3Q7JmFtcDtsdDtyOmNvbm5vdGF0aW9uJmFtcDtndDtORVVUUkFMJmFtcDtsdDsvcjpjb25ub3RhdGlvbiZhbXA7Z3Q7JmFtcDtsdDsvcjpyYXRpbmcmYW1wO2d0OyZhbXA7bHQ7cjpwb2xpY2llcyBtYXNrPSZhbXA7cXVvdDsweDgwMDIwMDA4JmFtcDtxdW90OyBmbGFncz0mYW1wO3F1b3Q7MHg4MDAyMDAwOCZhbXA7cXVvdDsvJmFtcDtndDsmYW1wO2x0Oy9pdGVtJmFtcDtndDsmYW1wO2x0Oy9ESURMLUxpdGUmYW1wO2d0OyZxdW90Oy8mZ3Q7Jmx0O3I6TmV4dFRyYWNrVVJJIHZhbD0mcXVvdDsmcXVvdDsvJmd0OyZsdDtyOk5leHRUcmFja01ldGFEYXRhIHZhbD0mcXVvdDsmcXVvdDsvJmd0OyZsdDtyOkVucXVldWVkVHJhbnNwb3J0VVJJIHZhbD0mcXVvdDt4LXNvbm9zYXBpLXJhZGlvOlNUJTNhMzYyMjgyMzQzODQxMDEyNDg4Nj9zaWQ9MjM2JmFtcDthbXA7ZmxhZ3M9MCZhbXA7YW1wO3NuPTE4JnF1b3Q7LyZndDsmbHQ7cjpFbnF1ZXVlZFRyYW5zcG9ydFVSSU1ldGFEYXRhIHZhbD0mcXVvdDsmYW1wO2x0O0RJREwtTGl0ZSB4bWxuczpkYz0mYW1wO3F1b3Q7aHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8mYW1wO3F1b3Q7IHhtbG5zOnVwbnA9JmFtcDtxdW90O3VybjpzY2hlbWFzLXVwbnAtb3JnOm1ldGFkYXRhLTEtMC91cG5wLyZhbXA7cXVvdDsgeG1sbnM6cj0mYW1wO3F1b3Q7dXJuOnNjaGVtYXMtcmluY29ubmV0d29ya3MtY29tOm1ldGFkYXRhLTEtMC8mYW1wO3F1b3Q7IHhtbG5zPSZhbXA7cXVvdDt1cm46c2NoZW1hcy11cG5wLW9yZzptZXRhZGF0YS0xLTAvRElETC1MaXRlLyZhbXA7cXVvdDsmYW1wO2d0OyZhbXA7bHQ7aXRlbSBpZD0mYW1wO3F1b3Q7MDAwYzAwMDBTVCUzYTM2MjI4MjM0Mzg0MTAxMjQ4ODYmYW1wO3F1b3Q7IHBhcmVudElEPSZhbXA7cXVvdDstMSZhbXA7cXVvdDsgcmVzdHJpY3RlZD0mYW1wO3F1b3Q7dHJ1ZSZhbXA7cXVvdDsmYW1wO2d0OyZhbXA7bHQ7ZGM6dGl0bGUmYW1wO2d0O1JheSBMYU1vbnRhZ25lIFJhZGlvJmFtcDtsdDsvZGM6dGl0bGUmYW1wO2d0OyZhbXA7bHQ7dXBucDpjbGFzcyZhbXA7Z3Q7b2JqZWN0Lml0ZW0uYXVkaW9JdGVtLmF1ZGlvQnJvYWRjYXN0JmFtcDtsdDsvdXBucDpjbGFzcyZhbXA7Z3Q7JmFtcDtsdDtkZXNjIGlkPSZhbXA7cXVvdDtjZHVkbiZhbXA7cXVvdDsgbmFtZVNwYWNlPSZhbXA7cXVvdDt1cm46c2NoZW1hcy1yaW5jb25uZXR3b3Jrcy1jb206bWV0YWRhdGEtMS0wLyZhbXA7cXVvdDsmYW1wO2d0O1NBX1JJTkNPTjYwNDIzX1hfI1N2YzYwNDIzLTAtVG9rZW4mYW1wO2x0Oy9kZXNjJmFtcDtndDsmYW1wO2x0O3VwbnA6YWxidW1BcnRVUkkmYW1wO2d0O2h0dHBzOi8vY29udC0yLnAtY2RuLnVzL2ltYWdlcy9wdWJsaWMvaW50LzQvMS83LzQvODg2NDQ3MDE0NzE0XzEwODBXXzEwODBILmpwZyZhbXA7bHQ7L3VwbnA6YWxidW1BcnRVUkkmYW1wO2d0OyZhbXA7bHQ7L2l0ZW0mYW1wO2d0OyZhbXA7bHQ7L0RJREwtTGl0ZSZhbXA7Z3Q7JnF1b3Q7LyZndDsmbHQ7L0luc3RhbmNlSUQmZ3Q7Jmx0Oy9FdmVudCZndDs8L0xhc3RDaGFuZ2U+PC9lOnByb3BlcnR5PjwvZTpwcm9wZXJ0eXNldD4=
translatable false
unixTime 1525727163067
value {"station":"Ray LaMontagne Radio","name":null,"artist":null,"album":null,"trackNumber":"1","status":"playing","level":"","uri":"x-sonosapi-radio:ST%3a3622823438410124886?sid=236&flags=0&sn=18","trackUri":"x-sonos-http:PcukbeholDC2_kxNIS5LSn8JQPhSVBLLjlsfIlufrG0MyY6xnzKdxiyjfrz7-Jpf6DlxKDGwaBobtRSBKHQqPPg%3a%3aST%3a3622823438410124886%3a%3aRINCON_5CAAFD0756AC01400%3a1698538307.mp3?sid=236&flags=0&sn=18","transportUri":"","enqueuedUri":"x-sonosapi-radio:ST%3a3622823438410124886?sid=236&flags=0&sn=18","metaData":"<DIDL-Lite xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\" xmlns:r=\"urn:schemas-rinconnetworks-com:metadata-1-0/\" xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\"><item id=\"000c0000ST%3a3622823438410124886\" parentID=\"-1\" restricted=\"true\">Ray LaMontagne Radio<\u002fdc:title>object.item.audioItem.audioBroadcast<\u002fupnp:class><desc id=\"cdudn\" nameSpace=\"urn:schemas-rinconnetworks-com:metadata-1-0/\">SA_RINCON60423X#Svc60423-0-Token<\u002fdesc>https://cont-2.p-cdn.us/images/public/int/4/1/7/4/886447014714_1080W_1080H.jpg<\u002fupnp:albumArtURI><\u002fitem><\u002fDIDL-Lite>","trackMetaData":"<DIDL-Lite xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\" xmlns:r=\"urn:schemas-rinconnetworks-com:metadata-1-0/\" xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\"><item id=\"-1\" parentID=\"-1\"><res protocolInfo=\"http-get::audio/mp3:\" duration=\"0:03:54\">x-sonos-http:PcukbeholDC2_kxNIS5LSn8JQPhSVBLLjlsfIlufrG0MyY6xnzKdxiyjfrz7-Jpf6DlxKDGwaBobtRSBKHQqPPg%3a%3aST%3a3622823438410124886%3a%3aRINCON_5CAAFD0756AC01400%3a1698538307.mp3?sid=236&flags=0&sn=18<\u002fres>https://mediaserver-cont-ch1-1-v4v6.pandora.com/images/public/int/8/2/0/7/886973267028_500W_500H.jpg<\u002fupnp:albumArtURI>object.item.audioItem.musicTrack<\u002fupnp:class>You Are The Best Thing<\u002fdc:title>Ray LaMontagne<\u002fdc:creator>Ray LaMontagne<\u002fr:albumArtist>Gossip In The Grain<\u002fupnp:album>-6.450000<\u002fr:trackGain>PcukbeholDC2_kxNIS5LSn8JQPhSVBLLjlsfIlufrG0MyY6xnzKdxiyjfrz7-Jpf6DlxKDGwaBobtRSBKHQqPPg<\u002fr:tiid>NONE<\u002fr:type>NEUTRAL<\u002fr:connotation><\u002fr:rating><r:policies mask=\"0x80020008\" flags=\"0x80020008\"/><\u002fitem><\u002fDIDL-Lite>"}
viewed false
jacobwtyler commented 6 years ago

@jishi That's an event log with a bunch of metadata that was sent to my SmartThings IDE device log when I started a radio station. Anything in there of value?

jacobwtyler commented 6 years ago

{ "station": "Ray LaMontagne Radio", "name": null, "artist": null, "album": null, "trackNumber": "1", "status": "playing", "level": "", "uri": "x-sonosapi-radio:ST%3a3622823438410124886?sid=236&flags=0&sn=18", "trackUri": "x-sonos-http:P7i9YD-NnevC_kxNIS5LSn6fwB8boasYqkct437Y-CxSZlzJyLxOKIj8O_lgSDsetxU5C4XnZmIZoZ62FVjRUrQ%3a%3aST%3a3622823438410124886%3a%3aRINCON_5CAAFD0756AC01400%3a1698538307.mp3?sid=236&flags=0&sn=18", "transportUri": "", "enqueuedUri": "x-sonosapi-radio:ST%3a3622823438410124886?sid=236&flags=0&sn=18", "metaData": "<DIDL-Lite xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\" xmlns:r=\"urn:schemas-rinconnetworks-com:metadata-1-0/\" xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\"><item id=\"000c0000ST%3a3622823438410124886\" parentID=\"-1\" restricted=\"true\">Ray LaMontagne Radio</dc:title>object.item.audioItem.audioBroadcast</upnp:class><desc id=\"cdudn\" nameSpace=\"urn:schemas-rinconnetworks-com:metadata-1-0/\">SA_RINCON60423X#Svc60423-0-Tokenhttps://mediaserver-cont-dc6-2-v4v6.pandora.com/images/public/int/4/0/6/4/886446994604_1080W_1080H.jpg</upnp:albumArtURI>", "trackMetaData": "<DIDL-Lite xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\" xmlns:r=\"urn:schemas-rinconnetworks-com:metadata-1-0/\" xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\"><item id=\"-1\" parentID=\"-1\"><res protocolInfo=\"http-get::audio/mp3:\" duration=\"0:03:31\">x-sonos-http:P7i9YD-NnevC_kxNIS5LSn6fwB8boasYqkct437Y-CxSZlzJyLxOKIj8O_lgSDsetxU5C4XnZmIZoZ62FVjRUrQ%3a%3aST%3a3622823438410124886%3a%3aRINCON_5CAAFD0756AC01400%3a1698538307.mp3?sid=236&flags=0&sn=18https://mediaserver-cont-ch1-2-v4v6.pandora.com/images/public/int/9/2/6/5/00008817025629_500W_500H.jpg</upnp:albumArtURI>object.item.audioItem.musicTrack</upnp:class>When The Stars Go Blue</dc:title>Ryan Adams</dc:creator>Ryan Adams</r:albumArtist>Gold</upnp:album>-2.250000</r:trackGain>P7i9YD-NnevC_kxNIS5LSn6fwB8boasYqkct437Y-CxSZlzJyLxOKIj8O_lgSDsetxU5C4XnZmIZoZ62FVjRUrQ</r:tiid>NONE</r:type>NEUTRAL</r:connotation></r:rating><r:policies mask=\"0x80020008\" flags=\"0x80020008\"/>" }

jacobwtyler commented 6 years ago

Sorry for all the info if that's not what you were looking for but here's a picture of where each of those two posts are coming from:

image

image

Like I say, this is just device info from my SmartThings hub. Their Sonos API is outdated and broken for the most part (especially when it comes to Spotify) but their Pandora implementation actually works fine. Thought this might help. Let me know how else I could obtain that info and I'll work on it.

jishi commented 6 years ago

Was this when playing a Pandora station? It looks vastly different, a completely different service ID which would explain a lot.

On Mon, May 7, 2018, 23:25 jacobwtyler notifications@github.com wrote:

Sorry for all the info if that's not what you were looking for but here's a picture of where each of those two posts are coming from:

[image: image] https://user-images.githubusercontent.com/18349823/39725854-bec27a06-5212-11e8-8fcd-95dbc1507bc1.png

[image: image] https://user-images.githubusercontent.com/18349823/39725788-91c5b126-5212-11e8-8aaf-dbcc047cf970.png

Like I say, this is just device info from my SmartThings hub. Their Sonos API is outdated and broken for the most part (especially when it comes to Spotify) but their Pandora implementation actually works fine. Thought this might help. Let me know how else I could obtain that info and I'll work on it.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/jishi/node-sonos-http-api/issues/614#issuecomment-387211490, or mute the thread https://github.com/notifications/unsubscribe-auth/ADBNI9L4bM7YnkL677jwIxaWsdjFUSxwks5twLu0gaJpZM4T1lfX .

jacobwtyler commented 6 years ago

@jishi yes I was playing a Pandora station named Ray Lamontagne Radio

jacobwtyler commented 6 years ago

@jishi Any progress on this issue? What's another way to metadata from Sonos when I start a Pandora station? I'd like to confirm that SmartThings IDE isn't seeing some encrypted form of metadata. I have a feeling it might be.

jishi commented 6 years ago

@jacobwtyler I don't think SmartThings IDE is wrong, the metadata looks normal but seems like the Pandora integration on Sonos has changed, meaning that if you remove and re-add Pandora you get a different type of metadata nowadays. I'll see if I can get some time and provide you with a test-version to evaluate if it fixes your issue. Problem will be that it will break all others Pandora-integration if they haven re-added their Pandora account, which is a bit unfortunate.

jacobwtyler commented 6 years ago

@jishi thank you so much. Really look forward to it.