✕
开启精彩搜索
热门搜索
emby EMBY 解析 免流 源码 IPV6 阿里 阿里云 青龙 音乐 网心 网心云 webdav 阿里云盘 unraid 洗白 Rclone 刮削 云梦

用 snowie2000/livetv 在飞牛 NAS 搭建 YouTube 直播聚合系统

  之前我们聊过用 akiralereal/iptv 替代肥羊的方案。但它有个明显的短板——不支持 YouTube 直播。今天要介绍的 snowie2000/livetv 正好补上了这块拼图:它不仅能聚合国内主流直播源,还内置了 YouTube 直播解析,并且官方镜像已经打包好了 yt-dlp 和 JS 运行时,开箱即用。

一、为什么选 snowie2000/livetv?

肥羊 AllInOne 停更后,大家的痛点集中在两处:一是国内源逐渐失效,二是完全没有 YouTube 直播能力。snowie2000/livetv(Docker 镜像名为 flyingsnow2000/livetv)定位就是“把 IPTV 源和 YouTube 直播聚合到一个站点里”。

它和肥羊的核心区别在于:

能力 肥羊 AllInOne snowie2000/livetv
国内直播源聚合 ✅ ✅
YouTube 直播解析 ❌ ✅(内置 yt-dlp)
JS 运行时依赖 不涉及 镜像已内置,无需手动装 Deno
播放列表输出 M3U M3U,支持 Token 保护

最关键的一点:官方镜像已经把 Python 3.13、最新版 yt-dlp 和 bgutil-ytdlp-pot-provider 全部打包进去了。这意味着你不需要像自己搭建服务那样,去操心“yt-dlp 需要 JS 运行时”这个烦人的问题。

二、飞牛 NAS 部署

前提检查

你的飞牛 NAS 需要满足:Docker 已启用,建议通过 SSH 操作(因为飞牛 Docker 界面的 Compose 功能对镜像名中的 : 和复杂端口映射支持有限,SSH 更稳)。

第 1 步:开启 SSH 并登录

进入飞牛 OS,到 【设置】-【SSH】 中打开 SSH 功能。

在电脑终端(Windows 用 CMD 或 PowerShell)输入:

ssh 你的飞牛用户名@飞牛IP

输入密码登录后,执行 sudo -i 切换到 root 权限。

第 2 步:创建数据目录

mkdir -p /vol1/1000/docker/livetv/data
cd /vol1/1000/docker/livetv

路径请根据你飞牛的实际存储空间调整,/vol1/1000/ 是常见的默认路径。

第 3 步:启动容器

直接使用官方给出的 Docker Run 命令,只需调整端口和挂载路径:

docker run -d \
  --name livetv \
  --restart always \
  -p 9000:9000 \
  -v /vol1/1000/docker/livetv/data:/opt/livetv/data \
  flyingsnow2000/livetv:latest

端口说明:容器内部监听 9000,映射到飞牛的 9000 即可。如果 9000 被占用,把左边的 9000 改成其他端口(如 19000)。

第 4 步:验证启动

docker ps | grep livetv

看到容器状态为 Up 即成功。

三、初始配置(关键步骤)

访问管理界面

浏览器打开:

http://飞牛IP:9000

默认密码是 password。第一次登录后请立即在设置中修改。

配置外部访问地址(必做)

项目作者特别强调:首次使用需要点击界面上的齿轮按钮,在设置区域点击 “Auto Fill”,让它自动填入正确的访问 URL,然后点击 Ok 保存。

这一步不能跳过。如果不设置,后续生成的 M3U8 播放地址会指向 127.0.0.1,你的播放器(手机、电视、电脑上的)根本连不上。

添加 YouTube 直播频道

进入管理界面后:

  1. 点击 Add Channel
  2. Channel Name:随便填,比如“测试新闻”
  3. Live URL:粘贴 YouTube 直播地址。推荐用频道的 /live 链接,例如:
    https://www.youtube.com/@频道handle/live
    
    这样每次解析都会自动指向该频道当前正在进行的直播。
  4. Parser:选择 yt-dlp
  5. 其他字段保持默认,点击 OK 保存

保存后,列表中的 M3U8 列会生成一个可播放的地址。如果出现红色叉号,说明解析失败了,先检查 URL 格式和网络连通性。

四、关于 YouTube 解析的常见问题

你之前遇到的“红色叉号”解析失败,根源在于 yt-dlp 现在需要外部 JavaScript 运行时才能完整支持 YouTube。

yt-dlp 官方在 2025 年 11 月正式宣布:没有 JS 运行时,YouTube 支持将逐渐不可用。原因是 YouTube 的反爬机制需要执行复杂的 JS 挑战脚本,纯 Python 解释器已经无法胜任。

snowie2000/livetv 的官方镜像已经内置了所需的运行时,所以你不需要自己折腾 Deno 或 Node.js。如果你仍然遇到解析失败,优先检查:

  1. 飞牛 NAS 的网络能否访问 YouTube(这是最常见的根源,NAS 如果没走代理,解析一定失败)
  2. 频道是否正在直播(非直播时段,yt-dlp 无法解析出直播流)
  3. 镜像版本是否过旧,执行 docker pull flyingsnow2000/livetv:latest 更新后重启容器

五、总结

snowie2000/livetv 是目前少数能把国内 IPTV 聚合和 YouTube 直播放在同一个系统里处理的开源方案。它的官方镜像省去了 JS 运行时的配置麻烦,对飞牛 NAS 用户来说,部署成本主要就是一条 Docker Run 命令。

部署完成后,你可以在播放器中添加 http://飞牛IP:9000/playlist.m3u?token=你的令牌 来获取包含所有频道的完整播放列表。Token 会在你设置密码后自动生成,用来保护你的播放地址不被外部随意访问。

💬 评论区 0