yt-dlp + Jellyfin Jellyfin+ Koding Koding+ Emby Emby + Docker+ Youtarr+ Plex Media Server

按计划从YouTube频道下载视频并生成媒体库元数据

Youtarr用yt-dlp定时下载,Plex集成扫描库,NFO元数据兼容Jellyfin/Kodi/Emby

✓ Web UI可选择性下载✓ 生成NFO兼容多家媒体服务器 ✕ 依赖YouTube与yt-dlp可用性

方案简介

Youtarr 是一个自托管的 YouTube 频道下载器,核心目标是把订阅频道的视频按计划批量拉取到本地,并通过生成 NFO 元数据让家庭媒体服务器(媒体中心)能够正确识别、刮削和展示这些视频。它适合那些希望把 YouTube 内容像 NAS 影视库一样归档、并在 Plex/Jellyfin/Kodi/Emby 等统一界面中观看、又不想手动一条条下载的用户。整个项目以 Docker 镜像形式分发,采用 ISC 许可证开源。借助 yt-dlp 作为底层下载引擎,Youtarr 既保持了与 youtube-dl 生态一致的兼容性,也获得了对 YouTube 当前反爬策略的持续支持。

亮点与能力

  • 定时计划下载:按照设定的时间表自动从已配置的 YouTube 频道拉取新视频,无需人工值守。
  • Web UI 浏览与挑选:提供 Web 界面浏览频道视频清单,用户可以在下载前有选择地确认或剔除部分条目。
  • yt-dlp 驱动下载:底层使用 yt-dlp 作为下载引擎,继承其对 YouTube 等站点的解析与格式选择能力。
  • Plex 集成:与 Plex Media Server 集成,使下载的视频可以直接出现在 Plex 库中。
  • NFO 元数据生成:自动生成 NFO 元数据文件,兼容 Jellyfin、Kodi、Emby 等媒体服务器,便于刮削海报、简介、季集信息。
  • Docker 部署:以 Docker 镜像方式运行,便于在 NAS、家庭服务器上快速拉起。

组成与分工

  • Youtarr:本体应用,负责调度、UI 展示、下载任务编排以及元数据生成,是整个工作流的控制中枢。
  • yt-dlp:实际执行 YouTube 频道视频下载的命令行工具,被 Youtarr 调用以完成网络抓取与格式选择。
  • Plex Media Server:Plex 媒体服务器,作为下载完成后主要的播放/管理端之一,与 Youtarr 直接集成。
  • Jellyfin:开源媒体服务器,通过消费 Youtarr 生成的 NFO 元数据来正确识别视频信息。
  • Kodi:家庭影院播放软件,同样通过 NFO 元数据获取剧集信息。
  • Emby:媒体服务器,依赖 NFO 文件完成视频元数据的解析与展示。
  • Docker:容器运行时,Youtarr 以镜像方式发布,方便在 NAS、家庭服务器上部署。

前置要求

  • 一台可长期在线的服务器或 NAS,建议具备足够的磁盘空间存放视频文件。
  • 已安装 Docker 运行环境(用于拉取 Youtarr 镜像)。
  • 至少一个目标媒体服务器(Plex / Jellyfin / Kodi / Emby 中任意一个或多个)。
  • 目标 YouTube 频道的网络可达性,以及 yt-dlp 在镜像内可正常调用 yt-dlp 的环境。

实施步骤

1. 部署 Youtarr 容器

通过 Docker 拉取并启动 Youtarr 镜像,把视频下载目录挂载到宿主机的媒体库路径下,使后续 Plex/Jellyfin/Kodi/Emby 能够直接扫描到这些文件。

2. 配置 YouTube 频道订阅

在 Youtarr 的 Web UI 中添加希望订阅的 YouTube 频道,并设定下载计划(按 schedule 触发)。

3. 浏览并选择性下载

通过 Web UI 浏览已订阅频道的视频列表,按需勾选确认要下载的条目,避免下载不需要的视频。

4. 触发 yt-dlp 下载

Youtarr 在后台按计划或手动调用 yt-dlp 完成实际视频下载,文件落盘到挂载的媒体目录。

5. 集成媒体服务器

  • 若使用 Plex:让 Plex 媒体库指向下载目录,Youtarr 与 Plex 集成以自动刷新库。
  • 若使用 Jellyfin / Kodi / Emby:确保它们扫描同一目录,并依赖 Youtarr 生成的 NFO 元数据进行识别。

6. 验证

打开 Plex / Jellyfin / Kodi / Emby 的客户端,确认已下载视频能够正确显示标题、简介、海报等元数据。

使用与配置要点

  • 在 Web UI 中维护频道订阅列表,并根据需要调整定时下载的时间窗口。
  • 在 Web UI 中按频道浏览新视频,挑选本次想要下载的条目。
  • 下载完成后,在 Plex / Jellyfin / Kodi / Emby 中触发媒体库扫描,验证视频元数据(标题、海报、简介)是否正常显示。
  • 若 NFO 元数据未生效,检查目标媒体服务器是否启用 NFO 解析以及文件命名是否符合其约定。

注意事项与常见问题

  • Youtarr 自身只负责下载与元数据生成,视频最终播放体验取决于所选的媒体服务器(Plex / Jellyfin / Kodi / Emby)。
  • 由于依赖 yt-dlp,YouTube 网站变更可能导致下载行为需要随 yt-dlp 升级而调整,建议保持镜像更新。
  • NFO 元数据是兼容 Jellyfin / Kodi / Emby 的关键,如果目录结构或命名不规范,媒体服务器可能无法正确识别。

优缺点

  • ✓ Web UI可选择性下载
  • ✓ 生成NFO兼容多家媒体服务器
  • ✕ 依赖YouTube与yt-dlp可用性

出处

本方案挖掘自开源项目 awesome-selfhosted/awesome-selfhosted,方案内容与实施命令均来自其 README 原文。

方案出处
awesome-selfhosted/awesome-selfhosted

本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。