试图获取指定用户豆瓣fm当前播放的歌曲,分享下我几次不成功的尝试

2012-12-09 00:58:41 +08:00
 iloahz
首先当然是看api了,熟悉的大大都知道,fm那一块是没有官方的api的,流传的比较广的是这个[http://code.google.com/p/drhac/wiki/Protocol],其中只提到了获取列表,加心去心等广大豆瓣fm播放器的功能,并无这种查询记录的功能。

然后找到了(豆瓣fm秀)[http://douban.fm/service/badgemaker],可以展示最近加红心的若干条记录,于是发现竟然还是存在api的,真相:

http://api.douban.com/people/48310601/favsongs?max-results=9&alt=xd&callback=db_success2&apikey=0f85e9acfb703eb32e91bd06f250bc19

竟然还可以设置max-results!!虽然最大貌似50左右。

然而。。。。这。。。貌似也没什么用啊,而且实在逼急了,解析网页总是可以获得所有的播放历史记录和红心的。

然后神经质打开了两个douban.fm窗口,惊讶的发现播放其中一个,另一个就会暂停,感觉一定是服务器发什么指令过来了,兴冲冲的跑去抓包,无果。

吃饭,写作业,洗澡。。。

突然想到分析下播放历史记录的时间没准可以搞定,跑网页上一看竟然没有显示时间!!我想数据库里应该是有时间的吧。。。。当年设计没那么省吧。。。不过人家不显示也没办法。

突然又想起什么,打开chrome->douban.fm,然后ie->douban.fm,妹的,两首不同的歌混杂在一起,如同当时的心情,怪不得没抓到包。于是无责任猜想了一下,douban接受一个请求,包含用户,最近播放等信息,返回一个播放列表,over。人家玩的是真电台啊!而且目测一次会返回若干条,那么的话。。。。。douban服务器上也不知道他妹的现在在听哪首歌了。。。

不过,问题还没有被证伪,近似结果也是完全可以接受滴嘛~

不过,对如何得到近似结果也没有想法了。。。感觉还是存在某种tricky的方法可以搞定的。

待搞。
3171 次点击
所在节点    分享创造
4 条回复
odys
2012-12-10 21:47:09 +08:00
记得ubuntu下有个douban.fm的播放器插件,播放列表每次刷新10首歌左右,播完以后又更新一个列表。
udonmai
2012-12-10 22:00:48 +08:00
leofml
2012-12-10 23:26:34 +08:00
服务器知道你在听什么歌http://bubbler.labs.douban.com/
iloahz
2012-12-11 11:14:47 +08:00
@leofml 很感谢提供思路。测试了一下,貌似不是服务器返回的,我用chrome打开bubbler,用ie打开fm,发现是检测不到的。得在同一个浏览器下,两个浏览器同时放的话,bubbler都是显示自己浏览器当前播放的,完全不受另一个影响。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/54457

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX