收起左侧

Media Marshal测试版发布!一款自动媒体库整理工具

0
回复
18
查看
[ 复制链接 ]

0

主题

0

回帖

0

牛值

江湖小虾

项目介绍

您是否在为囤积的视频资源命名乱七八糟而苦恼?您是否在为手动整理媒体库而头疼?您是否在为媒体资源重命名影响做种而焦虑?

不妨试试Media Marshal吧。

Media Marshal可以帮您:

  • 实时监测您的媒体库,自动帮您整理媒体库,从此告别手动重命名。
  • 支持自定义整理规则,简单易用,满足您的个性需求。
  • 支持移动、复制、硬链接等多种文件操作方式,更新媒体库的同时让您的做种任务不中断。
  • 支持TMDB信息查询,让您时刻获取权威信息。

功能预览

按您的要求将媒体资源分门别类,自动整理

image.png

支持人工搜索、人工确认

image.png

快速开始

准备工作

  • TMDB API Key,申请地址TMDB

开始安装

注:本教程以飞牛OS为例,路径规划可自由调整,以下规划方式仅做参考。

1. 创建路径

进入飞牛OS,在团队文件下创建 Resources作为根路径使用

在Resources下分别创建 DownloadEmbyMediaMarshal

Download作为下载根路径,保存原始视频资源;Emby作为目标根路径,接收整理后的视频资源;MediaMarshal作为项目根路径,保存运行数据。

image.png

2. 安装Media Marshal

MediaMarshal中上传docker配置文件,可以先保存在本地,通过飞牛页面上传至NAS。

.env环境配置文件,根据需要可修改MEDIA_DIRS

# Media Marshal 环境变量配置模板
# Media Marshal environment variable template

# ── 调试 / Debug ─────────────────────────────────────────────
# 开启后打印详细中间过程日志,生产环境保持 false
# Print detailed intermediate logs when enabled. Keep false in production.
MEDIA_MARSHAL_DEBUG=false

# ── 文件监控 / File watching ─────────────────────────────────
# 宿主机媒体目录。生产和 beta 挂载到容器 /media,alpha 挂载到容器 /Resources
# Host media directory. Production and beta mount it to /media; alpha mounts it to /Resources.
MEDIA_DIRS=/vol1/@team/Resources

# ── 端口与镜像标签(可选)/ Ports and image tag (optional) ─────
# Web UI host port.
MEDIA_MARSHAL_PORTAL_PORT=3000
# Backend API host port.
MEDIA_MARSHAL_HTTP_PORT=8080
# Image tag used by compose files that support tag selection.
MEDIA_MARSHAL_IMAGE_TAG=latest

# ── 匹配配置 / Matching ──────────────────────────────────────
# 匹配置信度阈值(0.0-1.0),低于此值进入待确认队列
# Match confidence threshold (0.0-1.0). Results below this value enter the review queue.
MEDIA_MARSHAL_CONFIDENCE_THRESHOLD=0.8

docker-compose.ymlDocker配置文件

services:

  # Java backend service
  media-marshal:
    image: ghcr.io/media-marshal/media-marshal:${MEDIA_MARSHAL_IMAGE_TAG:-latest}
    container_name: media-marshal
    restart: unless-stopped
    ports:
      - "${MEDIA_MARSHAL_HTTP_PORT:-8080}:8080"
    volumes:
      - mm_data:/data
      - ${MEDIA_DIRS:-/media}:/media
    environment:
      - MEDIA_MARSHAL_PARSER_URL=http://parser:8000
      - MEDIA_MARSHAL_CONFIDENCE_THRESHOLD=${MEDIA_MARSHAL_CONFIDENCE_THRESHOLD:-0.8}
      - MEDIA_MARSHAL_DEBUG=${MEDIA_MARSHAL_DEBUG:-false}
      - MEDIA_MARSHAL_EMAIL_ENABLED=${MEDIA_MARSHAL_EMAIL_ENABLED:-false}
      - MEDIA_MARSHAL_EMAIL_RECIPIENT=${MEDIA_MARSHAL_EMAIL_RECIPIENT:-}
      - MEDIA_MARSHAL_MAIL_HOST=${MEDIA_MARSHAL_MAIL_HOST:-}
      - MEDIA_MARSHAL_MAIL_PORT=${MEDIA_MARSHAL_MAIL_PORT:-587}
      - MEDIA_MARSHAL_MAIL_USERNAME=${MEDIA_MARSHAL_MAIL_USERNAME:-}
      - MEDIA_MARSHAL_MAIL_PASSWORD=${MEDIA_MARSHAL_MAIL_PASSWORD:-}
    depends_on:
      parser:
        condition: service_healthy
    networks:
      - mm_net

  # Portal frontend served by Nginx
  portal:
    image: ghcr.io/media-marshal/media-marshal-portal:${MEDIA_MARSHAL_IMAGE_TAG:-latest}
    container_name: media-marshal-portal
    restart: unless-stopped
    ports:
      - "${MEDIA_MARSHAL_PORTAL_PORT:-3000}:80"
    depends_on:
      - media-marshal
    networks:
      - mm_net

  # guessit Python sidecar, available only inside the compose network
  parser:
    image: ghcr.io/media-marshal/media-marshal-parser:${MEDIA_MARSHAL_IMAGE_TAG:-latest}
    container_name: media-marshal-parser
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health', timeout=3).read()"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 10s
    networks:
      - mm_net

volumes:
  mm_data:

networks:
  mm_net:
    driver: bridge

image.png

进入Docker应用,新建Compose,选择 MediaMarshal创建项目,创建完成后构建项目。

image.png

安装完成后,点击Portal快速访问,进入Media Marshal页面。

image.png

3. 配置Media Marshal

首次访问系统需要配置TMDB API Key,保存后进入系统

image.png

进入路径设置页面后点击新增规则,创建自动整理规则,创建后点击启动即可解放双手。

image.png

image.png

开始使用

Resources/Download中上传视频文件进行测试,可以看到Media Marshal已经对视频进行了解析。并且将置信度不足阈值的项目放进人工确认队列。

image.png

最佳实践

关于渲染规则

Media Marshal支持灵活配置解析规则,除系统自带的路径模板外可根据您的需求配置个性化路径,具体使用规则可参考项目内置说明。

image.png

作者推荐路径规则:

# 电影路径
电影/{title_initial}/{title} ({year})/{title} ({year})[[ - {resolution}]]{ext}

# 剧集路径
剧集/{title_initial}/{title} ({year})/{season:02d;prefix=S}/{title} ({year}) - {season:02d;prefix=S}{episode:02d;prefix=E}[[ - {resolution}]]{ext}

关于文件操作方式

本项目支持4中文件操作方式,推荐优先考虑硬链接:

  1. 移动:不需要保留源视频文件时使用,直接将源文件移动到目标路径下。
  2. 硬链接:需要保留源视频文件时使用,可在目标路径下创建硬链接,操作目标路径下文件不影响源文件,并且不会占用额外的存储空间,需要源路径和目标路径在同一个存储器上。
  3. 复制:需要保留源视频文件且无法使用硬链接时选择,效率低下,并且占用双倍存储。
  4. 软链接:特殊情况使用。

关于项目

GitHub地址:https://github.com/media-marshal/media-marshal

访问GitHub主页获取更多信息。

后记

在使用Media Marshal时,建议先创建空白媒体库,功能验证通过后再用于正式媒体库,以防发生意料之外的效果。

Media Marshal仍处于测试版本,感谢您的使用,欢迎留下您的意见和建议。

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则