侧边栏壁纸
博主头像
いちごみるく

行动起来,活在当下

  • 累计撰写 70 篇文章
  • 累计创建 48 个标签
  • 累计收到 55 条评论

目 录CONTENT

文章目录

jellyfin加载小雅影视库,resilio自动同步元数据.

本文说明将已有的 NFO、图片与 STRM 元数据接入 Jellyfin,并用 Resilio Sync 接收后续更新。第三方分享的可用性和目录结构应以提供者的当前说明为准。

小雅相关元数据可以用于 Jellyfin,但这不等于直接导入 Emby 的数据库。Jellyfin 需要重新建立自己的媒体库、用户和观看记录;NFO 与图片能减少重复刮削,STRM 则依赖其指向的服务继续可用。元数据同步和 Jellyfin 的媒体库刷新是两个步骤,也不保证实时完成。

一、先规划目录和写入权限

将接收元数据的目录与个人维护的媒体库分开。Resilio 需要写入接收目录,Jellyfin 通常只需要读取它;不要让两个程序同时修改同一批 NFO 和图片。如果使用只读分享,本地修改不会回传,并可能使该文件停止接收后续更新;是否覆盖本地改动应在 Resilio 的分享选项中明确选择。Resilio 的只读同步说明

下面以宿主机上的 UID/GID 1000:1000 为例,部署前用 id 确认实际账户,并替换路径。已有目录应先检查属主和权限,不能为方便直接将整个媒体盘改成 root 或全员可写。

sudo install -d -o 1000 -g 1000 /srv/resilio/config /srv/resilio/metadata

docker run -d \
  --name=resilio-sync \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Asia/Shanghai \
  -p 127.0.0.1:8888:8888 \
  -p 55555:55555/tcp \
  -p 55555:55555/udp \
  -v /srv/resilio/config:/config \
  -v /srv/resilio/metadata:/sync \
  --log-driver=json-file \
  --log-opt max-size=10m \
  --log-opt max-file=3 \
  --restart unless-stopped \
  lscr.io/linuxserver/resilio-sync:latest

8888 是管理界面;示例只绑定本机,可通过 SSH 转发访问并设置管理密码。需要局域网访问时改成宿主机的明确地址,并在防火墙中限制来源。55555 是同步端口,TCP、UDP 映射和网络连通性都应检查。桥接网络可正常使用,host 网络不是必选项。LinuxServer 镜像文档

latest 是会变化的标签。升级前备份 /config,记录实际镜像摘要,确认需要的 Resilio 版本和授权功能,再替换容器。

二、导入初始元数据并添加分享

如果提供者提供完整初始包,可先解压所需分类到接收目录,再添加对应分享,减少首次网络传输;Resilio 仍需扫描和校验已有文件。文件名 all.mp4 本身不能证明它是压缩包,先核对来源、文件类型和完整性,再选择解压工具。

初始元数据目录示例

使用提供者当前发布的分享链接或只读密钥。旧的固定密钥不作为长期可用的配置:分享可能更换或撤销,添加前还应确认自己有权接收这些内容。选择对应分类即可,无需为一个媒体库同步所有资源。

例如将电视剧分类接收到容器的 /sync/xiaoya/每日更新/电视剧,对应宿主机 /srv/resilio/metadata/xiaoya/每日更新/电视剧。Jellyfin 中使用容器自己的映射路径,不能直接填 Resilio 的容器路径。保持相对目录结构,是为了使 NFO、图片和 STRM 相互对应;并非所有分享都要求相同的绝对路径。

Resilio 添加分享界面,2024 年截图

选择本地接收目录,2024 年截图

Resilio 会传播源端更新和删除;它的 .sync/Archive 保存部分历史版本,但不是独立备份,也不能保证恢复所有本地误操作。保留个人文件的独立备份,不要随意删除 .sync 服务目录。归档与恢复说明

三、按测量结果调整资源

首次索引可能占用 CPU、磁盘与网络。先看容器日志、磁盘剩余空间和任务进度,再逐项调整,过低的 CPU 或 I/O 限制会延长扫描,而不是消除扫描工作。Docker 的 --cpus=1 是总 CPU 配额,--memory=2g 是内存上限示例,应根据实际文件数量决定;内存不足会触发 OOM。

不要复制固定的 /dev/sda IOPS 限制:目录可能位于 RAID、LVM、ZFS 或网络文件系统,块设备限速是否生效也取决于 Docker 和 cgroup 环境。Docker 日志轮转只控制容器标准输出,Resilio 自己的调试日志另行设置。

高级选项 含义与取舍
log_size 调试日志的内存分配上限,不是所有磁盘日志的总大小
disk_low_priority 降低磁盘操作优先级,可能牺牲同步速度
worker_threads_count 索引工作线程数量;减少线程可降低并发,也会延长索引
show_service_disk_thread 控制性能图中是否显示磁盘线程,不会减少实际 I/O
rate_limit_local_peers 决定带宽限制是否也作用于局域网节点,仍需设置实际限速值
folder_rescan_interval 兜底重新扫描的间隔;增大会延后漏报变动的发现

各版本参数以 Resilio 高级偏好文档 为准,不将上述数值当作通用优化模板。关闭调试日志前先保留排障所需信息。

如果只希望夜间同步,可在具有 Docker 权限的账户下使用如下定时任务;会中断白天的更新,时间以宿主机时区为准,启用前确认首次同步已完成。

0 2 * * * /usr/bin/docker start resilio-sync
0 6 * * * /usr/bin/docker stop resilio-sync

四、让 Jellyfin 接收更新

Jellyfin 容器将元数据目录只读挂载到媒体路径,在媒体库中启用所需的本地 NFO 和图片读取方式,然后手动扫描一个小分类,检查路径、海报和 STRM 播放。不要未经核对就禁用所有联网元数据提供者:本地资料缺失时是否补充刮削取决于自己的需求。

同步完成并不代表 Jellyfin 已扫描。大规模库的耗时与文件数量、数据库位置、图片生成、刮削服务和并行同步有关;2024 年针对 10.8 的问题不能直接代表当前版本,也不能据此断言所有扫描都会锁死界面。记录当前版本和扫描日志,先分批导入、错开索引任务,再判断瓶颈。

NFS 等远程文件系统尤其需要验证来自其他客户端的更新是否能通知 Jellyfin。必要时用定时扫描或基于轮询的通知工具,详见远程文件变动与 Jellyfin 刷新;Docker 和路径配置见Jellyfin 部署与优化。

0

评论区