Skip to content

[Feature] 媒体库:支持 ISO 扫描、单路径多 VFS、多季剧集聚合为同一部剧 #3297

Closed

Description

@mmls2007

确认事项

  • 我已阅读并同意 AGPL-3.0 第 15 条(免责声明)
  • 我已阅读并同意 AGPL-3.0 第 16 条(责任限制)
  • 我确认描述清晰、语气礼貌,符合社区规则
  • 我已阅读 OpenList 文档
  • 我确认没有重复的 issue 或讨论
  • 我确认这是 OpenList 需要处理的功能,而非网络/依赖/第三方问题
  • 我确认该功能尚未实现
  • 我确认该功能有普遍需求,并非我个人需要

需求描述

媒体库(v4.2.9)目前有三个能力缺口,分别涉及文件识别、扫描路径配置、以及剧集数据模型。

1. 支持 ISO 格式的影视文件扫描

视频扩展名白名单位于 internal/media/scanner.go 的 videoExts:

.mp4 / .mkv / .avi / .mov / .wmv / .flv / .webm / .m4v / .ts / .rmvb / .rm / .3gp

不含 .iso。蓝光原盘、DVD 镜像通常以单个 .iso 保存,放在扫描路径下不会被收录,也不会参与 TMDB 刮削,Emby 中不可见。

期望:videoExts 增加 .iso,扫描后作为一部影片入库并参与刮削。第一版可先按单文件影片处理,ISO 内多集解析与播放兼容性可后续迭代并在文档注明。

2. 单个扫描路径支持多个 VFS

MediaScanPath.Path 目前是单个字符串,一条扫描路径只能绑定一个 VFS 目录。同类媒体分散在多个网盘时:

  • /移动云盘R/video/电影
  • /天翼云盘R/video/电影
  • /百度网盘R/video/电影

只能建三条扫描路径,且「类型标签、是否刮削、缩略图、STRM」等配置要重复维护三份。

期望:扫描路径支持配置多个 VFS 目录(路径列表),一次扫描覆盖多个存储,条目仍归属同一条扫描路径与同一媒体类型。前端表单支持多行输入或多选,旧配置兼容。

3. 多季剧集目录应聚合为同一部剧集的多个季

现状(包括 PR #3263 合并后的行为):扫描路径为 /百度网盘/video/电视剧 时,结构

/百度网盘/video/电视剧/基地 Foundation/基地 Foundation 第一季/…
/百度网盘/video/电视剧/基地 Foundation/基地 Foundation 第二季/…
/百度网盘/video/电视剧/基地 Foundation/基地 Foundation 第三季/…

会变成三条互不相关的媒体条目。原因有三层:

  • MediaItem 只有单个 Season / Episode 整数字段;
  • Episodes 是 [{file_name,index,title}] 数组,没有季的维度;
  • 扫描器没有季目录解析逻辑。

结果是同一部剧被拆成多条,TMDB 元数据与海报会重复刮削,Emby 里也会显示成多个独立条目,而不是同一部剧的多季。

期望:识别「剧名/第 N 季」这一层级,把同一剧名下多个季目录聚合为一个剧集条目;条目内按季组织选集(例如 Episodes 增加 season 字段,或新增 seasons 结构);Emby 协议侧映射为 Series → Season → Episode。PR #3263 解决的是“逐层扫描”,不解决“多季聚合”,两者可以分开实现。

实现思路

  1. ISO:videoExts 增加 .iso,走现有文件入库路径。
  2. 多 VFS:MediaScanPath 增加 paths []string(保留 path 兼容迁移),扫描时对每个根目录执行现有扫描主体,scan_path_id 不变。
  3. 多季:扫描合并模式时,把「父目录(剧名)」识别为条目,季目录解析出季号(第一季/第二季/Season 1/S01 等),其下媒体文件作为该季选集;数据结构上给 EpisodeInfo 增加 season,或新增 Seasons JSON 字段;刮削按剧集条目做一次,避免重复。

附加信息

AI生成内容

  • 我使用了AI工具生成此内容
  • 我没有使用AI工具生成此内容

AI模型是

DeepSeek Harness / deepseek-flash

Activity

  1. PIKACHUIM commented on Oct 27, 2026

    @PIKACHUIM
    Member

    1会支持,3是bug还没修,2设计如此(如果希望聚合多目录,则应使用聚合挂载)

  2. mmls2007 commented on Oct 27, 2026

    @mmls2007
    Author

    已了解,多谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions