如何从 Sonos 家庭获取音乐源列表?

Posted

技术标签:

【中文标题】如何从 Sonos 家庭获取音乐源列表?【英文标题】:How to obtain list of Music Sources from the Sonos household? 【发布时间】:2019-07-22 14:55:28 【问题描述】:

我正在尝试获取 Sonos 家庭订阅的音乐服务列表。是否可以从 HTTP API 或任何其他来源获取此类信息?如果是,那么在什么条件下?

我已经分析了 Sonos Connect 和 Windows Sonos Controller 之间的流量。我发现,有关音乐服务的信息是在 NOTIFY HTTP 请求的 ThirdPartyMediaServersX 标记内从 Connect 传输到 Controller 的。但是这个内容是用类似base64的密码编码的。

<e:propertyset xmlns:e="urn:schemas-upnp-org:event-1-0">
<e:property>
<ThirdPartyMediaServersX>
2:oZoYgaU5pqEq6IauQ1hYVS0oCUJnqbCkJL1vXP/DoeijejEwUBQT8UG0CksUG9VcarvLhCyElhKTUjfhQt0SAcV2oBOyLJ5BCmjd7TcJfPrVuTGHczd5/AS2tgj85n0U9yU9EwwHROFb5uV09syZNLVaZuJnENCWRKatIq1SNMm1SE4tHneLG6ULQoDOR50nf7TwyRQbkit8Bvy+kZyNPlrgBZFGmizoRmYjW8COFvHJpZhREEGruhQ2J6A8gnQOWyFzstAyHNZeLqp2xcNGnts6f2DQ56r/ducstbibFH0SZOZC0XM/BB4DvOT8UalezPL0R9/s8Jibm5T6mS1FWk14GWg2RMmRBIVE5G/gG2c=
</ThirdPartyMediaServersX>
</e:property>
</e:propertyset>

我希望获得音乐服务列表,但实际列表被隐藏了。

【问题讨论】:

好问题@Igor 【参考方案1】:

如您所见,Sonos 前段时间禁用了此功能。

我花了很多时间弄清楚它是如何工作的,现在我有了一个“工作循环”。 External music services 描述了要做什么。

并且sonos-ts 支持external music services。如果你阅读了我的第一个链接并检查了这个库中的代码,你应该能够弄清楚如何用你的编程语言来做到这一点。

我知道这无法访问 Sonos 保存的列表,但此工作循环还将令牌保存在设备上以供每个客户端应用程序使用。

最近我发现有人建立了music service emulator。所以这是外部音乐服务的双方。

【讨论】:

【参考方案2】:

Sonos API 不支持此功能。

【讨论】:

Sonos 应用程序不是最好的(或最快的)。所以这似乎是一个好问题。我也在研究协议,如果您(Sonos)不想帮助处理过程只会花费更长的时间,但由于应用程序以纯文本形式与扬声器通信,因此应该可以找到所需的数据。

以上是关于如何从 Sonos 家庭获取音乐源列表?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用c#和sonos api获取注册到帐户的家庭列表?

Sonos 音乐服务自定义主屏幕,如 Spotify

在一个 Sonos 音乐合作伙伴帐户下发布多项服务

如何从 Facebook/Spotify 获取音乐收听数据?

如何在没有身份验证的情况下获取 Spotify 音乐列表

手机影音10--音乐列表