🔥 BRAVE 質押池已上線 — 在錢包搜尋 BRAVE 即可委託

Jellyfin 刮削插件 MetaTube 完整安装与使用教程

    • #32310

      🎯 学习目标:掌握 MetaTube 插件的完整部署流程,包括后端服务搭建、插件配置、文件命名规范及常见问题排查


      一、MetaTube 概述与架构理解

      1.1 什么是 MetaTube?

      MetaTube 是一款专为 Jellyfin/Emby 媒体服务器设计的元数据刮削插件,主要用于日本成人影片(JAV)的信息获取与整理。它采用服务端 + 插件的分离式架构,能够自动从多个数据源抓取完整的影片元数据。

      MetaTube 的核心功能包括:

      功能类别具体内容
      📝 元数据支持标题、简介、类型、导演、演员、制作商等完整信息
      🔍 多源搜索支持跨 20+ 数据提供商搜索电影和演员信息
      🎬 预告片支持无需下载完整视频即可播放预告片段
      👤 演员识别通过 GFriends 和 XsList 自动匹配演员信息与头像
      🖼️ 智能封面人脸检测引擎自动裁剪以面部为中心的封面图
      🔄 自动翻译支持将日文元数据自动翻译为中文
      计划任务自动整理元数据类型并定期更新

      1.2 工作原理与架构

      理解 MetaTube 的工作原理对于后续的部署和故障排查至关重要:

      ┌─────────────────┐     ①发送文件名      ┌──────────────────┐
      │                 │ ──────────────────▶ │                  │
      │   Jellyfin/     │                     │   MetaTube       │
      │   Emby 插件     │ ◀────────────────── │   Server 后端    │
      │                 │    ④返回元数据       │                  │
      └─────────────────┘                     └──────────────────┘
                                                     │ ②请求数据
                                                     ▼
                                              ┌──────────────────┐
                                              │   数据源网站     │
                                              │  (FANZA/DMM/    │
                                              │   MGS/FC2等)    │
                                              └──────────────────┘
                                                     │
                                                     ▼ ③获取信息
                                              ┌──────────────────┐
                                              │   图片/元数据    │
                                              └──────────────────┘
      

      工作流程详解:

      1. 文件扫描:Jellyfin/Emby 扫描媒体库,将文件名(通常包含番号)发送给 MetaTube 插件
      2. 请求转发:插件将番号信息发送到 MetaTube Server 后端
      3. 数据抓取:后端根据番号向各个数据源网站(如 FANZA、DMM、MGS、Arzon 等)发起请求
      4. 数据处理:后端对抓取的数据进行处理(包括图片裁剪、人脸识别、文字翻译等)
      5. 返回结果:处理后的元数据返回给插件,最终由 Jellyfin/Emby 保存和展示

      1.3 为什么需要自建后端?

      许多初学者会问:为什么不能直接使用公共后端服务? 这里需要详细解释:

      对比项公共后端自建后端
      💰 成本免费需要服务器/Docker环境
      稳定性使用人数多,经常超载或停止服务完全由自己控制,稳定可靠
      🚀 速度受限于公共资源,速度较慢独享资源,刮削速度快
      🔒 隐私请求记录可能被第三方获取数据完全在本地,隐私安全
      🌐 网络依赖公共服务器的网络环境可自行配置代理,灵活性强
      📊 数据持久化无法保存历史记录SQLite 数据库持久化存储

      结论:强烈建议自建后端服务,尤其是有长期使用需求的用户。本课程将重点讲解如何使用 Docker Compose 部署自建后端。


      二、Docker Compose 部署 MetaTube Server

      2.1 部署前的准备工作

      2.1.1 环境要求

      在开始部署之前,请确保你的系统满足以下要求:

      要求项最低配置推荐配置
      操作系统Linux / Windows / macOSLinux (Ubuntu/Debian)
      Docker 版本20.10+最新稳定版
      Docker Composev2.0+最新稳定版
      内存512MB1GB+
      存储空间1GB5GB+(包含数据库增长空间)
      网络能访问刮削源网站日本/美国出口 IP(重要!)

      2.1.2 网络环境的特殊说明 ⚠️

      这是 MetaTube 部署中最关键也最容易被忽视的问题:

      由于刮削源(如 FANZA、DMM、MGS 等)的地域限制,MetaTube 后端必须能够访问”真正的互联网”,且最好出口 IP 为日本或美国。部分刮削源仅对这两个地区完全开放。

      部署环境优先级(从高到低):

      1. 🥇 Cloud-Native 云原生部署(如 Huggingface Space、Koyeb、Railway 等)
      2. 🥈 海外 VPS 部署(日本/美国/新加坡等地区的云服务器)
      3. 🥉 本地部署 + 代理配置(需要稳定的代理环境)

      2.1.3 安装 Docker 和 Docker Compose

      如果你尚未安装 Docker,请按以下步骤操作:

      Ubuntu/Debian 系统:

      # 更新包管理器
      sudo apt update
      
      # 安装必要的依赖
      sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
      
      # 添加 Docker 官方 GPG 密钥
      curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
      
      # 添加 Docker 仓库
      echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
      
      # 安装 Docker
      sudo apt update
      sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
      
      # 验证安装
      docker --version
      docker compose version

      群晖 NAS 用户:
      直接在 DSM 套件中心安装 Container Manager(原 Docker 套件)即可。

      2.2 创建 Docker Compose 配置文件

      2.2.1 基础版配置(推荐新手使用)

      首先,创建项目目录并编写配置文件:

      # 创建项目目录
      mkdir -p ~/metatube && cd ~/metatube
      
      # 创建配置目录(用于持久化存储)
      mkdir -p config
      
      # 创建 docker-compose.yml 文件
      nano docker-compose.yml
      

      基础版 docker-compose.yml 内容:

      version: '3.8'
      
      services:
        metatube:
          image: ghcr.io/metatube-community/metatube-server:latest
          container_name: metatube-server
          restart: always
          command: "-dsn /config/metatube.db"
          ports:
            - "8080:8080"
          volumes:
            - ./config:/config
          environment:
            - TZ=Asia/Shanghai

      配置项详解:

      配置项说明
      image使用官方 GitHub Container Registry 镜像
      container_name容器名称,方便管理
      restart: always容器意外停止时自动重启
      command指定数据库文件路径,使用 SQLite 持久化存储
      ports端口映射,主机 8080 端口映射到容器 8080 端口
      volumes关键配置! 将配置目录映射出来,确保数据库文件不会因容器重建而丢失
      TZ设置时区为上海(北京时间)

      2.2.2 进阶版配置(带代理支持)

      如果你在中国大陆部署,需要配置代理才能访问刮削源网站:

      version: '3.8'
      
      services:
        metatube:
          image: ghcr.io/metatube-community/metatube-server:latest
          container_name: metatube-server
          restart: always
          command: "-dsn /config/metatube.db"
          ports:
            - "8080:8080"
          volumes:
            - ./config:/config
          environment:
            - TZ=Asia/Shanghai
            # ⚠️ 代理配置(必须同时设置 HTTP_PROXY 和 HTTPS_PROXY)
            - HTTP_PROXY=http://192.168.1.100:7890
            - HTTPS_PROXY=http://192.168.1.100:7890
            # 可选:不走代理的地址
            - NO_PROXY=localhost,127.0.0.1,192.168.0.0/16

      代理配置说明:

      • HTTP_PROXYHTTPS_PROXY 必须同时配置,缺一不可
      • 代理地址格式:http://[代理服务器IP]:[端口]
      • 如果代理需要认证:http://username:password@[IP]:[端口]

      可行的代理环境方案:

      1. 局域网内的代理软件:在 Windows/Mac 上运行 Clash/V2Ray,开启”允许局域网连接”
      2. 旁路由代理:OpenWrt/软路由上运行代理服务
      3. 虚拟组网:通过 Tailscale/ZeroTier 连接的远程代理服务器

      2.2.3 完整版配置(Jellyfin + MetaTube 一体化部署)

      如果你还没有部署 Jellyfin,可以使用以下一体化配置:

      version: '3.8'
      
      services:
        # Jellyfin 媒体服务器
        jellyfin:
          image: jellyfin/jellyfin:latest
          container_name: jellyfin
          restart: always
          ports:
            - "8096:8096"
          volumes:
            - ./jellyfin/config:/config
            - ./jellyfin/cache:/cache
            - /path/to/your/media:/media  # ⚠️ 修改为你的媒体文件路径
          environment:
            - TZ=Asia/Shanghai
            - PUID=1000
            - PGID=1000
          # 可选:Intel 核显硬件加速
          devices:
            - /dev/dri:/dev/dri
      
        # MetaTube 后端服务
        metatube:
          image: ghcr.io/metatube-community/metatube-server:latest
          container_name: metatube-server
          restart: always
          command: "-dsn /config/metatube.db"
          ports:
            - "8080:8080"
          volumes:
            - ./metatube/config:/config
          environment:
            - TZ=Asia/Shanghai
          depends_on:
            - jellyfin

      2.3 启动与管理服务

      2.3.1 启动服务

      # 进入项目目录
      cd ~/metatube
      
      # 拉取最新镜像并启动服务(后台运行)
      docker compose up -d
      
      # 查看服务状态
      docker compose ps
      
      # 查看实时日志
      docker compose logs -f metatube

      启动成功的标志:

      metatube-server  | time="2026-01-14T10:00:00+08:00" level=info msg="Server started on :8080"

      2.3.2 验证服务是否正常运行

      在浏览器中访问以下地址进行测试:

      http://[你的服务器IP]:8080

      或者使用 curl 命令:

      # 测试服务是否响应
      curl http://localhost:8080
      
      # 查看支持的数据源列表
      curl http://localhost:8080/v1/providers

      如果返回 JSON 格式的响应,说明后端服务已正常运行。

      2.3.3 常用管理命令

      # 停止服务
      docker compose down
      
      # 重启服务
      docker compose restart
      
      # 更新到最新版本
      docker compose pull && docker compose up -d
      
      # 查看容器资源使用情况
      docker stats metatube-server
      
      # 进入容器内部(调试用)
      docker exec -it metatube-server /bin/sh

      三、Jellyfin 插件安装与配置

      3.1 安装 MetaTube 插件

      3.1.1 添加插件仓库

      1. 登录 Jellyfin 管理后台
      2. 进入 控制台插件存储库
      3. 点击 添加 按钮
      4. 输入以下信息:
      字段
      名称MetaTube
      URLhttps://raw.githubusercontent.com/metatube-community/jellyfin-plugin-metatube/dist/manifest.json

      ⚠️ 注意:CDN 地址可能存在缓存延迟,更新可能不是最及时。

      3.1.2 安装插件

      1. 进入 控制台插件目录
      2. 在列表中找到 MetaTube
      3. 点击进入,选择版本后点击 安装
      4. 重启 Jellyfin 服务(这一步很重要!)

      3.2 配置 MetaTube 插件

      3.2.1 基础配置

      重启完成后:

      1. 进入 控制台插件MetaTube(或在已安装插件列表中点击)
      2. 配置以下关键参数:
      配置项说明示例值
      服务器地址MetaTube 后端 URLhttp://192.168.1.100:8080
      Token(可选)后端访问密钥(如果设置了的话)留空或填写密钥

      配置要点:

      • 如果 Jellyfin 和 MetaTube 部署在同一台机器上,可以使用 http://localhost:8080
      • 如果 Docker 网络隔离,建议使用实际的局域网 IP 地址
      • 如果使用 Docker 内部网络,可以使用容器名 http://metatube-server:8080

      3.2.2 高级配置选项

      MetaTube 插件还提供了丰富的高级配置选项:

      选项说明
      启用翻译自动将日文元数据翻译为中文
      翻译引擎可选 Google/DeepL 等翻译服务
      图片模式封面裁剪方式(原图/人脸居中等)
      命名模板自定义 NFO 文件命名规则

      3.3 创建媒体库

      3.3.1 媒体库配置

      1. 进入 控制台媒体库添加媒体库
      2. 按照以下设置进行配置:
      配置项设置值说明
      内容类型电影 ⚠️必须选择”电影”,不要选择其他类型
      文件夹你的媒体文件路径添加包含影片的目录
      元数据下载器勾选 MetaTube在列表中找到并勾选
      图片获取器勾选 MetaTube确保能获取封面和海报
      实时监控建议开启新增文件时自动刮削

      3.3.2 重要提示

      ⚠️ 务必取消勾选其他元数据下载器(如 TheMovieDB、OMDb 等),避免干扰 MetaTube 的刮削结果。


      四、文件命名规范与刮削技巧

      4.1 命名规则的重要性

      文件命名是影响刮削成功率的最关键因素之一。 MetaTube 通过解析文件名中的番号来匹配元数据,因此正确的命名格式至关重要。

      4.2 标准命名格式

      4.2.1 基本格式

      [番号].mp4
      [番号]/[番号].mp4  (独立文件夹模式)

      示例:

      ✅ 正确命名❌ 错误命名
      SSIS-541.mp4SSIS-541_1080P_无水印.mp4
      ABP-123.mp4【某某网站】ABP-123.mp4
      FC2-PPV-3135559.mp4FC2PPV3135559.mp4(缺少连字符)
      1pondo-050720_001.mp4一本道-050720_001.mp4(中文名)

      4.2.2 各类番号格式参考

      类型格式示例说明
      骑兵(有码)SSIS-541MIDE-999IPX-888标准格式:字母-数字
      步兵(无码)FC2-PPV-3135559HEYZO-2888注意保留所有连字符
      一本道1pondo-050720_001使用英文名,保留下划线
      加勒比carib-050720-001同上,使用英文名
      东京热Tokyo-Hot-n1234保留完整格式

      4.3 命名最佳实践

      4.3.1 应该避免的命名方式

      问题类型错误示例正确做法
      网站水印【XX论坛】SSIS-541.mp4删除所有水印前缀
      分辨率后缀SSIS-541_1080P_4K.mp4只保留番号
      多余编号SSIS-541-C.mp4SSIS-541-UC.mp4删除 -C-UC 等后缀
      中文翻译SSIS-541 中文字幕.mp4不要添加中文描述
      特殊字符SSIS-541【无码破解】.mp4避免使用中文括号等特殊字符

      4.3.2 批量重命名工具推荐

      如果你有大量需要重命名的文件,可以使用以下工具:

      工具平台特点
      Bulk Rename UtilityWindows功能强大,支持正则表达式
      Advanced RenamerWindows界面友好,支持批量处理
      Rename MasterWindows简单易用
      ThunarLinux轻量级文件管理器,内置批量重命名
      HazelmacOS自动化文件整理

      4.4 手动刮削与识别

      当自动刮削失败时,可以使用手动识别功能:

      1. 在 Jellyfin 中找到未识别的影片
      2. 右键点击 → 识别
      3. 在搜索框中输入正确的番号
      4. 从结果中选择正确的条目

      五、免费云端部署方案

      如果你没有海外服务器,可以考虑以下免费部署方案:

      5.1 Huggingface Space 部署(推荐)

      Huggingface 提供免费的 Docker 运行环境(2 CPU / 16GB 内存),非常适合部署 MetaTube 后端。

      5.1.1 部署步骤

      1. 注册账号:访问 Huggingface 官网,使用邮箱注册(需要科学上网)
      2. 创建 Space
        • 点击右上角头像 → New Space
        • 填写 Space 名称(如 my-metatube
        • 选择 DockerBlank
        • 选择 CPU Basic(免费)
        • 可见性选择 Public
        • 点击 Create Space
      3. 配置 Dockerfile

      在 Space 中创建 Dockerfile 文件,内容如下:

      FROM ghcr.io/metatube-community/metatube-server:latest
      
      # 设置端口(Huggingface 要求使用 7860)
      ENV PORT=7860
      EXPOSE 7860
      
      # 创建数据目录
      RUN mkdir -p /data && chmod 777 /data
      
      # 设置数据库路径
      ENV DSN=/data/metatube.db
      
      # 启动服务
      ENTRYPOINT ["/metatube-server", "-addr", ":7860"]
      1. 等待构建完成:通常需要 1-3 分钟
      2. 获取服务地址:格式为 https://[用户名]-[space名称].hf.space

      5.1.2 注意事项

      ⚠️ Huggingface Space 的限制:

      • 48 小时无访问会自动休眠
      • 休眠后首次访问需要等待几秒钟唤醒
      • 可以设置定时任务定期访问以保持活跃

      5.2 Koyeb 部署

      Koyeb 也提供永久免费的部署方案:

      1. 访问 MetaTube Koyeb 快速部署 页面
      2. 点击一键部署按钮
      3. 按照引导完成配置

      六、常见问题与故障排查

      6.1 插件状态不活跃

      症状:在 Jellyfin 插件列表中,MetaTube 显示为不活跃状态

      可能原因及解决方案:

      原因解决方案
      Jellyfin 与插件版本不兼容更新 Jellyfin 到最新版本后重启
      插件安装不完整卸载后重新安装插件
      重启未生效确保完全重启 Jellyfin 服务,而非仅刷新页面

      6.2 无法刮削/刮削失败

      排查步骤:

      步骤 1:验证后端服务

      # 检查容器是否运行
      docker ps | grep metatube
      
      # 查看容器日志
      docker logs metatube-server
      
      # 测试后端 API
      curl http://localhost:8080/v1/providers

      步骤 2:检查网络连通性

      在浏览器或命令行中直接访问后端地址,确认能够正常响应。

      步骤 3:检查文件命名

      确保文件名符合规范,只包含标准番号格式。

      步骤 4:检查代理配置

      如果使用代理,确认 HTTP_PROXYHTTPS_PROXY 都已正确配置。

      6.3 图片无法加载

      可能原因:

      原因解决方案
      后端网络问题检查代理配置,确保能访问日本网站
      图片 CDN 被墙在 Jellyfin 中配置反向代理或使用本地缓存
      部分地区 IP 限制更换代理节点(建议使用日本或美国 IP)

      6.4 数据库相关问题

      问题:刮削数据丢失/每次重启后需要重新刮削

      原因:未正确挂载数据库文件

      解决方案

      确保 docker-compose.yml 中正确配置了 volumes:

      volumes:
        - ./config:/config
      command: "-dsn /config/metatube.db"

      验证数据库文件是否存在:

      ls -la ./config/
      # 应该能看到 metatube.db 文件

      6.5 刮削速度慢

      优化建议:

      1. 使用 SQLite 持久化存储:已刮削的数据会被缓存,重复刮削时直接读取缓存
      2. 选择更快的代理节点:日本节点通常访问刮削源最快
      3. 减少同时刮削的数量:避免短时间内刮削大量影片,可能触发限流

      七、维护与更新

      7.1 定期更新

      推荐每月检查并更新一次,以获取最新功能和修复:

      # 进入项目目录
      cd ~/metatube
      
      # 拉取最新镜像
      docker compose pull
      
      # 重新创建容器
      docker compose up -d
      
      # 验证更新结果
      docker compose ps

      7.2 备份策略

      需要备份的内容:

      文件/目录说明
      docker-compose.yml配置文件
      ./config/metatube.dbSQLite 数据库(包含刮削缓存)

      简单备份脚本:

      #!/bin/bash
      BACKUP_DIR="/path/to/backup"
      DATE=$(date +%Y%m%d)
      
      mkdir -p $BACKUP_DIR
      cp ~/metatube/docker-compose.yml $BACKUP_DIR/docker-compose.yml.$DATE
      cp ~/metatube/config/metatube.db $BACKUP_DIR/metatube.db.$DATE
      
      echo "备份完成:$BACKUP_DIR"

      7.3 日志管理

      长期运行后,Docker 日志可能占用较多磁盘空间。可以在 docker-compose.yml 中添加日志限制:

      services:
        metatube:
          # ... 其他配置 ...
          logging:
            driver: "json-file"
            options:
              max-size: "10m"
              max-file: "3"

      八、小结

      通过本文的学习,你应该已经掌握:

      章节核心知识点
      第一章MetaTube 架构原理、服务端与插件的关系
      第二章Docker Compose 部署、代理配置、一体化部署
      第三章Jellyfin 插件安装、仓库配置、媒体库设置
      第四章文件命名规范、各类番号格式、手动识别
      第五章Huggingface/Koyeb 免费云端部署
      第六章常见问题诊断与解决方案
      第七章日常维护、更新与备份策略

      8.2 延伸学习资源

      资源链接
      📖 MetaTube 官方文档metatube-community.github.io
      💻 GitHub 仓库jellyfin-plugin-metatube
      🐳 后端 SDK 仓库metatube-sdk-go
      💬 社区讨论GitHub Discussions
      📝 部署教程参考liuhouliang.com

      8.3 进阶主题

      如果你希望进一步深入,可以探索以下方向:

      1. 反向代理配置:使用 Nginx/Caddy 为 MetaTube 添加 HTTPS 支持
      2. 多用户管理:为 Jellyfin 配置用户权限和家长控制
      3. 硬件转码:配置 Intel QSV / NVIDIA NVENC 硬件加速
      4. 自定义演员头像:使用 Gfriends Inputer 工具批量导入头像

      📌 附录:快速参考卡片

      Docker Compose 模板(可直接复制使用)

      version: '3.8'
      
      services:
        metatube:
          image: ghcr.io/metatube-community/metatube-server:latest
          container_name: metatube-server
          restart: always
          command: "-dsn /config/metatube.db"
          ports:
            - "8080:8080"
          volumes:
            - ./config:/config
          environment:
            - TZ=Asia/Shanghai
            # 如需代理,取消下面两行的注释并修改地址
            # - HTTP_PROXY=http://192.168.1.100:7890
            # - HTTPS_PROXY=http://192.168.1.100:7890

      常用命令速查

      操作命令
      启动服务docker compose up -d
      停止服务docker compose down
      查看日志docker compose logs -f
      更新镜像docker compose pull && docker compose up -d
      查看状态docker compose ps

      Jellyfin 插件仓库地址

      类型URL
      官方地址https://raw.githubusercontent.com/metatube-community/jellyfin-plugin-metatube/dist/manifest.json
      CDN 加速https://cdn.jsdelivr.net/gh/metatube-community/jellyfin-plugin-metatube@dist/manifest.json

  • 抱歉,回覆主題必需先登入。