Skip to content

spr-equinox/nfo_scraper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nfo Scraper

一款免改名的半自动媒体刮削器

自动生成 strm 链接文件,做种刮削互不影响

注意:本软件仍然处于非常前期的测试阶段,建议先使用硬链接副本进行测试

特点

  • 没有严格的文件名/文件夹名的限制
  • 允许电影和剧集混合,统一生成剧集格式的元数据(仅 nfo 模式)
  • 使用可自定义的正则表达式进行标题提取
  • 可自定义需要忽略的路径,并生成 .ignore 文件(仅 nfo 模式)

使用方法

此为 nfo 模式的使用方法,建议使用 strm 模式

  1. 建议将媒体库按照如下格式排列(便于其他软件识别) 大体上就是套两层文件夹(剧集-季度-视频文件),以下 .nfo.ignore 由软件生成
媒体库
├─某个系列
│  │  tvshow.nfo
│  ├─[某个制作组] Mou Ge Fan Ju [Ma10p_1080p]
│  │  │  season.nfo
│  │  │  [某个制作组] Mou Ge Fan Ju [01][Ma10p_1080p][x265_flac_aac].mkv
│  │  │  [某个制作组] Mou Ge Fan Ju [01][Ma10p_1080p][x265_flac_aac].nfo
│  │  │  [某个制作组] Mou Ge Fan Ju [01][Ma10p_1080p][x265_flac_aac].sc.ass
│  │  │  [某个制作组] Mou Ge Fan Ju [02][Ma10p_1080p][x265_flac].mkv
│  │  │  [某个制作组] Mou Ge Fan Ju [02][Ma10p_1080p][x265_flac].nfo
│  │  │  [某个制作组] Mou Ge Fan Ju [02][Ma10p_1080p][x265_flac].sc.ass
│  │  ├─CDs
│  │  │  │  .ignore
│  │  │  └─[771332] 某个CD [24bit_48kHz] (flac)
│  │  │          01. 某首歌.flac
│  │  └─SPs
│  │        .ignore
│  │        [某个制作组] Mou Ge Fan Ju [CM01][Ma10p_1080p][x265_flac].mkv
│  │        [某个制作组] Mou Ge Fan Ju [CM02][Ma10p_1080p][x265_flac].mkv
│  ├─[某个制作组][Mou Ge Fan Ju Movie][Ma10p_2160p][v2]
│  │  │  season.nfo
│  │  │  [某个制作组][Mou Ge Fan Ju Movie][Ma10p_1080p][x265_flac].chs.ass
│  │  │  [某个制作组][Mou Ge Fan Ju Movie][Ma10p_1080p][x265_flac].mkv
│  │  └─某个无关文件夹
│  │        .ignore
│  │        某些无关文件.png
│  └─Mou Ge Fan Ju S2
│         season.nfo
│         Mou Ge Fan Ju S2.mkv
│         Mou Ge Fan Ju S2.nfo
│         Mou Ge Fan Ju S2.sc.ass
└─某部电影
        A Movie-[1080p][BDRIP][x265.FLAC].chs_jpn.ass
        A Movie-[1080p][BDRIP][x265.FLAC].mkv
        A Movie-[1080p][BDRIP][x265.FLAC].nfo
        season.nfo
  1. 打开软件目录下的 config.json (没有的在仓库下),填好 tmdb_api_key,有需要的可以自定义其他内容
  2. 打开软件,把媒体文件夹拖入窗口,注意不要有重复文件夹
  3. 选择“下一步”,检测搜索到的文件夹是否正确。在这步可以为需要忽略的文件夹创建 .ignore 文件,全选( Ctrl + A)列表“被忽略的路径”,选择“创建 .ignore 文件”
  4. 选择“下一步”,本窗口用于创建剧集元数据。全选,再选择“搜索所选项”。软件会按照“搜索名称”向服务器搜索,如果有错误,可以双击“搜索名称”进行更改,再选择“搜索所选项”再次搜索;也可以双击错误的条目,或者选中错误的条目,选择“手动搜索所选项”,手动指定搜索结果;除此之外,还可以手动输入 ID 和类别,再选择“更新所选项”,手动指定条目
  5. 全选,选择写入所选项,这一步会创建 tvshow.nfo
  6. 选择“下一步”,本窗口用于创建季度元数据,季度的 ID 将会从父文件夹处继承。继承的 ID 需要手动更新季度数据,即全选并选择“更新所选项”。手动为每一个剧集指定季度。如果 ID 有误,可以用和上一步一样的方法修正
  7. 全选,选择写入所选项,这一步会创建 season.nfo
  8. 选择“下一步”,本窗口用于创建单集元数据。软件会先自动获取每一季度的单集信息,尝试与本地的视频进行一一对应,如果数量一致,状态会被标记为“√”,否则就是“×”。此时需要我们手动调整,双击待处理的项目,将本地视频从列表中移除、添加或者把获取到的数据移除、添加,让两边的数量和顺序对应。本地视频数量与元数据数量不匹配的话将无法写入此季度
  9. 全选,选择写入所选项,这一步会创建 <文件名>.nfo
  10. 选择“下一步”,本窗口用于为季度文件夹中无关的子文件夹创建 .ignore 文件。全选列表,选择“创建 .ignore 文件”即可完成操作
  11. 选择“完成”结束刮削

