我正在玩谷歌音乐。我想看看我是否可以写一个应用程序,将我上传到谷歌音乐的音乐文件流式传输。到目前为止,我已经成功地使用ClientLogin进行了身份验证并访问了music.google.com页面。但是,无论何时我尝试访问http://music.google.com/music/services/loadalltracks,这个页面包含了我所有的JSON格式的曲目,我得到了一个401: Unauthorized错误。但是,如果我传递包含SID和HSID的cookie,它就可以工作,并且我可以访问该页面。
有没有人知道为什么它不能在ClientLogin上工作,除了谷歌不支持它的音乐?你有没有使用其他谷歌服务的类似经验?如果我不能让ClientLogin工作,有没有办法使用SID来解决这个问题呢?我不知道HSID是如何生成的。
发布于 2011-08-21 02:00:10
嗯,据我所知,发送SID和HSID cookie使请求工作的原因是因为您正在模拟普通用户访问服务的方式。你不能走常规应用程序的方式,因为谷歌音乐不支持这一点(据我的互联网研究显示,谷歌音乐没有API )。
哦,还有一件事:谷歌不鼓励人们使用ClientLogin,而是告诉人们使用OAuth ("ClientLogin是谷歌的专有授权API……你应该避免使用这个服务。“在http://code.google.com/apis/gdata/docs/auth/overview.html中找到),所以将来您可能会想要使用它。也许它甚至可以在这种情况下工作(它发送一个与ClientLogin - OAuth令牌不同的令牌,而不是Auth令牌),尽管我对此表示怀疑。
不管怎样,我希望这能把事情说清楚。
发布于 2012-02-25 02:58:30
由于没有针对Google Music的官方api,因此您需要完整的SSO凭据才能使用这些端点。要做到这一点,最简单的方法是模拟一个浏览器(例如机械)。
我的unofficial Google Music api实现这一点的方法要简单一些,但需要做更多的工作:使用clientlogin向音乐管理器服务进行身份验证,然后使用tokenauth升级这些凭据。这并不是一个真正的公共功能,但它由第三方here和谷歌设计文档here描述。您需要的特定端点在我的代码here (在clientlogin.py和tokenauth.py中)中。
您还需要在查询字符串中发送u=0
和xt=[value of xt cookie]
。第一个参数指定您使用的是哪个帐户(如果您登录了多个帐户),第二个参数是一个xsrf标记。
https://stackoverflow.com/questions/7049330
复制相似问题