这个下载地址有什么规律?

2015-04-13 23:28:51 +08:00
 yaoppp

在v2ex的第一次发帖。
听CRI easyfm的飞鱼秀很多年,一直追求听完整的3个小时,但早上直播的时间经常不方便,所以这些年都下载回放。前些日子该节目改版,只能用easyfm的app听,通过抓包找到了音频的下载地址,但是文件名没什么规律,如:
4月10号的
http://123.56.91.34/Uploads/media/20150410/20150410134301_66025.mp3

4月13号的
http://123.56.91.34/Uploads/media/20150413/20150413140314_46952.mp3

在日期之后接了很多看似无关的数字。

每天的节目都要抓一下包也不是不可以,但是比较麻烦。有高人能看出后面这段数字的规律吗?多谢。

4136 次点击
所在节点    问与答
35 条回复
abelyao
2015-04-13 23:30:50 +08:00
猜测文件名应该是由 年月日时分秒_毫秒 组成的,属于有规律、但没连续性的,要抓取的话,还是从它的 referer 解析出来吧
surftheair
2015-04-13 23:34:43 +08:00
遍历一遍。

话说用它的app听不就行了么?为什么一定要找到音频地址?
surftheair
2015-04-13 23:37:30 +08:00
另外蜻蜓fm有实时的节目回放录音,你可以去研究下
surftheair
2015-04-13 23:45:10 +08:00
yaoppp
2015-04-13 23:51:12 +08:00
@surftheair 谢谢。
cri的app做得非常只烂,安卓版不支持5.x,iOS版不能拉播放条。蜻蜓只保留前一天的,不过最大的问题是它不会把中间的新闻和广告去掉。11位随机数遍历一遍还是颇有难度的……
surftheair
2015-04-14 01:38:46 +08:00
@yaoppp 遍历开玩笑的。蜻蜓FM好像有最近30天的回放哦。就算只有前一天的话貌似也够了。

1,你可以做个rss用podcast订阅,每天自动下载到你的播放设备上
2,你可以在你自己的vps上写个脚本每天自动下载到vps上,定期删除,写个rss用podcast订阅,在你的播放设备上随时点播

嗯,我都干过,以前还得自己找各种工具自己录。现在蜻蜓FM是个好东西
surftheair
2015-04-14 01:40:21 +08:00
再补充一句,蜻蜓FM本身体验就很好的,为何不直接在上面回听?
Daniel65536
2015-04-14 02:24:57 +08:00
既然你都抓包了,为啥没找到那个返回音频文件地址的API呢?

好吧,我直接告诉你它们所有的API,你直接打开这个网页: http://123.56.91.34

上面把API的使用方式都列出来了。

#我果然是找API大师

比如:
[视听列表接口] -----------------------------------------------------------------
接口地址: http://ezfm.china-plus.net/index.php?m=index&a=cat_list&cid=134
传输方式:POST
param:
cid: 栏目id
return:
data
id: id值(唯一的)
cid:所属栏目id
title:名称
compere:主持人
lpic:图片
url:链接地址
duration:时长
brief:简介
m_share:分享量
open_status:打开方式
hits:点击量
b_hits:浏览量
c_hits:评论量
d_hits:下载量
update_time:更新日期
f_time:时间描述
size:文件大小
yaoppp
2015-04-14 10:18:24 +08:00
@Daniel65536 这个页面我也发现了。可惜我不是专业的,能力不足,根本不知道怎么用。比如win里装个什么命令行一类的软件,然后输入post http://ezfm.china-plus.net什么什么之类的,就会返回每天的下载地址吗?
yaoppp
2015-04-14 10:19:09 +08:00
@surftheair 3个小时的节目中间有40多分钟的广告、新闻什么的,这些蜻蜓都没剪掉。
ryd994
2015-04-14 10:59:10 +08:00
@yaoppp curl……
这个你要从爬虫开始学,这就是个爬虫而已
surftheair
2015-04-14 11:12:54 +08:00
@Daniel65536 这个API貌似不管用啊,返回都是{"sumcount":null,"count":0,"comment":false},飞鱼秀的cid应该是224吧?

