Decentralization? We're still early!

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

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

    發布人 Brave 2026-01-14 02:04

    🎯 学习目标:掌握 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

    Brave 回复 2 weeks, 4 days ago 1 成員 · 0 回复
  • 0 回复

歡迎留言回复交流。

Log in to reply.

讨论開始
00 回复 2018 年 6 月
現在