Skip to content

Repository files navigation

139 Share Proxy

Docker Hub

这是一个把 139 网盘分享链接整理成可播放、可挂库、可批量生成 .strm 的小工具。

重要提醒

  • HLS 播放链不是原画质,它更偏向“网页可直接播放的流”
  • 想要更接近原文件画质,请使用 download-only 模式
  • 如果你想实验“固定 /media 入口 + 每次请求都 302 到最新下载直链”,可以使用 download-redirect
  • 如果你更看重稳定直播放,优先用 mixed
  • 如果你更看重原始质量,优先用 download-only

它适合拿来做这些事:

  • 把 139 分享链接批量生成成 .strm
  • 给 Emby / Jellyfin / Kodi 提供统一播放入口
  • 在网页面板里导入 139 登录态
  • 用 WebDAV 暴露已经生成好的库

预览

控制面板预览

你能用它做什么

这个项目的思路很简单:

  • 如果 139 页面本身能给出 HLS 播放地址,就优先直接播放
  • 如果没有 HLS,就按当前下载模式走下载代理或实验性直跳
  • 生成出来的 .strm 都走统一入口 /media

这样做的好处是:

  • 链接结构统一
  • 面板里可以切换模式
  • 下载直链过期时,不需要你手动重做整库

快速开始

本地运行

cp config.example.json config.json
npm start

默认地址:

http://127.0.0.1:8787

控制面板:

http://127.0.0.1:8787/panel

默认监听地址是:

0.0.0.0:8787

也就是说:

  • 本机访问通常还是用 http://127.0.0.1:8787
  • 局域网访问则用宿主机自己的 IP,例如 http://192.168.x.x:8787

第一次怎么用

推荐顺序:

  1. 打开控制面板
  2. 去“导入认证”页,把你当前浏览器里的 139 登录态导进来
  3. 去“配置”页确认模式
  4. 去“生成 STRM”页粘贴分享链接
  5. 等任务跑完后,把生成目录挂到播放器里

模式怎么选

mixed

推荐默认用这个。

  • 页面有 HLS 就直接走 HLS
  • 没有 HLS 才回退到下载代理

适合大多数日常播放场景。

download-only

  • 所有请求都走下载代理
  • 更接近原始文件
  • 依赖 139 登录态

适合网页本身不提供 HLS,或者你明确只想走原文件代理的时候。

download-redirect

  • .strm 入口仍然是 /media
  • /media 在每次请求时都会解析最新下载直链并返回 302
  • 不走本机转发流量
  • 稳定性取决于播放器是否会重新请求入口

适合你想实验“尽量省 NAS 流量”的场景,但它没有 download-only 稳。

生成出来的文件在哪

默认情况下,面板里的输出目录是:

./output-panel

也就是说:

  • 本地运行时,默认会生成到项目目录下的 output-panel/
  • Docker 运行时,默认会生成到容器里的 /data/output-panel

Docker 用法

1. 准备目录

mkdir -p ./data

说明:

  • 如果 ./data/config.json 不存在,容器启动时会自动从镜像内的 config.example.json 复制一份到 ./data/config.json
  • 所以第一次跑起来后,你的挂载目录里就能直接看到配置文件

2. 启动容器

使用 GHCR:

docker run -d \
  --name share139-proxy \
  -p 8787:8787 \
  -v "$(pwd)/data:/data" \
  ghcr.io/2982136527/share139-proxy:latest

3. Docker Compose 示例

使用 GHCR:

services:
  share139-proxy:
    image: ghcr.io/2982136527/share139-proxy:latest
    container_name: share139-proxy
    ports:
      - "8787:8787"
    volumes:
      - ./data:/data
    restart: unless-stopped

启动:

docker compose up -d

使用 Docker Hub:

services:
  share139-proxy:
    image: docker.io/qiuhusama/share139-proxy:latest
    container_name: share139-proxy
    ports:
      - "8787:8787"
    volumes:
      - ./data:/data
    restart: unless-stopped

Docker 里的数据会放到哪里

这份映射:

volumes:
  - ./data:/data

已经把配置、运行状态、输出目录都一起挂出来了。

比如:

  • 配置文件:./data/config.json
  • 任务历史:./data/.share139-runtime.json
  • 默认输出目录:./data/output-panel
  • 如果你自己把输出目录改成 ./libraries,那实际路径就是 ./data/libraries

所以这里不需要再额外挂一个单独的输出目录 volume。

登录态怎么导入

推荐流程:

  1. 打开面板里的“导入认证”
  2. 点击“复制采集脚本”
  3. 在同一个浏览器里打开并登录 yun.139.com
  4. 把脚本贴到控制台执行
  5. 回面板粘贴采集结果并导入

这个流程是你自己主动导入当前登录态,不是去拦截官方登录。

批量生成

你可以一次提交多条分享链接。

系统会自动:

  • 把它们归到同一个批次
  • 给每条分享创建一个子任务
  • 支持按批次取消
  • 支持重试失败项
  • 支持清空已经结束的历史任务

任务会不会丢

不会。

服务端会把批次和子任务历史保存到:

.share139-runtime.json

所以服务重启以后:

  • 任务历史还在
  • 失败记录还在
  • 排队中的任务也可以恢复

另外,生成 STRM 页里的输入内容也会保存在浏览器本地,刷新页面不会直接清空。

常用接口

如果你只把它当面板工具用,其实不太需要关心接口。
如果你要自己对接,可以看这些:

  • /health
  • /api/config
  • /api/status
  • /api/generate
  • /api/test-mode
  • /api/batch/cancel
  • /api/batch/retry-failed
  • /api/tasks/clear-history
  • /media
  • /dav/...

配置项

常用的几个:

  • mode
  • downloadProxyChunkSize
  • downloadLinkCacheTtlSeconds
  • requestConcurrency
  • requestRetries
  • playableVideoSuffixes
  • downloadVideoSuffixes
  • auth.account
  • auth.accountType
  • auth.authorization
  • auth.mcloudSkey

如果你不想手改文件,也可以直接在面板里改。

许可证

GNU AGPL v3

About

139 share proxy, STRM generator, WebDAV and control panel for China Mobile 139 share links

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages