一个功能完整的文叔叔命令行工具,整合了断点续传、多文件下载、目录上传、用户登录、取件码、代理支持等所有功能。
该工具以构建版本wssf并发布到pypi,可直接pip install wssf使用,或uv tool install wssf全局使用。
wssf地址:JIANMOP/wssf
该项目支持两种依赖管理方式:现代化的 uv 和传统的 pip。
uv 是新一代的 Python 包管理器,提供更快的包安装和更好的依赖解析。
# Windows
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# Linux/MacOS
curl -LsSf https://astral.sh/uv/install.sh | sh# 同步依赖(自动创建虚拟环境并安装依赖)
uv sync
# 激活虚拟环境
# Windows
.venv\Scripts\activate
# Unix/Linux/macOS
source .venv/bin/activate
# 运行项目
python wss.py -h
# 添加新的依赖
uv add package_name
# 移除依赖
uv remove package_name
# 显示当前依赖
uv pip list# 创建虚拟环境(conda也可)
python -m venv venv
# 激活虚拟环境
# Windows
venv\Scripts\activate
# Unix/Linux/macOS
source venv/bin/activate# 从 requirements.txt 安装(如果存在)
pip install -r requirements.txt
# 或手动安装核心依赖
pip install requests base58 pycryptodomex
# 生成 requirements.txt
pip freeze > requirements.txt根据 pyproject.toml 文件,项目的核心依赖包括:
- requests (>=2.32.4) - HTTP 请求库,用于与文叔叔 API 通信
- base58 (>=2.1.1) - Base58 编码库,用于数据编码
- pycryptodomex (>=3.23.0) - 加密库,用于 DES 加密算法
项目要求 Python 版本 >= 3.13。
wss.py 是项目的主要脚本文件,集成了所有功能模块。以下是详细的功能说明:
- 文件上传 - 支持单文件和目录上传
- 文件下载 - 支持单线程和多线程下载,包含断点续传
- 用户管理 - 多账户登录、切换和管理
- 取件码 - 自定义或随机生成取件码
- 代理支持 - HTTP/HTTPS/SOCKS 代理
- 多语言 - 中文/英文界面切换
- 断点续传 - 支持下载中断后继续
python wss.py <命令> [目标] [选项]| 命令 | 别名 | 说明 | 示例 |
|---|---|---|---|
upload |
u |
上传文件或目录 | python wss.py u file.txt |
download |
d |
下载文件 | python wss.py d "链接" |
login |
- | 账户登录管理 | python wss.py login |
unlogin |
- | 退出当前账户 | python wss.py unlogin |
| 选项 | 简写 | 说明 | 示例 |
|---|---|---|---|
--help |
-h |
显示双语帮助信息 | python wss.py -h |
--en |
-e |
使用英文界面 | python wss.py u file.txt -e |
--login |
-l |
使用已登录账户 | python wss.py u file.txt -l |
--continue |
-c |
启用断点续传(仅下载) | python wss.py d "链接" -c |
--threads |
-t |
设置下载线程数(1-16) | python wss.py d "链接" -t 8 |
--key |
-k |
设置4位取件码 | python wss.py u file.txt -k 1234 |
--randomkey |
-r |
随机生成取件码 | python wss.py u file.txt -r |
--proxy |
-p |
设置代理服务器 | python wss.py u file.txt -p http://proxy |
# 上传单个文件
python wss.py upload file.txt
python wss.py u file.txt # 使用别名
# 上传目录(自动压缩为 tar.gz)
python wss.py upload ./folder
python wss.py u ./folder# 设置自定义取件码
python wss.py u file.txt -k 1234
# 随机生成取件码
python wss.py u file.txt -r
# 使用已登录账户上传(更大存储空间)
python wss.py u file.txt -l
# 通过代理上传
python wss.py u file.txt -p http://127.0.0.1:8080
# 英文界面上传
python wss.py u file.txt -e
# 组合多个选项
python wss.py u file.txt -l -r -p http://proxy -e- 目录压缩:自动将目录压缩为 tar.gz 格式
- 智能检测:自动检测文件是否可以秒传
- 分块上传:大文件自动分块并行上传
- 进度显示:实时显示上传进度和速度
- 中断处理:支持 Ctrl+C 优雅中断
# 单线程下载
python wss.py download "https://www.wenshushu.cn/f/xxxxxxxx"
python wss.py d "链接" # 使用别名
# 多线程下载(1-16线程)
python wss.py d "链接" -t 4 # 4线程
python wss.py d "链接" -t 8 # 8线程# 启用断点续传
python wss.py d "链接" -c
# 多线程断点续传
python wss.py d "链接" -t 4 -c- 多线程下载:IDM 风格的多连接并行下载
- 智能适配:自动适配 Range 和非 Range 服务器
- 断点续传:支持单线程和多线程断点续传
- 连接状态:实时显示每个线程的下载状态
- 故障转移:多线程失败时自动回退到单线程
- 文件完整性:下载完成后验证文件大小
# 交互式登录管理界面
python wss.py login
# 直接使用 TOKEN 登录
python wss.py login "30Bxxxxxxxxxxxxxxxxxxxxxxxx"
# 退出当前账户
python wss.py unlogin- 自动保存:登录成功后自动保存用户信息
- 多账户支持:可保存多个不同用户的 TOKEN
- 快速切换:登录时可从已保存账户中选择
- 信息展示:显示用户名、手机号、最后登录时间
- 智能管理:自动更新登录时间,检测无效 TOKEN
- 访问 https://www.wenshushu.cn 并登录
- 按 F12 打开开发者工具
- 切换到 Network(网络)标签
- 刷新页面或进行任意操作
- 找到请求的 Request Headers
- 复制 X-TOKEN 字段(通常以 30 或 31 开头)
# HTTP 代理
python wss.py u file.txt -p http://127.0.0.1:8080
# HTTPS 代理
python wss.py d "链接" -p https://proxy.example.com:3128
# SOCKS 代理
python wss.py u file.txt -p socks5://127.0.0.1:1080# 中文界面(默认)
python wss.py u file.txt
# 英文界面
python wss.py u file.txt -e
python wss.py d "链接" --en# 快速上传并生成随机取件码
python wss.py u document.pdf -r
# 大文件多线程高速下载
python wss.py d "链接" -t 8 -c
# 使用代理和账户上传重要文件
python wss.py u important.zip -l -k 2024 -p http://proxy
# 英文界面批量下载
python wss.py d "链接1" -e -t 4 -c
python wss.py d "链接2" -e -t 4 -cwenshushu/
├── wss.py # 主程序(完整功能版本)
├── pyproject.toml # 项目配置和依赖管理
├── uv.lock # uv 锁定文件
├── README.md # 项目说明文档
├── back/ # 历史版本和分离功能版本
│ ├── wss_origin.py # 原始基础版本
│ ├── wss_continue.py # 断点续传版本
│ ├── wss_dir.py # 压缩目录上传版本
│ ├── wss_login.py # 用户登录版本
│ └── wss_multi.py # 多文件下载版本
├── token.txt # 当前登录用户 token(自动生成)
├── user_tokens.json # 多用户 token 存储(自动生成)
- 服务器检测:自动检测服务器是否支持 Range 请求
- 动态分块:根据文件大小和线程数智能分配下载块
- 连接池管理:每个线程使用独立的 HTTP 连接
- 断点续传:支持多线程下载的精确断点续传
- 安全存储:TOKEN 和用户信息安全存储在本地
- 自动验证:启动时自动验证 TOKEN 有效性
- 批量管理:支持管理多个账户,快速切换
- 自动压缩:目录自动压缩为 tar.gz 格式
- 压缩优化:显示压缩时间和文件大小
- 临时文件清理:上传完成后自动清理临时文件
- 优雅中断:第一次 Ctrl+C 优雅退出并保存状态
- 强制退出:第二次 Ctrl+C 强制退出
- 状态保存:断点续传信息自动保存
-
TOKEN 无效
# 清理无效 token 并重新登录 python wss.py unlogin python wss.py login -
下载失败
# 尝试单线程下载 python wss.py d "链接" -t 1 # 启用断点续传 python wss.py d "链接" -c
-
网络问题
# 使用代理 python wss.py d "链接" -p http://proxy:port
-
权限问题
# 使用已登录账户 python wss.py u file.txt -l
-
v5.0.6 - 发布到pypi,可直接
pip install wssf在虚拟环境中使用或者uv tool install wssf全局使用 具体见仓库wssf:JIANMOP/wssf
-
v5.0.0 - 多用户支持和命令优化
- 新增命令别名:
u(upload),d(download) - 多用户 token 管理系统
- 增强的登录管理界面
- 默认匿名登录,按需用户登录
- 退出确认机制
- 新增命令别名:
-
v4.0.0 - 新参数结构,优化用户体验
-
v3.0.0 - 完整整合版本,包含所有功能
-
v2.0.0 - 分离功能版本
-
v1.0.0 - 基础版本