前言
相信大家经常会苦恼于百度云的下载速度,且随着PanDowmload、BaiduExporter等工具的被封,除非开通SVIP,否则就只能忍受万恶的100Kb/s的龟速。
于是我想到了之前所使用的bypy的这个工具,仅需要一台linux主机就可以开启属于你个人的离线下载。
- Tips:bypy并没有破解百度云,不过搭配Aria2的下载速度也能达到300kb/s+了。
1.Bypy简介
bypy是一个调用百度网盘API的第三方应用,是一个百度云/百度网盘的Python客户端。主要的目的就是在Linux环境下(Windows下应该也可用,但没有仔细测试过)通过命令行来使用百度云盘的2TB的巨大空间。
值得一提的是,由于百度PCS API权限限制,程序只能存取百度云端我的应用数据/bypy目录下,我们在使用的时候需要将要下载的文件导入到该目录下就可以了。
2.安装与使用
通过
pip来安装:pip install bypy(支持Python 2.7+, 3.3+)运行
作为独立程序: 运行
bypy(或者python -m bypy,或者python3 -m bypy)可以看到命令行支持的全部命令和参数。
作为一个包,在代码中使用:
import bypy
简单的图形界面: 运行
bypygui使用
显示使用帮助和所有命令(英文):
1
bypy
第一次运行时需要授权,只需跑任何一个命令(比如
bypy info)然后跟着说明(登陆等)来授权即可。授权只需一次,一旦成功,以后不会再出现授权提示.更详细的了解某一个命令:
1
bypy help <command>
显示在云盘(程序的)根目录下文件列表:
1
bypy list
把当前目录同步到云盘:
1
bypy syncup
or
1
bypy upload
把云盘内容同步到本地来:
1
bypy syncdown
or
1
bypy downdir /
比较本地当前目录和云盘(程序的)根目录(个人认为非常有用):
1
bypy compare
更多命令和详细解释请见运行
bypy的输出。调试
- 运行时添加
-v参数,会显示进度详情。 - 运行时添加
-d,会显示一些调试信息。 - 运行时添加
-ddd,还会会显示HTTP通讯信息(警告:非常多)
- 运行时添加
直接在Python程序中调用
1
2
3from bypy import ByPy
bp=ByPy()
bp.list() # or whatever instance methods of ByPy class
3.结合Aria2实现离线下载
aria2是一个非常好用的命令行下载工具,可参考我的另一篇博客
你需要用参数--downloader aria2来让bypy调用aria2下载,还可以用--downloader-arguments来设置aria2的参数。
1 | # 使用如下命令下载dmg映像到当前文件夹 |
之后你需要将离线下载服务器中的数据拖下来,这里有很多种方式,回头我再来补充,反正都比100k/s强太多了~
补充:由于bypy一段时间不用之后会丢失token,你可以使用crontab定时刷新一下。
1 | crontab -e |



