用 NAS 打造“私人影视站”,可接入小龙虾、hermes 一键下载,随时随地看
最近玩 AI 是在玩的有点儿癫,但是也不能忘记咱们的老本行~
今天给大家带来的是一款即支持标准 REST API ,又支持 NAS 部署手动操作的影视下载、管理、刮削、观看平台 —— MyTube。
它是一款基于 ytb-dl 工具的可视化管理界面,支持数十个网站的视频下载,支持自动订阅、跟踪媒体,支持接入 openlist,拥有内置的 cloudflare tunnel 穿透。

我们可以通过网页客户端查看影音仓库。系统内置了作者列表、合集列表、历史查看、排序、关键词检索等强大的筛选能力。

也可以通过将 API 提供给 openclaw、hermes 等 Agent 助手,让它自动帮你检索出相关的资源,并且直接推送观看链接给你。

还支持在线观看、分享、投屏等等。功能十分强大。
下面,我们就来介绍如何部署这个项目,以及如何接入 openclaw/hermes。

一、系统配置与接入 Agent
系统部署完成后,首先要点击右上角的设置按钮,选择第二行 Settings,将语言修改为中文界面。
这里不仅可以配置语言、外观,还可以更改左上角的 MyTube 标题,用来打造自己的影视小站非常不错。

由于系统默认是没有管理员账号的,所以建议大家第一时间到 安全与访问 里开通登录保护,设置一个访问密码。
另外需要注意的是,如果要下载 ytb、b 的一些视频,必须上传你自己的 cookie 信息到 NAS 本地,这样 mytube 才能正常下载,否则会因为网站拦截导致下载失败。

开启登录保护后,还会默认开启一个 API Key 鉴权,这里有一个 API key 。
这个就是让 openclaw、hermes 帮你自动下载影视的方法。

把这段话发给 openclaw/hermes,让它把 mytube api 做成一个 skill ,让你随时可以调用。
这是一个 mytube 服务,它的 URL 是 你的NASip:5551/api,它的 API 是 (复制你创建的api key),它的文档是 https://gh-proxy.org/https://github.com/franklioxygen/MyTube/blob/master/documents/en/api-endpoints.md。请你根据文档,把它整理成 skill ,备用。然后再询问我要 mytube cookie 。
API Key 只能使用接口里的下载功能,如果要实现 Agent 全量管理,还需要把 mytube 站点的 cookie 给它。
抓取方面,打开浏览器,切换到 Mytube 界面,按 F12 进入浏览器控制台。
刷新页面,然后切换到底部的 网络 菜单,左边随便选择一个页面,在右侧的标头里下拉,找到 Cookie 配置项,复制里面的 cookie ,然后发给 openclaw、hermes。
mytube_auth_session=xxxxxxxxxx;mytube_csrf=xxxxxxxxxxxxxxxx

它就会整理全部的权限,配置成对应的 skill,后续你直接把视频网站复制下来,发给 Agent,就会自动下载到 mytube 仓库里。
想看什么,也直接问他们要就可以了,非常的方便。

这里是 Agent 帮我整理的 Mytube API 端点,包括了下载、管理、历史、合集、订阅、设置、密码、云存储、备份等等数十个 API 服务。

接入完 Agent 之后,我们也可以手动在 Mytube 的设置页面维护一些信息。
比如说 Twich 账号、yt-dlp 个性化配置、openlist 配置等等,这些账号的隐私信息可能不方便通过 Agent 来操作,那么就在网页端自己去配置。

其次,在内容管理里,可以配置 TMDB API 密钥,实现 TMDB 的刮削。

元数据的话,即支持字幕、封面、作者合并在视频里,也可以单独存放,具体看你的需求,灵活性很高。

二、海康智存部署 Mytube
本次部署教程以海康智存 R1 为载体设备。海康智存 R1 是一款标准的四盘位 NAS 产品,拥有一块触摸式小屏,在 NAS 圈内是最独特的存在。
它的特点是和监控设备对接的很好,毕竟是海康的老本行~ 而且近期海康整体的系统会有一个升级,TV 端等也会逐步上线。
首先我们打开海康智存客户端,在 docker 界面里添加本地的 Mytube 镜像。
网盘地址(下载后,双击exe接入为镜像tar格式):
https://pan.quark.cn/s/1bb1ed492487

选择 mytube 镜像,点击创建容器,名字取名为 mytube。

在存储空间里,需要映射两个路径。
空间1/docker/mytube 映射为 /app/data ,读写权限,用来存放 mytube docker 的自身配置数据。
空间/影视剧 映射为 /app/uploads,读写权限,用来存放下载的影视剧资源。

端口的话,配置一个 5551:5551 的 TCP 端口。这个镜像是前后端一体的, API 也可以直接用。

环境变量相对复杂一点,一共需要配置三个。内容都在下面,直接参考图片,复制就可以了。
MYTUBE_AUTO_FIX_PERMISSIONS = 1
MYTUBE_ADMIN_TRUST_LEVEL = container
PORT = 5551

services:
mytube:
image: ${MYTUBE_SINGLE_IMAGE:-ghcr.io/franklioxygen/mytube:latest}
pull_policy: always
container_name: mytube
ports:
- "5551:5551"
volumes:
- ./uploads:/app/uploads
- ./data:/app/data
environment:
- PORT=5551
# Optional: match the backend process uid/gid to the host-side file ownership.
- PUID=${PUID:-1000}
- PGID=${PGID:-1000}
# Set to 0 to disable the startup chown pass for bind-mounted data/uploads.
- MYTUBE_AUTO_FIX_PERMISSIONS=${MYTUBE_AUTO_FIX_PERMISSIONS:-1}
# Optional: declare the admin trust boundary for this deployment.
# Valid values: application | container | host
# Docs: documents/en/deployment-security-model.md
- MYTUBE_ADMIN_TRUST_LEVEL=container
restart: unless-stopped
最后
其实任何基于 rest api 的项目,都可以通过 openclaw、hermes 等 Agent 进行管理、交互。
尤其是在本地环境下,局域网的配置无需担心 cookie 泄露,这大大方便了我们管理和利用 NAS 的能力。
之前我也介绍过在 海康智存上部署 openclaw 的教程,如果你还没有安装,欢迎回顾。我们下期再见~
夜雨聆风