V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
iloahz
V2EX  ›  分享创造

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

  •  
  •   iloahz ·
    iloahz · 2012-12-09 00:58:41 +08:00 · 3242 次点击
    这是一个创建于 4350 天前的主题,其中的信息可能已经有所发展或是发生改变。
    首先当然是看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的方法可以搞定的。

    待搞。
    4 条回复    1970-01-01 08:00:00 +08:00
    odys
        1
    odys  
       2012-12-10 21:47:09 +08:00
    记得ubuntu下有个douban.fm的播放器插件,播放列表每次刷新10首歌左右,播完以后又更新一个列表。
    udonmai
        2
    udonmai  
       2012-12-10 22:00:48 +08:00
    leofml
        3
    leofml  
       2012-12-10 23:26:34 +08:00
    服务器知道你在听什么歌http://bubbler.labs.douban.com/
    iloahz
        4
    iloahz  
    OP
       2012-12-11 11:14:47 +08:00
    @leofml 很感谢提供思路。测试了一下,貌似不是服务器返回的,我用chrome打开bubbler,用ie打开fm,发现是检测不到的。得在同一个浏览器下,两个浏览器同时放的话,bubbler都是显示自己浏览器当前播放的,完全不受另一个影响。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1064 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 19:56 · PVG 03:56 · LAX 11:56 · JFK 14:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.