STRM 文件模式(推荐)

strm 文件是一个文本文件,里面写着媒体文件的路径 (官方文档)。媒体服务器可以通过这个文件链接到资源,而根据 strm 文件名和目录结构进行刮削,不会影响到仓库

效果:

目标文件夹
├─剧集
│  ├─86-不存在的战区- (2021) [tmdbid-100565]
│  │  └─Season 01
│  │          86-不存在的战区- S01E01.strm
│  │          86-不存在的战区- S01E01.chs.srt
│  │          ………
│  │          86-不存在的战区- S01E23.strm
│  │          86-不存在的战区- S01E23.cht.ass
│  │          
│  ├─中二病也要谈恋爱! (2012) [tmdbid-45501]
│  │  ├─Season 00
│  │  │      中二病也要谈恋爱! S00E35.strm
│  │  │      中二病也要谈恋爱! S00E35.sup
│  │  │      
│  │  ├─Season 01
│  │  │      中二病也要谈恋爱! S01E01.strm
│  │  │      ………
│  │  │      中二病也要谈恋爱! S01E12.strm
│  │  │      
│  │  └─Season 02
│  │          中二病也要谈恋爱! S02E01.strm
│  │          ………
│  │          中二病也要谈恋爱! S02E12.strm
│  │          
│  └─冰菓 (2012) [tmdbid-65329]
│     ├─Season 00
│     │      冰菓 S00E01.strm
│     │      冰菓 S00E01.chs.ass
│     │      
│     └─Season 01
│             冰菓 S01E01.strm
│             ………
│             冰菓 S01E22.strm
│              
└─电影
    ├─中二病也要谈恋爱!剧场版 -Take On Me- (2018) [tmdbid-460399]
    │      中二病也要谈恋爱!剧场版 -Take On Me-.strm
    │      
    ├─中二病也要谈恋爱!剧场版 小鸟游六花?改 (2013) [tmdbid-214553]
    │      中二病也要谈恋爱!剧场版 小鸟游六花・改.strm
    │      
    └─你的名字。 (2016) [tmdbid-372058]
            你的名字。.strm

请先阅读 nfo 文件模式的使用方法

具体操作方式和 nfo 文件模式区别不大。写入文件会被替换成生成文件夹或者创建 strm 文件。方便一点的是在 strm 文件模式下,不会因为上一步没有创建文件夹而无法继续进行,只要最后一步的视频文件对应上而且选择写入了,没有创建的文件夹会自动创建

strm 模式可以开启增量更新,已经有 strm 文件的媒体会被忽略

注意:如果同个视频文件存在多个版本,只会保留最早创建的 strm 文件

创建完 strm 文件之后可以用 link_files.exe 扫描媒体库,然后软件会把前缀匹配的特定拓展名(.ass.srt.sup.mks.mka)的文件硬链接或(若硬链接不可用)软链接创建对应的文件

link_files.exe 可用于清理源文件失效的链接文件,硬链接/符号链接字幕和音轨文件,清理空的文件夹,清理旧的字幕/音轨文件(本意是清理硬链接/符号链接,但不会检测,请注意备份)

配置文件说明

{
	// 视频后缀名列表,用于识别视频文件,区分大小写
	"media_extension": [
		".mkv",
		".mp4",
		".m2ts"
	],
	// 用来提取“搜索名称”的正则表达式,数字代表提取第n个子匹配(从1开始)
	"title_regex_expression": [
		["^([\\[\\(].*?[\\]\\)]\\[* *)*([^#\\[\\]\\.\\(\\)]*)+.*$", 2]
	],
	// 忽略的路径的正则表达式
	"ignore_directory_expression": [
		"BDMV"
	],
	// 忽略的文件的正则表达式
	"ignore_file_expression": [
		"NCOP", "NCED"
	],
	// tmdb api 密钥,必填,否则无法使用
	// 申请链接 https://developer.themoviedb.org/docs/getting-started
	"tmdb_api_key": "",
	// 有需要的可以开启代理
	"using_proxy": true,
	"proxy_address": "http://127.0.0.1:7890",
	// 有两种模式:strm 和 nfo
	"save_type": "strm",
	// 如果是 strm 模式需要填写目标路径
	"save_path": "R:/媒体库",
	// 如果是 strm 模式可以开启增量更新,已经有 strm 文件的媒体会被忽略
	"incremental_update": true
}

技术细节

软件将会用深度优先搜索(一个文件夹翻到底再返回)搜索媒体库,如果当前文件夹有匹配后缀名的文件,就把该文件夹记录为季度文件夹,其父文件夹记录为剧集文件夹 注意:直接裸露在媒体库文件夹下的视频文件不会被识别

导入 Jellyfin 方法(nfo 文件模式)

选择“混合电影和电视剧”,然后把所有刮削器包括图片刮削器都关掉
导入媒体库并且扫描结束之后再选择“刷新媒体库”
刷新模式选覆盖所有元数据、替换现有图片

About

一个免改名的半自动媒体刮削器

Topics

Resources

License

Stars

Watchers

Forks

Languages