Baidu Netdisk client with CLI commands and a matching FastAPI Web UI.
Project description
pypang
pypang 是一个基于百度网盘开放平台接口的命令行客户端,同时提供本地 Web UI。它参考了 bypy 的使用习惯,默认兼容 bypy 的应用目录 /apps/bypy。
特性
- CLI 和 Web UI 两套使用方式
- OAuth 授权,默认支持
redirect_uri=oob - 文件浏览、上传、下载、重命名、移动、删除、建目录
- 多配置分别保存 token,可读取当前目录的
config.json - Bash 下支持命令、选项和网盘路径 Tab 补全(需手动开启)
- CLI/Web 下载支持断点续传和校验
- 单文件超过百度开放平台上限时自动按卷上传
快速开始
安装:
pip install pypang
查看当前配置:
pypang config show
如果使用默认 bypy 配置,一般可以直接获取授权链接:
pypang auth url
浏览器打开授权链接后,从百度返回页复制 code,再执行:
pypang auth code <code>
列出网盘应用目录:
pypang ls /
启动 Web UI:
pypang serve
浏览器访问:
http://127.0.0.1:8080
安装
PyPI 安装
pip install pypang
源码安装
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install -e .
配置与授权
默认配置
没有额外配置时,pypang 会使用内置的 bypy 应用配置:
- 应用目录:
/apps/bypy - 授权方式:
oob - 默认按普通用户档位运行
- CLI/Web 下载并发默认取
8 - 单文件下载默认开启分段并发,默认连接数为
4
运行状态默认保存在:
~/.pypang/state.json
临时文件默认保存在:
~/.pypang/tmp
修改配置
设置应用信息:
pypang config set --app-key your-app-key --secret-key your-secret-key --app-name myapp --app-root /apps/myapp --redirect-uri oob
只修改 Web UI 监听地址,不影响 token:
pypang config set --listen-host 0.0.0.0 --listen-port 8080
按会员档位调整上传分片和下载并发:
pypang config set --membership-tier vip --upload-chunk-mb 16 --cli-download-workers 4 --web-download-workers 4
调整单文件并发下载:
pypang config set --single-file-parallel-enabled --single-file-download-workers 4
调整网盘路径补全缓存时间,单位为秒,默认 60;设为 0 可关闭缓存:
pypang config set --completion-cache-seconds 120
config.json
如果当前目录存在 config.json,程序会优先读取它。多应用示例:
{
"default": "myapp",
"apps": [
{
"id": "bypy",
"label": "bypy",
"app_key": "q8WE4EpCsau1oS0MplgMKNBn",
"secret_key": "PA4MhwB5RE7DacKtoP2i8ikCnNzAqYTD",
"app_name": "bypy",
"app_root": "/apps/bypy"
},
{
"id": "myapp",
"label": "我的应用",
"app_key": "your-app-key",
"secret_key": "your-secret-key",
"app_name": "myapp",
"app_root": "/apps/myapp"
}
]
}
指定其他 config.json 路径:
export BAIDUPANWEB_LEGACY_CONFIG=/path/to/config.json
Bash 补全
pypang 支持 Bash 下的命令、选项和网盘路径 Tab 补全。远端目录候选会追加 /,可以继续进入下一层;远端目录列表默认缓存 60 秒,避免连续按 Tab 时反复请求 API。
启用用户级 Bash 补全:
pypang open completion
它会写入:
~/.pypang/completion.bash
~/.bashrc
新开的 Bash 会自动生效。当前 Bash 想立即生效,可执行:
source ~/.bashrc
关闭用户级 Bash 补全:
pypang close completion
当前 Bash 想立即取消,可执行:
complete -r pypang
临时启用,不修改 ~/.bashrc:
source <(pypang completion bash)
注意:这是 Bash 补全,不会在 dash、fish 等非 Bash shell 中生效。
CLI 常用命令
查看账号信息和容量:
pypang whoami
pypang quota
列目录和建目录:
pypang ls /
pypang mkdir /docs
上传文件:
pypang put ./local.txt /docs/remote.txt
上传目标也可以是目录:
pypang put ./local.txt /docs/
下载文件:
pypang get /docs/remote.txt ./downloads/
强制重新下载,不使用断点续传:
pypang get /docs/remote.txt ./downloads/ --no-resume
临时关闭单文件分段并发:
pypang get /docs/remote.txt ./downloads/ --no-single-file-parallel
重命名、移动、删除:
pypang rename /docs/remote.txt archive.txt
pypang mv /docs/archive.txt /history
pypang rm /history/archive.txt
命令别名:
ls=listput=uploadget=downloadmv=moverm=deletewhoami=info
Web UI
本机启动:
pypang serve
指定地址:
pypang serve --host 127.0.0.1 --port 8080
无桌面服务器可对外监听:
pypang config set --listen-host 0.0.0.0 --listen-port 8080
pypang serve
然后通过公网 IP、内网穿透、反向代理或 SSH 端口转发访问:
http://服务器地址:8080
Web UI 授权流程:
- 打开 Web UI
- 点击授权按钮
- 在百度返回页复制
code - 回到 Web UI 手动提交
code - 授权完成后即可上传、下载和管理文件
上传与下载行为
下载
下载流程:
filemetas(dlink=1) -> dlink + access_token + User-Agent
CLI 下载和 Web UI 的“保存到服务器”会生成 .part 临时文件,并基于 Range 请求自动续传未完成部分。
恢复与校验规则:
- 下载前会扫描目标目录,检查已有正式文件和
.part文件 - 本地文件大小已满足远端大小时,优先校验并复用
- 校验失败会删除错误文件后重新下载
- 远端
md5合法时使用 MD5 校验,否则退回到大小校验 - Web UI 传输卡片会显示
进行中 / 等待中 / 已完成
上传
上传流程:
locateupload -> precreate -> superfile2 -> create
单文件未超过平台上限时按普通流程上传。超过当前账号档位允许的单文件上限时,会在远端创建 原文件名.parts 目录并按卷上传。
多卷上传规则:
- 多卷命名为
原文件名.001、原文件名.002、原文件名.003 - 多卷默认并发上传
4个卷 - 分卷预计算保持单线程顺序进行
- 多卷目录会额外写入
extract.sh,下载后可用它合并分卷 - 单卷大小默认跟随账号身份:普通用户
4GB、普通会员10GB、超级会员20GB - 可用
--upload-volume-gb手动设置单卷大小,实际值会限制在当前账号上限内
设置单卷大小:
pypang config set --upload-volume-gb 8
项目结构
pypang/
app.py
cli.py
client.py
completion.py
config.py
storage.py
static/
templates/
app.list.json
README.md
requirements.txt
参考
- bypy: https://github.com/houtianze/bypy
- 百度网盘开放平台文档索引: https://pan.baidu.com/union/doc/nksg0sbfs
- OAuth 授权码模式: https://pan.baidu.com/union/doc/al0rwqzzl
- 文件列表: https://pan.baidu.com/union/doc/nksg0sat9
- 文件信息: https://pan.baidu.com/union/doc/Fksg0sbcm
- 上传域名: https://pan.baidu.com/union/doc/Mlvw5hfnr
- 预上传: https://pan.baidu.com/union/doc/3ksg0s9r7
- 分片上传: https://pan.baidu.com/union/doc/nksg0s9vi
- 创建文件: https://pan.baidu.com/union/doc/rksg0sa17
- 下载文件: https://pan.baidu.com/union/doc/pkuo3snyp
- 管理文件: https://pan.baidu.com/union/doc/mksg0s9l4
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pypang-0.3.0.tar.gz.
File metadata
- Download URL: pypang-0.3.0.tar.gz
- Upload date:
- Size: 78.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc13b6d62a461f4f52877a26d7238db44f90a9cee9ce0ed1510500660dc93db7
|
|
| MD5 |
146d0118398c52991352c5b2fcd37250
|
|
| BLAKE2b-256 |
5c43430fe4ace700a72073f6caf226d9a53b17b2d7f1d4e6f175cf6435f8363f
|
File details
Details for the file pypang-0.3.0-py3-none-any.whl.
File metadata
- Download URL: pypang-0.3.0-py3-none-any.whl
- Upload date:
- Size: 77.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0cc6ed447d53a02233bae58b7bd89cad6836bd1f1fea63eb252b673d5f9d95e7
|
|
| MD5 |
8f809f8b1a06c10a21f2cefdec6bee4d
|
|
| BLAKE2b-256 |
5c43886e9f611cc1939c7bb72aff0e6f284444728158a65e4a8e919dfa008009
|