谷歌客户登录授权和谷歌音乐
本文关键字:谷歌 音乐 登录 客户 授权 | 更新日期: 2023-09-27 18:05:22
我正在玩谷歌音乐。我在试着看看能不能写一个应用程序,把我上传到谷歌音乐上的音乐文件流式传输。到目前为止,我已经成功地使用ClientLogin验证了自己,并访问了music.google.com页面。但是,每当我尝试访问http://music.google.com/music/services/loadalltracks(包含JSON格式的所有曲目的页面)时,我都会得到401:未经授权的错误。但是,如果我传递包含SID和HSID的cookie,它就可以工作,并且我可以访问该页面。
有谁知道为什么它不工作与ClientLogin,谷歌不支持它与音乐之外?你是否有过使用其他谷歌服务的类似经历?如果我不能让ClientLogin工作,是否有任何方法可以绕过它,使用SID?我不知道HSID是如何生成的
由于Google Music没有官方api,因此您需要完整的SSO凭据才能使用这些端点。最简单的方法是模拟浏览器(例如使用mechanize)。
我的非官方Google Music api实现这一点的方式更简洁,但工作更多:使用clientlogin对Music Manager服务进行身份验证,然后使用tokenauth升级这些凭据。这不是一个真正的公共功能,但它是由第三方在这里描述,并在这里的谷歌设计文档。您需要的特定端点在我的代码中(在clientlogin.py和tokenauth.py中)。您还需要在查询字符串中发送u=0
和xt=[value of xt cookie]
。第一个参数指定您使用的是哪个帐户(如果您登录了多个帐户),第二个参数是一个xsrf令牌。
嗯,据我所知,发送SID和HSID cookie使请求工作的原因是因为您正在模拟普通用户访问服务的方式。你不能走常规应用程序的方式,因为谷歌音乐不支持(据我的互联网研究显示,谷歌音乐没有API)。
哦,还有一件事:谷歌不鼓励人们使用ClientLogin,而是告诉人们使用OAuth("ClientLogin[是]谷歌的专有授权API…您应该避免使用[此]服务。"(可在http://code.google.com/apis/gdata/docs/auth/overview.html找到),以便将来您可能想要使用它。也许它甚至可以在这种情况下工作(它从ClientLogin发送一个不同的令牌- OAuth令牌而不是Auth令牌),尽管我对此表示怀疑。
无论如何,我希望这能澄清问题。