Skip to main content

115 open 302 backend

安装

你可以通过 pypi 安装

pip install -U p115open302

用法

作为模块

from p115client import P115Client
from p115open302 import make_application
from uvicorn import run

# 授权登录
cookies = "UID=...; CID=...; SEID=...; KID=..."
app_id = 100195125
client = P115Client(cookies, ensure_cookies=True, check_for_relogin=True)
client.login_another_open(replace=True)
# 或者直接用 refresh_token
refresh_token = "..."
client = P115Client("", heck_for_relogin=True)
client.refresh_token = refresh_token
client.refresh_access_token()

run(
    make_application(client, debug=True), 
    host="0.0.0.0", 
    port=8000, 
    proxy_headers=True, 
    server_header=False, 
    forwarded_allow_ips="*", 
    timeout_graceful_shutdown=1, 
)

作为命令

$ p115open302 -h
usage: p115open302 [-h] [-c COOKIES] [-cp COOKIES_PATH] [-a APP_ID]
                   [-rt REFRESH_TOKEN] [-t TOKEN] [-H HOST] [-P PORT] [-cu] [-d]
                   [-uc UVICORN_RUN_CONFIG_PATH] [-v] [-l]

    ╭───────────────────────── Welcome to 115 open 302 ────────────────────────────╮
    │                                                                              │
    │  maintained by ❤     ChenyangGao https://chenyanggao.github.io               │
    │                                                                              │
    │                      Github      https://github.com/ChenyangGao/p115client/  │
    │                                                                              │
    │                      license     https://www.gnu.org/licenses/gpl-3.0.txt    │
    │                                                                              │
    │                      version     0.0.5                                       │
    │                                                                              │
    ╰──────────────────────────────────────────────────────────────────────────────╯

> 网盘文件支持用 id、pickcode、sha1、name 或 path 查询(此顺序即优先级从高到低)
> 支持参数 refresh,用于搜索 sha1、name 或 path 时忽略缓存(强制刷新)
> 支持参数 size,用于搜索 sha1 或 name 时,要求文件大小等于此值

🌰 携带 sign

通过命令行参数 -t/--token 指定令牌后,你就必须在请求时携带签名,即 sign 参数
计算方式为

    hashlib.sha1(bytes(f"302@115-{token}-{t}-{value}", "utf-8")).hexdigest()

其中:

    1. token 就是命令行所传入的令牌
    2. t 为过期时间点(默认值为 0,即永不过期)
    3. value 就是值,像这样的链接,优先级顺序为 id > pickcode > sha1 > name > path > name2

        http://localhost:8000/{name2}?id={id}&pickcode={pickcode}&sha1={sha1}&name={name}&path={path}

🌰 查询示例:

    1. 查询 id
        http://localhost:8000?2691590992858971545
        http://localhost:8000/2691590992858971545
        http://localhost:8000?id=2691590992858971545
    2. 带(任意)名字查询 id
        http://localhost:8000/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv?2691590992858971545
        http://localhost:8000/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv?id=2691590992858971545
        http://localhost:8000/2691590992858971545/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv
    3. 查询 pickcode
        http://localhost:8000?ecjq9ichcb40lzlvx
        http://localhost:8000/ecjq9ichcb40lzlvx
        http://localhost:8000?pickcode=ecjq9ichcb40lzlvx
    4. 带(任意)名字查询 pickcode
        http://localhost:8000/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv?ecjq9ichcb40lzlvx
        http://localhost:8000/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv?pickcode=ecjq9ichcb40lzlvx
        http://localhost:8000/ecjq9ichcb40lzlvx/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv
    5. 查询 sha1
        http://localhost:8000?E7FAA0BE343AF2DA8915F2B694295C8E4C91E691
        http://localhost:8000/E7FAA0BE343AF2DA8915F2B694295C8E4C91E691
        http://localhost:8000?sha1=E7FAA0BE343AF2DA8915F2B694295C8E4C91E691
    6. 带(任意)名字查询 sha1
        http://localhost:8000/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv?E7FAA0BE343AF2DA8915F2B694295C8E4C91E691
        http://localhost:8000/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv?sha1=E7FAA0BE343AF2DA8915F2B694295C8E4C91E691
        http://localhost:8000/E7FAA0BE343AF2DA8915F2B694295C8E4C91E691/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv
    7. 查询 name(如果直接以路径作为 name,则不要有 pickcode、id、sha1、name 或 path)
        http://localhost:8000/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv
        http://localhost:8000?Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv
        http://localhost:8000?name=Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv
    8. 查询 path(如果直接以路径作为 path,则不要有 pickcode、id、sha1、name 或 path,在根目录下要以 > 或 / 开头,如果整个路径中不含 > 或 /,则会视为 name)
        http://localhost:8000/电影/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv
        http://localhost:8000//电影/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv
        http://localhost:8000?/电影/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv
        http://localhost:8000?path=/电影/Novembre.2022.FRENCH.2160p.BluRay.DV.HEVC.DTS-HD.MA.5.1.mkv

