同步上游 0921 版 zip(新增 emby 播放等 20 处变更)
This commit is contained in:
@@ -18,9 +18,13 @@ macOS / Linux 在程序所在目录执行对应命令;若提示没有执行权
|
||||
源码运行需要 Go 1.24.1+,在项目根目录执行:
|
||||
|
||||
```bash
|
||||
go env -w GOPROXY=https://goproxy.cn,direct
|
||||
go env -w GOSUMDB=off
|
||||
go run .
|
||||
```
|
||||
|
||||
启动及编译脚本会自动将上述设置保存到当前用户的 Go 配置;启动成品时若未安装 Go,会跳过配置。Docker 编译阶段也内置相同设置。
|
||||
|
||||
默认监听 `0.0.0.0:8998`,本机访问 `http://127.0.0.1:8998`,其他设备访问 `http://运行程序电脑的局域网IP:8998`。防火墙需允许 TCP 8998;`0.0.0.0` 是监听地址。服务器启动可加 `-open=false`,仅本机使用可加 `-listen 127.0.0.1:8998`。
|
||||
|
||||
第一次启动自动创建配置及管理员,随机初始密码显示在启动控制台。默认允许匿名使用。管理员、登录和注册设置见下一节。
|
||||
@@ -109,7 +113,7 @@ go run . -admin-user owner -admin-password 'replace-with-your-own-password'
|
||||
|
||||
在线播放默认选当前可解析的最高兼容画质,选项来自本集实际返回的片源;桌面只有一档时隐藏选择器,手机显示实际可用选项。切换时保留进度、暂停状态和倍速。输出保留源分辨率,不把低画质片源放大。
|
||||
|
||||
默认优先播放源站的原始 MP4 / HLS。兼容的 MP4 直接交给视频元素,HLS 在 iOS 等支持的浏览器中走原生播放,其他支持 MSE 的浏览器使用程序内置的 hls.js,无需外部脚本 CDN。暂停、续播和跳转不因位置非零而自动启动视频转码;HLS 保留原始时长、初始化片段、密钥、字节范围及分片格式。
|
||||
“优先原始 MP4 / HLS 播放”暂默认关闭,使用原有兼容播放链路;已保存的设置保持不变,之前开启过的用户可在“播放与资源限制”中关闭并保存。开启后,兼容的 MP4 直接交给视频元素,HLS 在 iOS 等支持的浏览器中走原生播放,其他支持 MSE 的浏览器使用程序内置的 hls.js,无需外部脚本 CDN。新链路的暂停、续播和跳转不因位置非零而自动启动视频转码;HLS 保留原始时长、初始化片段、密钥、字节范围及分片格式。
|
||||
|
||||
需要解密或换封装时优先复制视频码流;仅音频不兼容时只转为 AAC,视频转码作为最后回退。该类封装以整集连续处理生成真实分片索引,完成后提供完整时间轴和任意跳转,准备上限为 90 秒,首播可能需要等待。分片时长按实际关键帧生成,不再假定每片固定两秒。源站拒绝或网络失败只有限重试,不通过视频转码解决连接问题。
|
||||
|
||||
@@ -117,9 +121,9 @@ go run . -admin-user owner -admin-password 'replace-with-your-own-password'
|
||||
|
||||
| 设置 | 默认值与用途 |
|
||||
| --- | --- |
|
||||
| 优先原始 MP4 / HLS 播放 | 开启;关闭可回到原有兼容播放链路 |
|
||||
| 优先原始 MP4 / HLS 播放 | 暂默认关闭,使用原有兼容播放链路;可手动开启 |
|
||||
| 允许尝试客户端直连的站源 | 全部关闭;按站源开启后,检查编码、源站鉴权、协议与跨域条件,通过才返回 302,客户端失败退回原样中转 |
|
||||
| 播放会话 / 上游媒体连接上限 | 4 / 8;网页与 Emby 共用额度 |
|
||||
| 播放会话 / 上游媒体连接上限 | 4 / 8;网页会话与 Emby 当前请求共用额度,已结束的探测不占播放名额 |
|
||||
| 解密 / 换封装、音频转码、视频转码并发 | 2 / 1 / 1;分别限制,可设为 0 禁用对应处理 |
|
||||
| 下一集预备并发 | 1;设为 0 禁用后台预备 |
|
||||
| 封装缓存 | 512 MB;关闭播放后释放,可按磁盘容量调整 |
|
||||
@@ -130,7 +134,7 @@ go run . -admin-user owner -admin-password 'replace-with-your-own-password'
|
||||
|
||||
红果文字弹幕默认开启,在播放设置中可关闭;按原始时间分段加载,暂停、倍速、跳转和切集保持同步,失败不影响播放。普通评论尚未接入,原生视频全屏可能无法显示网页弹幕。
|
||||
|
||||
从下载合集播放时,已有完整文件优先本地读取;未完成的分集只在播放到它时继续对应下载,同时在线缓冲。关闭播放器后已触发的下载继续,可在下载页暂停。网页和 Emby 默认合计最多四个活跃播放会话,管理员可调整。
|
||||
从下载合集播放时,已有完整文件优先本地读取;未完成的分集只在播放到它时继续对应下载,同时在线缓冲。关闭播放器后已触发的下载继续,可在下载页暂停。默认会话上限为 4,管理员可调整;Emby 仅在解析、取流请求进行时占位,请求结束立即释放,同账号同一集的并发请求共用名额。解析结果保留 10 分钟便于复用,转码缓存按上限回收;再次读取已回收缓存的有效分片链接会自动重新准备。
|
||||
|
||||
| 播放入口 | 视频从哪里读取 |
|
||||
| --- | --- |
|
||||
@@ -220,6 +224,18 @@ NAS 或宿主目录映射可改为 `/srv/juku/data:/data`、`/srv/juku/downloads
|
||||
|
||||
容器内的 `127.0.0.1` 指向容器本身。使用宿主代理可设置 `JUKU_PROXY_URL=http://host.docker.internal:7897`,宿主代理需允许容器访问;也可填写容器可达的局域网代理。拉取基础镜像的代理在 Docker 自身配置,独立于应用代理。
|
||||
|
||||
1Panel 导入 Compose 时,构建目录必须指向完整源码根目录,包含 `Dockerfile`、`go.mod`、`main.go`、`internal/`;多站源版还需要 `go.sum`。只粘贴 Compose 内容时,将 `build.context` 改为服务器上的源码绝对路径。新版显式使用 `pull_policy: build`,本地镜像名不会再被误当成 Docker Hub 的已发布镜像拉取。
|
||||
|
||||
如果日志出现 `failed to resolve source metadata`,且 `docker.1panel.live/.../manifests/...` 返回 `403 Forbidden`,失败发生在拉取 Go / Debian 基础镜像时,尚未复制或编译源码。到 1Panel 的 Docker 镜像加速设置移除失效地址,改用当前网络可访问的镜像服务或 Docker Hub;更改 Docker 配置后按面板提示使其生效。先确认下面两条成功,再重新构建,增加源码文件或设置 `GOPROXY` 无法修复该 403:
|
||||
|
||||
```bash
|
||||
docker pull golang:1.26-bookworm
|
||||
docker pull debian:bookworm-slim
|
||||
docker compose up -d --build
|
||||
```
|
||||
|
||||
也可在 Compose 环境变量 / `.env` 中指定 `JUKU_GO_IMAGE` 和 `JUKU_RUNTIME_IMAGE`,填入自有或已验证可访问仓库中的完整 Go / Debian 镜像名。默认分别为 `golang:1.26-bookworm`、`debian:bookworm-slim`;`scripts/docker-build.sh` 同样支持这两个环境变量。这里只切换基础镜像地址,不改变 Go 依赖代理。
|
||||
|
||||
`./scripts/docker-build.sh` 可单独构建,并接受 `--platform linux/arm64` 等 Docker 参数。构建上下文排除运行数据、视频、便携 FFmpeg 和 `dist/`。本次环境没有 Docker 引擎,未在真实容器运行新版;已有本地代理、FFmpeg 和合成媒体回归。
|
||||
|
||||
## 反向代理
|
||||
@@ -271,7 +287,7 @@ Docker 中需要让两个容器看到同一份导出文件。例如剧库的 `/d
|
||||
|
||||
自动同步和手动 ZIP 的 NFO 都包含签名海报 URL,导出目录不生成图片文件。Emby 自身不读取 NFO 里的海报 URL,因此自动补图需要上述 Emby 地址和 API Key;仅解压手动 ZIP 不会自动补图。海报 URL 不依赖网页登录 Cookie,会检查导出账号当前的站源及下载权限,并复用网页海报的代理、来源头和格式兼容处理。Emby 获取海报时需保持本程序运行;获取后由 Emby 缓存,是否将图片保存到媒体目录由 Emby 自身设置决定。
|
||||
|
||||
自动同步只维护自己生成并登记的剧集目录;同名的手动目录、其他文件以及暂时从站源消失的已有分集均保留。移出所有同步范围或关闭功能会停止后续更新,不自动删除已导入的文件。单部剧更新失败不覆盖旧文件,面板会列出失败原因;其他剧继续处理。它不自动下载新视频,也不回写 Emby 的用户或观看进度。 Emby 播放同样优先原始媒体与本地文件;若 Emby 服务端跟随 302 后再转发给终端,视频流量仍由 Emby 所在机器承担。播放期间保持本程序运行,需要媒体处理时由程序调用 FFmpeg。
|
||||
自动同步只维护自己生成并登记的剧集目录;同名的手动目录、其他文件以及暂时从站源消失的已有分集均保留。移出所有同步范围或关闭功能会停止后续更新,不自动删除已导入的文件。单部剧更新失败不覆盖旧文件,面板会列出失败原因;其他剧继续处理。它不自动下载新视频,也不回写 Emby 的用户或观看进度。 Emby 播放同样遵循原始播放开关,开启后优先原始媒体与本地文件;若 Emby 服务端跟随 302 后再转发给终端,视频流量仍由 Emby 所在机器承担。播放期间保持本程序运行,需要媒体处理时由程序调用 FFmpeg。
|
||||
|
||||
手动导出仍可使用:打开剧集详情,点击“导出 Emby”,将 ZIP 解压到电视剧媒体库并扫描;这种方式需要有新集时重新导出。手动导出和自动同步都遵循账号权限。登录账号导出的链接绑定当前账号,自动同步链接绑定启用功能的管理员;链接不依赖网页登录 Cookie,每次播放和读取分片检查账号当前站源与下载权限。普通账号改为仅在线观看或收回相应站源后,对应链接失效。匿名导出和旧版 STRM 使用独立签名,开启必须登录不会撤销这类旧链接。
|
||||
|
||||
@@ -359,7 +375,8 @@ bash scripts/build.sh
|
||||
| --- | --- |
|
||||
| Docker 有封面和集数,却不能播放 | 已修复 FFmpeg 继承代理变量后,把程序内部 `127.0.0.1` 媒体请求错误送往外部代理的问题;应用访问源站仍使用所设代理。需要重建镜像。列表成功不代表视频 CDN 可达,其他原因结合日志判断 |
|
||||
| 红果提示榜单格式或分页变化 | 已兼容新旧页面数据载体,修复真人剧、AI 剧及翻页;升级后重新加载榜单,不必清空剧库 |
|
||||
| VPS 播放卡、CPU 高 | 默认原始 MP4/HLS 免转码,解密或换封装保留视频,仅必要时转码。查看 `playback.plan` 的处理方式和 CPU,在播放资源设置限制并发;CPU 低但缓冲需检查线路、代理和带宽,免转码中转仍使用 VPS 流量 |
|
||||
| VPS 播放卡、CPU 高 | 原始 MP4/HLS 播放暂默认关闭;手动开启后兼容内容免转码,解密或换封装保留视频,仅必要时转码。查看 `playback.plan` / `playback.mode` 的处理方式和 CPU,在播放资源设置限制并发;CPU 低但缓冲需检查线路、代理和带宽,免转码中转仍使用 VPS 流量 |
|
||||
| 准备播放失败:媒体分片未完整生成 | 先关闭“优先原始 MP4 / HLS 播放”并保存,再重新播放。已修正 Windows 输出路径分隔符导致初始化分片写错目录的问题;仍失败时,日志会指出具体文件缺失、为空或访问失败,请提供站源、剧名/集数、系统与相关日志 |
|
||||
| 下载只有 720p | 选择“最高可用”或指定 1080p,查看 `download.media` 中实际和可用画质。下载保留原码流;源站只提供兼容 720p 时不会生成真正的 1080p。此前在线播放的 720p 缩小上限也已移除 |
|
||||
| Windows 报 `Unrecognized option 'preset'` | 查看实际选中 FFmpeg 路径。自动模式会跳过不兼容版本,显式路径需改为具备 libx264/AAC 的完整版本,或设为 `ffmpeg` 恢复自动查找;修改 PATH 后重开终端 |
|
||||
| 中途 `unexpected EOF` | 已知长度和范围时自动有限续读,默认每个响应最多两次;资源变化、不支持 Range 或持续失败仍报错。点击“重试播放”,结合发生时间和集数查看日志 |
|
||||
@@ -368,6 +385,7 @@ bash scripts/build.sh
|
||||
| 无法访问局域网服务 | 检查监听地址、宿主端口、防火墙和无线客户端隔离;远程设备不要访问自己的 `127.0.0.1` |
|
||||
| 个别用户黄果海报返回 400,其他站源正常 | 已修复图床 `pic.tuafjz.cn` 被旧硬编码域名名单误拒绝的问题,并取消该名单;新域名使用剧库来源校验、正确来源头和格式处理。升级程序或重建镜像后刷新网页;旧缓存缺地址时点开剧集或更新剧库补齐,无需删除账号、观看记录。502 则查看 `cover.failed` 的上游错误 |
|
||||
| 黄果视频返回 Cloudflare 403 | 使用已接入 Chrome 150 指纹客户端的新版程序或重建镜像,等待提示的退避结束再更新。查看 `network.browser_request` 的状态和 Ray ID,不把 403 直接当作 IP 封禁 |
|
||||
| Emby 播放 STRM 提示没有兼容的流 / servererror | 这是 Emby 的通用提示。旧版存在扫描后占满播放名额的缺陷,升级后同集复用,探测结束释放占位。保留 `/data` 卷重建镜像,再在 Emby 重试播放或刷新媒体信息;仍失败时,确认 STRM 地址能从 Emby 服务器 / 容器访问,并查看同一时间的 `emby.playback_failed` 与 FFmpeg 日志。429 表示当前并发达到设置上限,403 检查签名密钥与账号权限,502 检查源站取流和媒体处理;不要仅凭该提示判断编码不兼容 |
|
||||
| Emby 剧集有了但没有海报 | 在“扫描与海报同步”填写服务器地址和有管理权限的 API Key;查看逐剧海报状态,等待扫描或失败重试。目录必须加入电视剧媒体库,不能重复挂载;只解压 ZIP 无法靠 NFO 海报 URL 自动补图 |
|
||||
| Emby 没有自动出现新剧 | 先在“更多 → Emby 同步”启用并选好范围;检查输出目录是否与 Emby 共享、扫描是否开启,面板显示同步与通知错误。仅手动导出 ZIP 不会自动更新 |
|
||||
| 下载目录不能写入 | 填写服务所在电脑或容器的路径并检查运行用户权限;修改目录后重启,旧任务仍使用原路径 |
|
||||
@@ -401,6 +419,8 @@ Windows PowerShell 可用 `Get-Content .\data\logs\app.log -Tail 100`。`ffmpeg.
|
||||
| 修复 | 黄果海报来源与解密 | 修正 `pic.tuafjz.cn` 的 CDN 分类,按剧集站源发送来源头;加密封面不再依赖某个固定域名才能解密,签名查询参数完整保留 |
|
||||
| 修复 | 黄果视频 Cloudflare 403 | 预先使用 Chrome 150 的 TLS / HTTP/2 / 请求头指纹;保留代理、限流、退避与证书验证,网络检测采用同一链路 |
|
||||
| 新增 | Emby 海报自动同步 | 通过签名 URL 让 Emby 获取和缓存海报;支持扫描等待、失败退避、重启恢复,保留自定义海报,导出目录无需额外图片文件 |
|
||||
| 修复 | Emby 探测占满播放名额 | 探测与传输结束立即释放占位,同账号同集复用;闲置转码缓存回收后可按原分片链接恢复,保留实际并发与转码限额 |
|
||||
| 优化 | 1Panel / Compose 源码构建 | 明确使用本地构建,基础镜像地址可配置,区分镜像加速器 403 与缺少构建文件 |
|
||||
| 新增 | Emby 自动同步 | 管理员可按追剧 / 已下载合集定时生成 STRM、NFO 并补集;无需下载视频,支持通知 Emby 扫描,重启继续,已有文件不重复写入 |
|
||||
| 新增 | 管理员启动参数 | 默认 admin / 随机密码,首次强制改密;自设密码免首次强制改密,支持环境变量和重置 |
|
||||
| 新增 | 登录与注册策略 | 管理员控制必须登录、允许注册及手动建号;默认匿名开放、注册开放 |
|
||||
|
||||
Reference in New Issue
Block a user