实战如何让百度网盘突破下载速度
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
谁家宽带不是一两百兆(bit/s),百度网盘故意限速30KB/s甚至更低,还时不时下载失败,干扰正常使用。花钱开通他家超级会员才是家里带宽下正常下载速度(十来兆每秒)!How Evil! | |
百度网盘Mac应用里普通用户下载速度 | |
作为一个技术宅,怎么可以坐得住呢?于是Chrome+开发者模式看了一圈,看得到一些verify账号密码的HTTP请求响应,但由于streaming和下载还是不一样的,服务端和客户端js里的协同处理过于复杂,搞的没有脾气,放弃。 | |
后来跳出框框,想到专门负责下载的百度网盘应用会不会简单点,Next show me the way~ | |
下载Wireshark,侦听一会数据包,一堆TCP收发,首先得找到当前下载源的百度服务器IP(会有多个,每次都需要自己挖),这个有很多办法,我偷懒在mac的活动管理器里找到“百度网盘”,在其打开的文件和端口tab里,会展示这么一行: | |
192.168.3.39:55191->117.34.84.21:http | |
居然有http连接,而不全是https。下https的链接同理,filter里http换成https,ip换成对应ip。 | |
然后在wireshark的filter里输入http && ip.addr == 117.34.84.21,原来的TCP流会变为HTTP的,选择Get /file/blabla的某一行(代表一个文件下载),右键,选择Follow > HTTP Stream,会看到下载请求(含登陆token)是怎么发的,然后自己找个工具这样发出去就万事大吉。 | |
马赛克真好看 | |
比如我拿youtube-dl这个视频下载神器(可以根据链接下载很多国内外网站的视频),配合aria2这个多线程多任务同时下载的放大器,就轻松拿到700KB/s的速度,当然离会员好几兆还差得远,技术上其实还有优化空间。 | |
不用aria2的速度:172KB/s | |
用了aria2多线程下的速度:710KB/s | |
最后放一个命令行: | |
youtube-dl --add-header "Accept-Encoding: gzip, deflate" --add-header "User-Agent: netdisk;2.2.1;pc;pc-mac;10.14.3;macbaiduyunguanjia" --add-header "X-Download-From: baiduyun" --add-header "Cookie: BDUSS=1RJS21oNH.....NgM;STOKEN=c2ef......6cb8b" "http://xact01.baidupcs.com/file/9ace1........184932?bkt=en-2bd419aa............=1&method=download>channel=1>rate=0" -o baidu3-mt-j10x20.mp4 --external-downloader aria2c --external-downloader-args "-j 10 -x 15 --summary-interval=0" "$@" | |
小贴士:add-header里的部分贴上Follow HTTP那个框里的暗红字体里一些重要的头,但不要带Range那个HTTP头,否则下载的是一部分:( 粗体是下载的URL,原样复制过来。 | |
免责声明:文中所述技巧仅供学术研究,请勿用于任何商业用途,否则使用者自行承担后果。 | |
图片丢了,看下方链接 | |
链接:https://www.jianshu.com/p/e883c92093d5 | |
来源:简书 | |
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment