BaiduPanFilesTransfers - 开源百度网盘资源批量转存工具

百度网盘批量转存程序,基于 Python 3.10 + Tkinter 构建,主要用于批量转存网络上分享的资源到自己的百度网盘。此外还带有批量分享和批量检测链接有效性的功能。

程序主界面:

百度网盘批量转存程序主界面截图

下载及运行

程序开发编译环境为 Win10 x64 专业版,操作系统 Win7 以上可直接下载运行,其他操作系统需要自行编译或配置运行环境。

下载方式:

  • 方式一:到 release 页面下载最新版的 exe 文件,文件名为 BaiduPanFilesTransfers.exe,下完可直接打开使用。
  • 方式二:到 百度网盘 下载对应压缩包 BaiduPanFilesTransfers.zip,下完后请解压缩再使用。

如果之前有运行过旧版本,直接用新版本文件覆盖掉旧文件即可使用。

手动编译

手动编译需要事先安装好 Python 3.6 以上版本。

编译步骤如下:

  1. 在安装有 Git 的主机上克隆本项目:

    git clone https://github.com/hxz393/BaiduPanFilesTransfers.git

    或者在 项目主页 点击蓝色<> Code 按钮选择 Download ZIP 选项,下载 源码压缩包,下载完毕后解压缩压缩包。

  2. 在命令行中切换到本项目路径。

    例如,在 Windows 中,打开 CMD 命令提示符或 PowerShell,输入:

    cd B:\2.脚本\BaiduPanFilesTransfers-master

    在 Linux/macOS 中,路径的分隔符会不同:

    cd /root/BaiduPanFilesTransfers-master

    如果使用 PyCharm 作为 IDE,可以直接在自带的控制台中输入后面的打包命令。

  3. 使用 venv 创建并启用虚拟环境:

    python -m venv venv venv\Scripts\activate

    在 Linux/macOS 下启动虚拟环境命令稍有不同:

    python -m venv venv && source venv/bin/activate
    
  4. 安装项目依赖,指定使用国内科大的镜像源:

    pip install -r requirements.txt --index https://mirrors.ustc.edu.cn/pypi/web/simple/

    Windows 的 Python 安装包一般会默认安装 Tkinter。macOS 用户则需要手动安装,对应 Homebrew 命令为:

    brew install python-tk # 也可以指定 Python 版本,如 brew install python-tk@3.12

  5. 使用 pyinstaller 命令编译打包成可执行文件:

    pyinstaller -F -w -i BaiduPanFilesTransfers.ico --hidden-import=tkinter --clean -n BaiduPanFilesTransfers BaiduPanFilesTransfers.py

    如果过程没有异常,可执行文件 BaiduPanFilesTransfers.exe 会生成到 dist 目录下面。

  6. (可选)使用 deactivate 命令退出当前环境:

    venv\Scripts\deactivate.bat
    

代码贡献

请提交 pull request 到 dev 分支,待我验证测试通过再合并到主分支。

开源许可

本程序采用 GPL-3.0 license 源授权许可协议,如果违反开源社区的基本准则,将开源项目据为私有用于商业用途,属于侵权行为,本人将追究法律责任。

程序使用

获取 Cookies 是必须步骤,大多数运行错误都是由 Cookies 不正确造成的,请仔细阅读获取方法。

获取 Cookies

使用 Chrome 或类似浏览器(最好用无痕式窗口模式)登录 百度网盘主页,完全载入后按 F12 键调出控制台。选择 网络(Network) 选项卡。

如下图所示,此时应该是空白的: 向导图1F5 刷新页面,下面会出现多条新记录,点击以 main 开头的记录,右边会出现菜单,显示 标头(Headers)响应(Response) 等内容。在标头页面向下滚动,找到请求标头中以 Cookie: 开头的行,后面有一串以 XF 开头的内容,这就是需要的 Cookies。全部选中它们,右键选择复制,然后粘贴到程序相应的输入框内: 向导图2

注意必须获取 main 页面下的 Cookies,其他页面的 Cookie 不完整,会导致各种转存失败问题。可以直接访问此地址:main 页面

输入保存位置

如果保存位置留空不填,资源会保存到根目录下,打开百度网盘主页就能看到。

输入文件保存位置后,如果目录不存在,会自动新建目录。如果目录已存在,则直接转存在指定目录下。

支持指定二级目录,例如,要保存到 test 目录内的 2024-01-02 目录中,填入 test/2024-01-02 即可。

保存位置(目录名)不能包含大多数英文特殊符号,包括:>|*?:\ 等,否则程序会检测到并中断运行。

如果保存路径加文件名长度超过 255 个字符,用百度网盘客户端下载文件时会失败,所以应尽量使用短目录名。

输入网盘链接

程序已尽可能适应常见的百度网盘链接格式。如出现提示「不支持的链接」或「链接错误」,请检查输入链接是否符合以下格式之一:

https://pan.baidu.com/s/1nvBwS25lENYceUu3OMH4tg 6img https://pan.baidu.com/s/1nvBwS25lENYceUu3OMH4tg?pwd=6img https://pan.baidu.com/s/1nvBwS25lENYceUu3OMH4tg 提取码:6img https://pan.baidu.com/s/1nvBwS25lENYceUu3OMH4tg 提取:6img https://pan.baidu.com/s/1EFCrmlh0rhnWy8pi9uhkyA https://pan.baidu.com/share/init?surl=W7U9g47xiDez_5ItgNIs0w https://pan.baidu.com/e/1X5j-baPwZHmcXioKQPxb_w rsss 目录名 https://pan.baidu.com/s/1eOrU0S9VLoe4GgAy2gZlmw z6r4

执行批量转存

所有信息输入完毕后,点击「批量转存」按钮来执行批量转存百度网盘链接。

转存过程中可以「暂停/恢复」,也可以直接点击程序窗口右上角的关闭按钮来中止运行。 如果要加快转存速度,可以同时运行多个程序,分批并行转存。总转存速度不要超过每分钟60条链接。

执行批量分享

批量分享是指分享指定目录下的文件或文件夹,为每个项目生成一个分享链接。

执行批量分享前,同样需要先输入"Cookies"和要分享的目标路径,然后点击"批量分享"按钮准备执行。此时会弹出分享设置窗口:

百度网盘批量转存程序分享设置界面截图

设置好分享期限和提取码(不支持随机生成)后,点击确定开始执行批量分享,请等待运行完成。此时原先的链接输入框内会显示即将分享的文件名;日志输入框内会显示生成的分享链接和结果:

百度网盘批量转存程序批量分享结果截图

百度网盘有硬性限制,单个账号每天最多只能创建300个分享链接,超过后会报错,这是平台限制而非程序限制。

使用系统代理(可选)

程序默认会绕过网络系统代理,但无法绕过网络全局代理。

如果处于特殊网络环境,需要配置网络系统代理才能正常访问百度网盘,可勾选"系统代理"选项后再执行转存。

使用指定目录(可选)

用于将转存文件保存到多个不同的目录。效果如下:

百度网盘批量转存指定目录功能

勾选后,将支持类似"自设目录 https://pan.baidu.com/s/1eOrU0S9VLoe4GgAy2gZlmw z6r4"的链接格式。"自设目录"会在"转存目录"(步骤2中输入的目录)下创建,文件将转存到"自设目录"中。

如果输入的是普通链接,即不带目录名、以"http"开头的链接,则每个链接将单独保存在以数字命名的子目录中。例如,如果"转存目录"输入的是"test",则第一个链接会保存在"test/1"中,第二个链接保存在"test/2"中,以此类推。

注意,此模式要求必须输入转存目录。链接中的指定目录名不能包含空格,否则只会将空格前的部分作为目录名。

使用检测模式(可选)

勾选此模式后,点击"批量转存"运行,将对输入的链接可用性进行检查,而不执行实际的转存操作:

百度网盘批量转存程序批量检测结果截图

请勿频繁对相同的链接进行检测,这可能会导致出现验证码。

下载地址:

https://pan.baidu.com/s/1Ltq0m3UecWByLQohftvZLQ?pwd=rcx9

https://pan.xunlei.com/s/VONeq0E-4HQ7rp9zjDDMVUrSA1?pwd=mjgq#