{
"id":"3",
"classname":"飞鱼秀",
"pub_share":"",
"list":[
{
"id":"224",
"classname":"飞鱼秀 最那什么的早间节目",
"brief":"小飞、喻舟,周一到周五早8点--11点",
"lpic":"http://123.56.91.34/Uploads/image/20150325/20150325200234_27466.jpg",
"a_lpic":"http://123.56.91.34/Uploads/image/20150325/20150325200247_35801.jpg",
"i_lpic":"http://123.56.91.34/Uploads/image/20150325/20150325200256_95346.jpg",
"compere":"",
"pub_share":"",
"open_status":"1",
"pid":"3",
"bpath":"0-3-224",
"iscollect":"0",
"slist":0
}
]
},
surftheair
2015-04-14 11:14:49 +08:00
@yaoppp
1, 快进
2, 广告和新闻的时间固定,VPS上用工具自动剪掉,然后写个podcast rss,播放设备上订阅自动下载或者点播
Daniel65536
2015-04-14 13:31:52 +08:00
@surftheair cid随便举个栗子而已嘛……API参数都给列出来了剩下还有啥麻烦的,随便写就是嘛。
surftheair
2015-04-14 13:42:34 +08:00
@Daniel65536 我知道,我用上面的api找到楼主要的节目cid是224,但是这个cat_list一直都是返回错误
Daniel65536
2015-04-14 13:59:31 +08:00
看,参数表都有了,随便一条命令就能完成全部工作:

$ curl "http://ezfm.china-plus.net/index.php?m=index&a=cat_list&cid=224" -s | jq '.data[]|.title,.url' -r
飞鱼秀-电影催泪
http://123.56.91.34/Uploads/media/20150414/20150414115215_89404.mp3
飞鱼秀-如释重负
http://123.56.91.34/Uploads/media/20150413/20150413140314_46952.mp3
飞鱼秀-桌面背景
http://123.56.91.34/Uploads/media/20150410/20150410134301_66025.mp3
飞鱼秀-等我老了
http://123.56.91.34/Uploads/media/20150409/20150409114612_70668.mp3
飞鱼秀-初恋这件小事
http://123.56.91.34/Uploads/media/20150408/20150408133335_71534.mp3
飞鱼秀-垃圾食品
http://123.56.91.34/Uploads/media/20150407/20150407125619_19902.mp3
飞鱼秀-中国特色
……


甚至直接生成podcast feed:
$ curl "http://ezfm.china-plus.net/index.php?m=index&a=cat_list&cid=224" -s | jq '.data[]|"<item>\n<title>\(.title)</title>\n<link>\(.url)</link>\n<guid>\(.url)</guid></item>"' -r
<item>
<title>飞鱼秀-电影催泪</title>
<link>http://123.56.91.34/Uploads/media/20150414/20150414115215_89404.mp3</link>
<guid>http://123.56.91.34/Uploads/media/20150414/20150414115215_89404.mp3</guid></item>
<item>
<title>飞鱼秀-如释重负</title>
<link>http://123.56.91.34/Uploads/media/20150413/20150413140314_46952.mp3</link>
<guid>http://123.56.91.34/Uploads/media/20150413/20150413140314_46952.mp3</guid></item>
<item>
……

想干啥干啥。
Daniel65536
2015-04-14 14:01:29 +08:00
@surftheair
我这里cat_list有返回啊:
$ curl "http://ezfm.china-plus.net/index.php?m=index&a=cat_list&cid=224"
{"data":[{"id":"430","cid":"224","title":"\u98de\u9c7c\u79c0-\u7535\u5f71\u50ac\u6cea","compere":"","lpic":"http:\/\/123.56.91.34\/Uploads\/image\/20150414\/20150414115237_34310.jpg","url":"http:\/\/123.56.91.34\/Uploads\/media\/20150414\/20150414115215_89404.mp3","duration":"","brief":"","m_share":"0","pub_share":"","open_status":"1","hits":"95","b_hits":"322","c_hits":"6","d_hits":"132","update_time":"2015-04-14","f_time":"14\u5c0f\u65f6\u524d","size":"126.18"},{"id":"419","cid":"224","title":"\u98de\u9c7c\
surftheair
2015-04-14 14:05:49 +08:00
@Daniel65536 应该是我用的工具问题了,我看到要POST,就用的这个在线工具http://hurl.it发送参数的,一直出错。结果浏览器直接GET倒给出结果了。
rrkelee
2015-04-14 16:08:35 +08:00
规律就是 date('Ymd') . '/' . date('YmdHis') . '_' . mt_rand(10000,9999) , ^_^
rrkelee
2015-04-14 16:13:57 +08:00
差一个 9 , - -!

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

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

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

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

© 2021 V2EX