115 open 302 backend.
Project description
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 = 100195123
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.4 │
│ │
╰──────────────────────────────────────────────────────────────────────────────╯
> 网盘文件支持用 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()
其中
- token 就是命令行所传入的令牌
- t 为过期时间点(默认值为 0,即永不过期)
- value 就是值,像这样的链接,优先级顺序为 pickcode > id > 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
4. 查询 sha1
http://localhost:8000?E7FAA0BE343AF2DA8915F2B694295C8E4C91E691
http://localhost:8000/E7FAA0BE343AF2DA8915F2B694295C8E4C91E691
http://localhost:8000?sha1=E7FAA0BE343AF2DA8915F2B694295C8E4C91E691
5. 带(任意)名字查询 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
6. 查询 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
7. 查询 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,默认为:100195123
-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 输出授权信息
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
p115open302-0.0.5.tar.gz
(36.5 kB
view details)
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 p115open302-0.0.5.tar.gz.
File metadata
- Download URL: p115open302-0.0.5.tar.gz
- Upload date:
- Size: 36.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.4 Darwin/23.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ff2c9327225b6371b2bed74abbd8df4ca07d2878a02c7ff4f974cdaf9c31bee
|
|
| MD5 |
d4f91652c1fdd557459b6fe3e1ae8660
|
|
| BLAKE2b-256 |
3153f60dc0deb3d46236e9060bdba16ae07e41a6ef2f02847363a47a56a4d14e
|
File details
Details for the file p115open302-0.0.5-py3-none-any.whl.
File metadata
- Download URL: p115open302-0.0.5-py3-none-any.whl
- Upload date:
- Size: 50.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.4 Darwin/23.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a54f87c4980b79f0cbf16f71d45ccee9e527b843b41f9bacf4b36587a8dadfc
|
|
| MD5 |
4315e275a8f6b51c12c1ba1c0b7e42ca
|
|
| BLAKE2b-256 |
c5ef400c95d32a01bba732f763291d792fffc331505070c9231dbdd6a48a2e70
|