Closed rosynirvana closed 7 years ago
大神,可不可以先弄个下载标清和调用mpv 本地观看斗鱼标清的,
@lki2019 只拿标清的话,用h5的接口就够了,目前是可以用的curl 'https://m.douyu.com/html5/live?roomId=2532616' -H "User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 10_0 like Mac OS X) AppleWebKit/602.1.38 (KHTML, like Gecko) Version/10.0 Mobile/14A300 Safari/602.1"{"error":0,"data":{"hls_url":"http://hls3.douyucdn.cn/live/2532616r63nY0kyr_550/playlist.m3u8?wsSecret=4d14ce4d3440607c3f1c6f2e4cf4aee0&wsTime=1500354950&did=&ver="}}
--
别人的评论,说H5接口就能解析标清?
那现在把你的脚本先改一下,可以解析标清,下载和本地播放被
毕竟你这个py脚本 可以直接一键播放和一键下载 很方便
至于高清 超清 现在没接口那就等等吧
再反馈下,我之前那个收费版的我今天传优酷时看了下,竟然有超清和高清的 也有标清的
不知道他接口怎么弄的 就是aid=dytool2 那个
curl for windows
额,32位还是收费的
下载不下来
html5的只能看5分钟 你要看可能没问题,录大概就不行了吧
收费的是with auto updates and sftp 本身不要收费的
我看见下面都是buy now
buy now上面的三个按钮可以点
这个网站界面有点老式了
我知道,那几个点了 都下载不了 ··
要先点左上角的recaptcha验证 不行就用curl自己的binary吧 https://curl.haxx.se/download.html https://curl.haxx.se/dlwiz/?type=bin&os=Win32&flav=-&ver=-
好像挺复杂的
第5和第6个 都试了一下
cmd下运行了
返回的一堆东西 有乱码什么的 好像没你说的
D:\下载\curl-7.54.1\I386>
这方法不是我等小白用户,
本着研究的精神
我换了个猎豹浏览器 正常返回结果了
地址我自己组合了下,如何让返回结果排版成上面的样子? 把curl的结果pipe给js-beautify
不太懂你说的这个意思
地址得到了,我放到vlc和pot播放器都无法播放啊
大神向你反馈一下,我找到解决办法了。
urlhelper3.45 安装这个嗅探
嗅探出来的地址 和你这个办法类似
地址有了,如何下载和播放呢?
我测试了,IDM 维棠 都不行 ··
我用的旋风下载 可以下载,怎么播放呢,
把生成的文件 拖到pot 播放器里可以看····
你sniff的是api的地址,从里面拼的url 还是直接sniff到flv的地址?
没有拼 直接得到的地址
2段
复制的第1段到旋风上直接下载的
然后我又用这个嗅探软件 嗅了下 那个收费的录像软件
【备注 auth=a226240b8f6e62a5034384c7fcdd9ea8 这个值如果主播没开播 几秒会自动变一下】
所以我感觉 方法应该是类似的 只是收费的用的接口好像是token=app-dytool2-0-
正常抓到的是token=web-douyu-
不明白 我的或别人的测试结果,一个cdn url只能访问一次 但你那里似乎不遵循这个限制
复制那个前面有IP的 才可以下载,复制第一个无法下载
但是呢 这个60开的IP 我这里是无法下载的,别人用软件嗅出来的地址 IP是50开 或者其他开
然后发给我,我正常下载···
可能前面这个IP 有些会有限制 ,有些是不限制的?
可能是各个地区的用户 自动分配不同的服务器?
然后呢 我去嗅别的直播间 我就把第2个地址复制出来 然后吧前面的IP修改成我可以正常下载的IP比如50开的
后面一长串不变
这样正常下载了
说明还是前面那个IP 很关键····
你之前用potplayer看的是哪种地址?
7月8号之前都是用ydkl 解析出来的地址 直接pot上看的 ,9号就不行了
今天嗅探出来的地址 我也试着在pot VLC上看,都看不了···
只能下载 不能看,
现在观看 只能通过生成的录像文件打开看,和直播有5 ,6妙的延时···
在给你反馈一下我的测试
直接IDM嗅探出的地址 ,我开第一个直播间前面IP是202开的 无法下载
换了个直播间 是58开的 点下载 会出现无法下载 然后从下载栏右键继续下载 就可以了
地址是这个http://58.55.123.50/hdl3a.douyucdn.cn/live/68632rqNrKO4NwmJ_900.flv?wsAuth=f9837502e71020c88c152c94fd4736fa&token=web-douyu-113817806-68632-da12c6e083cc11df18f5f4419d74848d&logo=0&expire=0&did=701917587FC32BCE0B4D2938C6C46B67&ver=2017071351&wshc_tag=0&wsts_tag=596f4322&wsid_tag=1b48424&wsiphost=ipdbm
斗鱼有三种服务器
type | url pattern | stateful or stateless | 验证内容 |
---|---|---|---|
api | https://www.douyu.com/lapi/live/getPlay/ |
stateless | 只验证payload中的checksum |
dispatcher | http://*/douyucdn.cn/ |
stateful | 验证token,token在验证后失效 |
cdn | http://{IP_ADDR}/*/ |
stateless | 可能验证UA和其他,也可能不验证 |
你描述的以IP开头的url是第三种,有些软件能访问,有些不行,可以访问多次,这些属于预期内 为什么之前potplayer能访问dispatcher就不知道了
我在大胆推测下,
我是联通,
这个58开 和上次那个50开 我查了下都是电信IP
而我无法下载的 那几个IP我看了下是联通IP,我把联通IP前缀换成电信IP就正常下载了
有什么猫腻么?
根据 以上的测试,
大神能否吧py脚本修改一下,可以下载呢?这样我批处理直接一键就可以录制了
播放目前测试的情况好像都不能直接用地址播放,只能从生成的录像文件传到播放器这样看
修改脚本要有一个能用的接口啊
至于你的有些软件能用有些软件不能用,看上面那个表格吧
在反馈一下,
我传到网盘那个那个录像软件 就是只可以录制标清的
我抓了下
http://hls3.douyucdn.cn/live/10903rd9qlyyWL6p_550/507356.ts?wsApp=HLS&wsMonitor=-1
http://hls3.douyucdn.cn/live/10903rd9qlyyWL6p_550/507357.ts?wsApp=HLS&wsMonitor=-1
http://hls1a.douyucdn.cn/live/431972rWhhgguw35_550/507415.ts?wsApp=HLS&wsMonitor=-1
2个房间 格式类似··
他这个是利用的什么?
html5 你用这个能超过5分钟吗?
可以的,
![Uploading QQ图片20170719201733.png…]()
我前几天我就测试了,录制1个多小时也没问题··
@lki2019 是另一个次元,发生很多不一样的事。哈哈哈
其实你自己可以改一下脚本,从F12里copy curl的东西就是可用地址
@Justsoos 我我从17号那天大部分录像软件GG时,我手里依然有2款可以录制的,
只是想命令行下方便点,一键本地播放或者录制,所以才给大神们提供点测试呀
@lki2019 也许你运气好了那么2,3天,正赶上斗鱼全面部署的窗口,多用几天。窗口一过,你也一样被封了。
@Justsoos 额,今天196无头怪的粉丝已经更新出来了
作者:网盘已更新2.0.1版本, 仅作了针对本次加密算法变动的修复。32位版本暂无, 因为弄环境比较麻烦, 不打算花那个时间..
更新了 不过我这里是5分钟限制
我用你更新的这个 也是5分钟录制就不行了 可是我用传网盘那个是可以一直录制的,我上面也截图了, 什么原因呢?
你是用ffmpeg录的吗,还是软件内部的功能
打开软件 添加网址,解析 录制
wsTime=1500462531 他的是这个
你的是这个wsTime=1500465213
其他格式都是类似的
因为斗鱼CDN的验证机制是傻的…… 甚至可以拿到原画质的……
http://hls3.douyucdn.cn/live/3484r6QnwW1QEoxu/508284.ts?wsApp=HLS&sMonitor=-1
链接: https://pan.baidu.com/s/1pLRsXsv 密码: ctz6
你测试下吧,
我看格式都是类似的啊,为什么你的智能录制5分钟 我看他也是用ffmpeg的 因为目录下有
打开软件任务,新建任务 https://www.douyu.com/2135293 这个正在直播 就拿这个测试
我知道怎么做,但是不知道是不是可靠
恩 等你更新我在帮你测试
如一楼试了,不行,返回都是 403
curl "https://www.douyu.com/lapi/live/getPlay/262877" -H "Pragma: no-cache" -H "Origin: https://www.douyu.com" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Langua ge: zh-CN,zh;q=0.8,en;q=0.6" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36" -H "Content-Type: application/x-www-form-urlencoded" -H "Accept: */*" -H "Cache-Control: no-cache" -H "X-Requested-With: ShockwaveFlash/26.0.0.137" -H "Cookie: acf_devid=1a0889fc4c7452e227dc6ab68ca7f704; CNZZDATA1257184460=1807295081-1483674156-http^%^253A^%^252F^%^252Fwww.jianshu.com^%^252F^%^7C1488158673; acf_ditchName=bbt; acf_auth=99aftP7Ag^%^2FzmDXRrNzHzvFrUttWh8R3qxubKbOrga5RPBys4WZqAYNEE5oF2MaO^%^2BWL8OCadcyeGJAgc0CtAwB4wdygKDj^%^2BcUBX24LgU1I18e0FVnwWHi3to; wan_auth37wan=d5c392386fa3sBCSpXUeyL5nbGxCeTJ5sr9SwULZDRPwYz0kOx^%^2BDKZukmasBjhXuS2yGkfeHF8BqHSNXXcVdxnv1k8EQ0Q7aOfHSLdixyGll^%^2BSqT; acf_uid=1973891; acf_username=qq_bx7Z9H43; acf_nickname=^%^E5^%^93^%^A6^%^E5^%^93^%^A6^%^E5^%^93^%^A6^%^E5^%^93^%^A6^%^E5^%^93^%^A6^%^E6^%^81^%^A9; acf_own_room=0; acf_groupid=1; acf_phonestatus=1; acf_ct=0; acf_ltkid=82044920; acf_biz=1; acf_stk=24638be6041ace95; PHPSESSID=g0v36euvpntg165ps9qe2smh47; _dys_lastPageCode=page_studio_dzh,page_studio_dzh; _dys_refer_action_code=init_page_studio_dzh; smidV2=20170719204646ca8585f2b7e7e60cc04571758c2c1bf03533fcce88a671260; acf_did=10393286487835C67A6638DC955E6D18; Hm_lvt_e99aee90ec1b2106afe7ec3b199020a7=1500312020,1500386558,1500390521,1500467954; Hm_lpvt_e99aee90ec1b2106afe7ec3b199020a7=1500468821" -H "Connection: keep-alive" -H "Referer: https://www.douyu.com/DGR666" -H "DNT: 1" --data "cptl=0001^&did=10393286487835C67A6638DC955E6D18^&rate=2^&cdn=^&sign=0f510ff7b6c130e9c943088d9d63ff42^&ver=2017071351^&tt=25007813" --compressed
@Justsoos 大哥我上面说的很清楚啊,谷歌浏览器不行,返回403 至于为什么 我不清楚 换个浏览器就返回正常了,我换的猎豹浏览器,
猎豹就是抄的chrome 代码啊,国产流氓,金山全家桶。
试着装了一下猎豹,对比了一下,的确能用了:
curl "http://www.douyu.com/lapi/live/getPlay/262877" -H "Cookie: smidV2=201707192134308666f4d352b6bb4a2829009d3f174608ecac59a94a6a24680; _dys_lastPageCode=page_studio_dzh,; _dys_refer_action_code=init_page_studio_dzh; acf_did=CF6B11E8BC329EFD6098EF74DBDD2F93" -H "Origin: http://www.douyu.com" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: zh-CN,zh;q=0.8" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.75 Safari/537.36 LBBROWSER" -H "Content-Type: application/x-www-form-urlencoded" -H "Accept: */*" -H "Referer: http://www.douyu.com/DGR666" -H "X-Requested-With: ShockwaveFlash/20.0.0.306" -H "Connection: keep-alive" --data "cdn=&ver=2017071351&sign=57fb38be1af9f331de285b075e74e7e3&rate=0&tt=25007854&cptl=0001&did=CF6B11E8BC329EFD6098EF74DBDD2F93" --compressed
所以我也不清楚为啥谷歌浏览器会返回403 猎豹就反正正常 但是这样方法得到的地址,你也无法播放和下载啊
其实这个就是 swf 内部加密之后返回的 api 地址,但一般来说,这个 api 是带token的,只能用一次 -- 被浏览器内的 swf 用过了 -- 所以chrome 返回403 不奇怪,猎豹能返回数据就奇怪了。
@lki2019 返回数据拼接起来,就是可用的下载或者mpv播放链接了。
因为有人真的很需要这个
首先登陆,然后打开开发者工具
选择Network / 网络一栏,在左上角的搜索框里输入
lapi/live
能看到一个筛选结果,没看到刷新页面然后右键,copy as curl
如果环境里面没有curl,安装curl curl for windows 其他桌面环境自带curl
拷贝到终端里,windows的cmd,OS X的 其他/终端,运行 然后从返回结果里找到rtmp_url和rtmp_live两项,去掉rtmp_live中的转义字符,和rtmp_url中间用一个
/
连接起来,就是需要的urlQ & A:
js-beautify