zaxtyson

蓝奏云网盘API 2.0

基于Python3实现,最强的蓝奏云API~

蓝奏云注册

更新说明

  • 修复了登录时 formhash 错误的问题
  • 解决了多次上传大文件被限制的问题 #3
  • 细化 API 接口的功能,某些接口被取消、更名
  • 操作网盘时会进行检查,屏蔽蓝奏云不合理的设计
  • 支持批量上传/下载
  • 上传大文件不再直接将数据分段,改用 RAR 分卷压缩 #2
  • 取消使用种子文件下载大文件,自动识别分卷压缩文件并解压
  • 上传/下载时支持使用回调函数显示进度 #1
  • 不再向上抛异常,而是返回错误码

简介

  • 本库封装了对蓝奏云的基本操作: 登录、列出文件、下载文件、上传文件、删除文件(夹)、
    清空回收站、恢复文件、创建文件夹、设置文件(夹)访问密码、直链解析

  • 此外,通过伪装后缀名,解决了蓝奏云的上传格式限制。
    通过分卷上传,解决了单文件最大 100MB 的限制。同时增加了批量上传/下载的功能

  • 如果有任何问题或建议,欢迎提 issue。最后,求一个 star (≧∇≦)ノ

安装依赖库

pip install requests requests_toolbelt

Windows 平台可使用项目文件中的 rar.exe 作为解压工具,Linux 平台需安装 rar

sudo apt install rar

API 文档

.login(username, passwd)

登录蓝奏云

参数 类型 说明 必填
username str 用户名 Y
passwd str 登录密码 Y

示例 :

from api.lanzou import LanZouCloud

lzy = LanZouCloud()
code = lzy.login(\'username\', \'passwd\')
if code == LanZouCloud.SUCCESS:
    print(\'登录成功\')

返回值 :

  • 成功返回 : LanZouCloud.SUCCESS
  • 失败返回 : LanZouCloud.FAILED

.logout()

注销当前账号

示例 :

code = lzy.logout()
if code == LanZouCloud.SUCCESS:
    print(\'注销成功\')

返回值 :

  • 成功返回 : LanZouCloud.SUCCESS
  • 失败返回 : LanZouCloud.FAILED

.get_dir_list(folder_id)

获取子文件夹name-id列表

参数 类型 说明 必填 备注
folder_id int 文件夹id N 默认-1(根目录)

示例 :

# 列出 id 为 1037070 的文件夹的子文件夹
sub_dirs = lzy.get_dir_list(1037070)
print(sub_dirs)

返回值:

{
    "娱乐": 1037080,
    "科幻": 1037083,
    "纪录片": 1037084,
    "游戏改": 1037085
}

.get_file_list(folder_id)

获取文件详细信息列表

参数 类型 说明 必填 备注
folder_id int 文件夹id N 默认-1(根目录)

示例 :

file_list = lzy.get_file_list(1037070)
print(file_list)

注意 : 添加了伪装后缀名的文件,伪装后缀会被自动去除

返回值 :

{
    "Valentin - A Little Story.mp3":{
        "id": 12741016,     # 文件 id
        "name": "Valentin - A Little Story.mp3",    # 文件名
        "time": "昨天15:27",      # 上传时间
        "size": "8.0 M",    # 文件大小
        "downs": 6,         # 下载次数
        "has_pwd": False, # 是否设置提取码
        "has_des": True   # 是否设置描述
    },
    "小清水亜美 - 玻璃の空.mp3":{
        "id": 12740874,
        "name": "小清水亜美 - 玻璃の空.mp3",
        "time": "昨天15:24",
        "size": "10.7 M",
        "downs": 0,
        "has_pwd": False,
        "has_des": False
    }
}

.get_file_list2(folder_id)

获取子文件名-id列表

参数 类型 说明 必填 备注
folder_id int 文件夹id N 默认-1(根目录)

示例 :

file_list = lzy.get_file_list2(1037070)
print(file_list)

返回值 :

{
    "Valentin - A Little Story.mp3": 12741016,
    "小清水亜美 - 玻璃の空.mp3": 12740874
}

.get_full_path(folder_id)

获取文件夹的绝对路径

参数 类型 说明 必填 备注
folder_id int 文件夹id N 默认-1(根目录)

示例 :

# 路径: /视频/电影/娱乐     "娱乐"文件夹 id 为 1037080
full_path = lzy.get_full_path(1037080)
print(full_path)

返回值 :

{
    "LanZouCloud": -1,
    "视频": 1033205,
    "电影": 1037070,
    "娱乐": 1037080
}

.delete(fid)

把网盘的文件(夹)放到回收站

参数 类型 说明 必填 备注
fid int 文件(夹)id Y -

示例 :

code = lzy.delete(12741016)
if code == LanZouCloud.SUCCESS:
    print(\'删除成功\')

返回值 :

  • 成功返回 : LanZouCloud.SUCCESS
  • 失败返回 : LanZouCloud.FAILED

注 :

  • 无法删除含有子文件夹的文件夹,但含有文件的可以删除。
  • 重复删除同一个 id 仍返回 : LanZouCloud.SUCCESS
  • 删除不存在的 id 也返回 : LanZouCloud.SUCCESS
  • 这都是蓝奏云的锅,与我无关

分类:

技术点:

相关文章: