Skip to content

Latest commit

 

History

History
187 lines (140 loc) · 6.3 KB

File metadata and controls

187 lines (140 loc) · 6.3 KB

MediaTool 参数说明和示例

1. 命令行支持的参数

可通过命令行传递的参数

参数 命令行标志 默认值 说明 示例
config -config "config.json" 配置文件路径 ./pvideo -config myconfig.json
port -port "2525" 服务器端口 ./pvideo -port 8080
site -site "" 反代域名 ./pvideo -site https://mydomain.com
proxy -proxy "" 代理地址 ./pvideo -proxy socks5://127.0.0.1:1080
debug -debug false 调试模式 ./pvideo -debug
dns -dns "" DNS服务器 ./pvideo -dns 8.8.8.8

只能通过配置文件设置的参数

参数 类型 默认值 说明
localUrl string "" 本地服务URL,用于生成代理链接
connect int64 32 最大并发连接数
ssl object null SSL证书配置(cert, key)

命令行使用示例

# 基本启动
./pvideo

# 指定端口和调试模式
./pvideo -port 8080 -debug

# 使用SOCKS5代理
./pvideo -proxy socks5://127.0.0.1:1080 -dns 8.8.8.8

# 完整参数示例
./pvideo -config config.json -port 7777 -site https://mydomain.com -proxy http://proxy.example.com:8080 -debug -dns 8.8.8.8

2. 多线程代理参数和示例

多线程代理支持的URL参数

参数 必需 说明 示例值
url 目标文件URL https://example.com/video.mp4
form 编码格式 base64(URL和header使用base64编码)
header 自定义请求头 JSON格式的请求头
thread 线程数 4(默认根据文件大小自动计算)
size 分块大小 128K(默认), 256K, 1M, 2M, 512B, 1024
limit 限制条件 30S(时间限制), 100C(次数限制)
single 单线程模式 true, false
mark 缓存标记 自定义缓存标识

多线程代理使用示例(也可以不需要带proxy路径:http://localhost:7777?url=https://example.com/video.mp4)

基本用法

http://localhost:7777/proxy?url=https://example.com/video.mp4

自定义线程数和分块大小

http://localhost:7777/proxy?url=https://example.com/video.mp4&thread=8&size=256K

使用自定义请求头

http://localhost:7777/proxy?url=https://example.com/video.mp4&header={"User-Agent":"Custom-Agent","Referer":"https://example.com"}

使用base64编码(避免URL编码问题)

http://localhost:7777/proxy?url=aHR0cHM6Ly9leGFtcGxlLmNvbS92aWRlby5tcDQ=&form=base64&header=eyJVc2VyLUFnZW50IjoiQ3VzdG9tLUFnZW50In0=

设置时间限制(30秒后重新获取真实URL)

http://localhost:7777/proxy?url=https://example.com/video.mp4&limit=30S

设置次数限制(100次请求后重新获取真实URL)

http://localhost:7777/proxy?url=https://example.com/video.mp4&limit=100C

单线程模式(适用于例如网页请求)

http://localhost:7777/proxy?single=true&url=https://example.com/small-file.jpg

使用缓存标记(mark参数)

# 任务1:普通下载
http://localhost:7777/proxy?url=https://example.com/video.mp4&mark=normal_download

# 任务2:带认证的下载(相同URL,不同处理方式)
http://localhost:7777/proxy?url=https://example.com/video.mp4&mark=auth_download&header={"Authorization":"Bearer token123"}

# 任务3:移动端下载(相同URL,不同User-Agent)
http://localhost:7777/proxy?url=https://example.com/video.mp4&mark=mobile_download&header={"User-Agent":"Mobile-App/1.0"}

缓存标记(mark)说明

mark 参数是一个缓存标识符,用于区分和管理不同的下载任务:

主要作用

  1. 缓存隔离: 相同URL的不同任务使用独立缓存
  2. 连接复用: 相同mark的请求复用HTTP连接
  3. 任务标识: 便于调试和日志追踪

使用场景

场景1: 相同文件的不同下载方式

# 高清版本
http://localhost:7777/proxy?url=https://cdn.example.com/video.mp4&mark=hd_version&size=1M

# 标清版本(相同URL,不同处理参数)
http://localhost:7777/proxy?url=https://cdn.example.com/video.mp4&mark=sd_version&size=256K

场景2: 不同用户的相同资源

# 用户A下载
http://localhost:7777/proxy?url=https://example.com/file.zip&mark=user_a&header={"Cookie":"session=abc123"}

# 用户B下载
http://localhost:7777/proxy?url=https://example.com/file.zip&mark=user_b&header={"Cookie":"session=def456"}

场景3: 不同平台的相同内容

# PC端下载
http://localhost:7777/proxy?url=https://example.com/app.apk&mark=pc_client

# 移动端下载
http://localhost:7777/proxy?url=https://example.com/app.apk&mark=mobile_client

默认行为

  • 如果不指定 mark 参数,系统会使用完整的 url 作为缓存标记
  • 建议在有多种下载需求时主动设置 mark 参数

3. M3U8参数和示例

M3U8支持的URL参数

参数 必需 说明 示例值
url M3U8播放列表URL https://example.com/playlist.m3u8
form 编码格式 base64(URL和header使用base64编码)
header 自定义请求头 JSON格式的请求头
type 文件类型标识 m3u8

M3U8使用示例

基本用法

http://localhost:7777/m3u8?url=https://example.com/playlist.m3u8

使用自定义请求头

http://localhost:7777/m3u8?url=https://example.com/playlist.m3u8&header={"User-Agent":"Mozilla/5.0","Referer":"https://example.com"}

使用base64编码

http://localhost:7777/m3u8?url=aHR0cHM6Ly9leGFtcGxlLmNvbS9wbGF5bGlzdC5tM3U4&form=base64&header=eyJVc2VyLUFnZW50IjoiTW96aWxsYS81LjAifQ==

指定类型标识

http://localhost:7777/m3u8?url=https://example.com/playlist.m3u8&type=m3u8

M3U8处理说明

  1. 自动转换: M3U8文件中的相对路径会自动转换为完整URL
  2. 代理重写: 所有媒体文件URL会被重写为通过本地代理访问
  3. 嵌套支持: 支持嵌套的M3U8文件(主播放列表包含子播放列表)
  4. 加密支持: 支持AES加密的M3U8流,密钥URL也会被代理
  5. Base64编码: 当使用form=base64时,输出的代理URL也会使用base64编码