# 123Pan 命令行工具 123 网盘命令行工具,支持列出文件、下载、上传、分享、删除、创建目录及回收站管理。Android 客户端或 Web 协议,便于在本地批量管理与下载文件。 123download.js 是网页端辅助脚本最初版本,仍然可以使用,仅保留最基本的解锁下载功能,不再更新。 可以参考其他项目:[123云盘解锁 (@QingJ)](https://greasyfork.org/zh-CN/scripts/519353-123%E4%BA%91%E7%9B%98%E8%A7%A3%E9%94%81) [123 云盘会员青春版 (@hmjz100)](https://greasyfork.org/zh-CN/scripts/513528-123-%E4%BA%91%E7%9B%98%E4%BC%9A%E5%91%98%E9%9D%92%E6%98%A5%E7%89%88) ## 特性 - 登录 / 登出 - 列出当前目录文件(ls) - 切换目录(cd)与刷新(refresh / re) - 下载单文件或递归下载文件夹(download / d) - 上传文件(upload) - 创建文件夹(mkdir) - 删除文件(rm) - 创建分享链接(share) - 获取文件直链(link) - 回收站管理(recycle / restore) - 协议切换(protocol android|web) - 支持保存配置到 JSON 文件(authorization、device/os、protocol 等) ## 脚本环境要求 - Python 3.7+ - 依赖库:requests 安装: ```bash pip install requests ``` ## 安装与运行 ### 脚本运行 1. 克隆或下载本仓库到本地。 2. 进入项目目录。 3. 运行脚本: ```bash python 123pan.py ``` 启动后会提示输入用户名 / 密码,或自动读取配置文件(默认 `123pan_config.json` 或 `123pan.txt`,脚本内部根据传入参数使用该文件)。 ### 下载release版 根据系统下载对应的 release 版本,解压后运行 `123pan.exe`(Windows)或 `123pan`(Linux)。 ## 配置文件(JSON) 脚本会读取并保存一个配置文件(示例 `123pan_config.json`),保存登录状态与偏好,格式示例: ```json { "userName": "your_username", "passWord": "your_password", "authorization": "Bearer xxxxx", "deviceType": "M2007J20CI", "osVersion": "Android_10", "protocol": "android" } ``` 注意:保存密码或 token 到本地会有安全风险,请在可信环境下使用并妥善保护该文件。 ## 常用命令(交互式) 在脚本交互提示符中输入命令,部分带参数: - 直接输入编号 - 若编号对应文件夹 → 进入该文件夹 - 若编号对应文件 → 直接下载该文件 - ls - 显示当前目录的文件与文件夹列表。 - cd [编号|..|/] - 切换目录: - cd 3 —— 进入当前列表第3项(如果是文件夹)。 - cd .. —— 返回上级。 - cd / —— 返回根目录。 - mkdir [名称] - 在当前目录创建文件夹。例如:mkdir test - upload [路径] - 上传文件到当前目录。例如:upload C:\Users\you\Desktop\file.txt - 仅支持文件,暂不支持目录批量上传。 - rm [编号] - 删除当前列表中的文件/文件夹(会移动到回收站)。例如:rm 2 - share [编号 ...] - 为一个或多个文件创建分享链接,例如:share 2 4 - 程序会提示输入提取码(可留空)。 - link [编号] - 获取文件直链。例如:link 3 - download / d [编号] - 下载指定编号的文件或文件夹(如果是文件夹,会递归下载)。 - 例如:download 5 - recycle - 显示回收站内容,并可恢复或清空。 - 可输入编号恢复,或输入 clear 清空回收站。 - refresh / re - 刷新当前目录列表。 - reload - 重新加载配置文件并刷新目录。 - login / logout - login:手动登录(使用当前配置或提示输入)。 - logout:登出并清除授权信息(保存配置时会写入空 token)。 - more - 如果当前目录分页未加载完,输入 more 继续加载更多文件。 - protocol [android|web] - 切换协议。例:protocol web - 切换后会重新初始化请求头,并可选择保存到配置文件。 - exit - 退出程序。 --- 交互示例: ``` /> cd demo 无效命令,使用 '..' 返回上级,'/' 返回根目录,或输入文件夹编号 /> cd 1 当前目录为空 /demo1> ls 当前目录为空 /demo1> mkdir test 目录 'test' 创建成功 /demo1> 1 当前目录为空 /demo1/test> upload 123pan.py 上传进度: 100.0% 上传完成,正在验证... 文件上传成功 ------------------------------------------------------------ 编号 类型 大小 名称 ------------------------------------------------------------ 1 文件 38.66 KB 123pan.py ============================================================ /demo1/test> 1 开始下载: 123pan.py 进度: 100.0% | 38.66 KB/38.66 KB | 10.29 MB/s 下载完成: 123pan.py /demo1/test> ``` ## 下载说明 - 下载到脚本所在目录的 `download` 文件夹,下载过程中使用临时后缀 `.123pan`,下载完成后会重命名为原文件名。 - 如果文件已存在,会提示覆盖 / 跳过 / 全部覆盖 / 全部跳过等选项。 ## 注意事项 - 项目仅用于方便命令行场景下使用123云盘,请遵守123云盘使用规范。 - 本工具用于学习与自用场景,请勿用于违法用途。对任何滥用造成的后果,本人概不负责。 - 建议不要在公用或不受信任的机器上保存明文密码或授权信息。 ## 免责声明 本工具用于学习场景,请勿用于违法用途。对任何滥用造成的后果,作者概不负责。 ⚠️ 本项目免费开源,严禁通过本项目以任何形式牟利,任何获利行为与作者无关。