🌰 视频相关操作:

当你提供 method 参数时,通常就意味着你需要操作的目标是视频,此参数的值分别如下:

    1. "subs"、"subtitle" 或 "subtitles",获取目标文件的内嵌字幕和与它同一目录下的字幕,返回这些字幕的信息和下载链接,结果是一个 JSON
    2. "tran" 或 "transcode",获取目标文件的转码信息和在线播放地址,结果是一个 JSON
    3. "m3u8",获取在线播放地址,会执行 302 重定向,另外接受参数:
        1. audio_track,接受 1 个整数,以切换不同音轨,这个数字是数组下标(从 0 开始),请先查询 "tran" 或 "transcode" 方法,然后看 key 为 "multitrack_list" 的数组
        2. definition,接受 1 个整数,以切换不同画质:1:标清 2:高清 3:超清 4:1080P 5:4k 100:原画
    4. "push",提交视频转码请求,结果是一个 JSON
    5. "hist" 或 "history",获取或设置视频播放进度。当你没有 time 和 watch_end 查询参数时,会获取视频播放进度,否则会进行设置。结果是一个 JSON
        - time,接受 1 个整数,视频播放进度时长,单位是:秒
        - watch_end,接受 0 或者 1,视频是否播放播放完毕,默认为 0,1 表示播放完毕
    6. "info",获取文件信息,结果是一个 JSON

options:
  -h, --help            show this help message and exit
  -c COOKIES, --cookies COOKIES
                        cookies 字符串,优先级高于 -cp/--cookies-path
  -cp COOKIES_PATH, --cookies-path COOKIES_PATH
                        cookies 文件保存路径,默认为当前工作目录下的 115-cookies.txt
  -a APP_ID, --app-id APP_ID
                        115 开放接口的 AppID,默认为:100195125
  -rt REFRESH_TOKEN, --refresh-token REFRESH_TOKEN
                        刷新令牌,如果传入此值,则可以不传 --cookies/--cookies-path/--app-id
  -t TOKEN, --token TOKEN
                        签名所用的 token,如果提供,则请求必须携带签名,即 sign 查询参数
  -H HOST, --host HOST  ip 或 hostname,默认值:'0.0.0.0'
  -P PORT, --port PORT  端口号,默认值:8000,如果为 0 则自动确定
  -cu, --cache-url      缓存下载链接
  -d, --debug           启用调试,会输出更详细信息
  -uc UVICORN_RUN_CONFIG_PATH, --uvicorn-run-config-path UVICORN_RUN_CONFIG_PATH
                        uvicorn 启动时的配置文件路径,会作为关键字参数传给 `uvicorn.run`,支持 JSON、YAML 或 TOML 格式,会根据扩展名确定,不能确定时视为 JSON
  -v, --version         输出版本号
  -l, --license         输出授权信息

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

p115open302-0.0.5.4.tar.gz (35.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

p115open302-0.0.5.4-py3-none-any.whl (49.0 kB view details)

Uploaded Python 3

File details

Details for the file p115open302-0.0.5.4.tar.gz.

File metadata

  • Download URL: p115open302-0.0.5.4.tar.gz
  • Upload date:
  • Size: 35.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.4 Darwin/25.0.0

File hashes

Hashes for p115open302-0.0.5.4.tar.gz
Algorithm Hash digest
SHA256 fb0b0677b773c63e9ebbc6c9da2aa08cbc4891687de9ccb6ae3ad40aab7d4a0c
MD5 a7b27f53a7241f68a4d8370bc40f986e
BLAKE2b-256 5e41626c9d21519c65cd3b23bd7276bee05389ae6aa195175df8a9d851f294cb

See more details on using hashes here.

File details

Details for the file p115open302-0.0.5.4-py3-none-any.whl.

File metadata

  • Download URL: p115open302-0.0.5.4-py3-none-any.whl
  • Upload date:
  • Size: 49.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.4 CPython/3.12.4 Darwin/25.0.0

File hashes

Hashes for p115open302-0.0.5.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3223ade895410662fde169e8b8517e21032dc556a61e3b53760c0e6ab421064f
MD5 c36a6cdc94e1452324330e56a2267fc9
BLAKE2b-256 5e0626aea2b244759fda95ca6b7adff70011fc7b164126fd130f816330a9aec1

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.5.4 This release

2 files

0.0.5.3

2 files

0.0.5.2

2 files

0.0.5.1

2 files

0.0.5

2 files

0.0.4.2

2 files

0.0.4.1

1 file

0.0.4

2 files

0.0.3.2

2 files

0.0.3.1

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page