豆瓣FM如何生成请求音乐列表的表单

发布于 2022-08-25 11:44:46 字数 947 浏览 17 评论 0

打开豆瓣FM,就会有歌曲播放,如下: 请输入图片描述

看了下浏览器加载的内容,发现浏览器通过访问:http://douban.fm/j/mine/playlist?type=n&sid=&pt=0.0&channel=0&from=mainsite&r=c7bc353d05,然后获得一些音乐的数据,如下图: 请输入图片描述

为了获得歌曲信息发出的具体请求信息如下: 请输入图片描述

里面有type、sid、pt、channel、from、r字段,但是这些字段的值是怎么得到的啊,现在只知道channel是频道的代码,0是私人频道,-3是红心频道等。其他字段的值不知道是怎么得到的,如果是随机生成的,那么随机函数在哪里呢?

已经看了https://code.google.com/p/drhac/wiki/Protocol 关于这些字段的表述,但是还是没有解决上面的疑问。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

寂寞美少年 2022-09-01 11:44:46

其实这个可以用对比方法来获取他的含义。
我看了一下。
r就是为了防止ajax缓存的一个类似时间戳的作用
channel就是频道,其实有实际意义就是这个参数
然后你给的文档也写的非常详细了啊。
你主要是想知道频道的id是如何获取。他是通过网页传参进去。

在douban.fm首页里面,源代码不是有写着他的频道和对应的id吗?
豆瓣截图
因为他频道是可以个人创建,你只需要把官方的频道手动复制下来就行了,好像就几十个。
你也可以通过搜索获取。。

http://douban.fm/j/explore/search?query=关键字&start=0&limit=20

昵称有卵用 2022-09-01 11:44:46

参考 github 上命令行电台:

Python版

node.js 版

青衫儰鉨ミ守葔 2022-09-01 11:44:46

http://douban.fm/j/mine/playlist?type=n&sid=966135&pt=206.8&channel=61&pb=64&from=mainsite&r=1d56c92354
上面的链接是一个基本的豆瓣歌曲列表请求。每次对歌曲进行操作(加/取消红心,下一个,加入垃圾桶等)都会重新向豆瓣发送新的歌曲请求。


type是对该歌曲的操作,取值有:n/r/u/b/e。
n:一开始进入豆瓣type取值为n
s:下一曲
r:对该歌曲加红心
u:取消该歌曲的红心
b:将该歌曲放入垃圾桶
e:对该歌曲没有任何操作
(若对歌曲无操作,不会更新歌曲列表,但是还会发送一个请求给豆瓣,类似于这种:http://douban.fm/j/mine/playlist?type=e&sid=2063541&channel=61&pt=286.9&pb=64&from=mainsite&r=aa555bfa8e,不过不会更新歌曲列表,该请求返回{"r":0})


sid是当前播放歌曲的id
sid可以在链接返回的json数据里面得到


channel是频道
频道获取链接:http://douban.fm/j/app/radio/channels


from字段的值固定为mainsite


其他字段还不清楚具体含义,不知道对获取歌曲列表有什么具体的影响。

随机
http://douban.fm/j/mine/playlist?type=n&sid=966135&pt=206.8&channel=61&pb=64&from=mainsite&r=1d56c92354
加红心
http://douban.fm/j/mine/playlist?type=r&sid=2065721&pt=25.9&channel=61&pb=64&from=mainsite&r=fd0c942a01
取消红心
http://douban.fm/j/mine/playlist?type=u&sid=2065721&pt=36.3&channel=61&pb=64&from=mainsite&r=1b51b45b21
加入垃圾桶
http://douban.fm/j/mine/playlist?type=b&sid=2065721&pt=111.9&channel=61&pb=64&from=mainsite&r=4b4f7703f5
下一曲
http://douban.fm/j/mine/playlist?type=s&sid=2017382&pt=119.5&channel=61&pb=64&from=mainsite&r=38834642d5
无操作顺序播放
http://douban.fm/j/mine/playlist?type=e&sid=2005025&channel=61&pt=224.8&pb=64&from=mainsite&r=75ceee4fa9

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文