請求類型:
錯誤
MCEBuddy 版本與類型(32 位元或 64 位元):
2.4.11,x64
作業系統與類型(32 位元或 64 位元):
Server 2016,x64
問題或建議摘要:
過去我一直使用 Regex 中繼資料修正 來讓 Plex 錄製的電視節目對應到 TVDB,並用此方式在配對前移除年份。然而,我讀到在 2.4.10 及之後的版本,行為已改變:年份會被指派到另一個欄位(Premier Date),因此查詢現在可以正常運作。
不幸的是,我並未成功。我升級到 2.4.11,但看起來它仍嘗試用 TVDB 查詢完整標題〔「Dateline NBC (1992)」而非僅「Dateline NBC」〕。我在記錄檔中並未看到「Premier Date」欄位。副標題也不對,但那是 Plex 新的爛 EPG 抓不到 S##E## 號碼的問題,我希望能用 Regex 篩選器或在 MCEBuddy 裡搞定。
我可以改升到 2.5.1,如果這樣有幫助的話。
重現錯誤的步驟:
轉換檔名為「Dateline NBC (1992) - 2019-09-13 08 00 00 - Into the Dark.ts」的檔案,並查看記錄檔。配對似乎失敗。
截圖:
我會附上記錄檔。
Dateline NBC (1992) - 2019-09-13 08 00 00 - Into the Dark.ts-Convert to MP4-2019-09-28T15-48-57.1925948-04-00.log (66.0 KB)
更新: 看起來檔案名稱的格式導致 MCEBuddy 無法完成兩件事:
- 準確判斷單集標題(原始播出時間被附加到副標題前,而原始播出日期卻能正確擷取/配對)
- 從標題中移除年份並用作首映日期
我剛剛升級到 2.5.1,結果依舊。
我附上另一個檔案成功轉換的紀錄。這個檔案之所以成功,是因為檔名裡沒有時間戳記,而是使用 S##E## 的命名方式。不幸的是,隨著 Plex 的新 EPG 供應商上線,這類問題變得非常頻繁,而且未來還會持續發生,因為新供應商並非總是提供 S##E## 的命名結構。我認為 MCEBuddy 仍然可以處理,因為單集標題是正確的,只是資料沒有進到對應的欄位,所以失敗了。
48 Hours (1988) - S32E02 - The Case Against Brooke Skylar Richardson.ts-Convert to MP4-2019-09-30T10-51-07.0566363-04-00.log (2.1 MB)
更新2: 我已确定 MCEBuddy 可以处理的格式,但它需要正则表达式,而要么正则表达式解析器工作不正常,要么它只在标题经过初步处理后才进行匹配,无法访问整个文件名(更可能是后者)。
如果我使用 regex:^(.*) \(\d{4}\).*(\d{4}-\d{2}-\d{2}) \d{2} \d{2} \d{2} - (.*)$ 作为原始标题,并用 regex:$1 - $2 - $3 作为修正后的标题,我期望看到 MCEBuddy 将文件名处理为 Dateline NBC - 2019-09-13 - Into the Dark,但它没有匹配成功。
MCEBuddy 内置的解析器是否允许我以此方式进行转换?还是我需要像 PowerShell 这样的程序来监控目录中的新文件,并在 MCEBuddy 处理之前先转换文件名?MCEBuddy 是否需要更新?还是我没有正确使用它?从当前状态到目标状态,最佳的做法是什么?
Goose
(Goose)
4
我們需要為這個新的命名格式添加支援。你能附上正則表達式無效時的日誌嗎?那應該可以。
Goose
(Goose)
6
我檢查了你的日誌,你的正則表達式並未與標題匹配。檔名 Dateline NBC (1992) - 2019-09-13 08 00 00 - Into the Dark 被 MCEBuddy 解析為:
2019-09-28T15:49:21 MCEBuddy.MetaData.VideoMetaData → 從檔案/名稱中繼資料提取的影片標籤 →
標題:Dateline NBC (1992)
副標題:08 00 00 - Into the Dark
因此你試圖將 ^(.*) \((\d{4})\).*(\\d{4}-\\d{2}-\\d{2}) \\d{2} \\d{2} \\d{2} - (.*)$ 應用於標題 Dateline NBC (1992),但並不匹配,所以被忽略。
話雖如此,MCEBuddy 目前尚不支援轉換功能,這是我們可以考慮新增的。目前僅支援將正則表達式與標題進行比對並以靜態字串替換,但正如我上面提到的,你的正則表達式並未與標題匹配。
Goose
(Goose)
7
稍作更正,MCEBuddy 确实支持正则表达式转换,但由于一个 bug,它不会在“修正后的标题”开头移除 regex:,只需在转换文本中去掉 regex: 即可正常工作。我们会在下个版本中修复。
因此,在你的例子中,要匹配标题 Dateline NBC (1992),应如下填写:
原始标题:regex:(.*) \((\d{4})\)
修正后标题:$1 - $2
这将生成 Dateline NBC - 1992
明白了,谢谢!我会调整一下。
我的问题是,08 00 00 - Into the Dark 中的副标题其实并不是真正的副标题。正确的副标题应该只是 Into the Dark。看起来 MCEBuddy 把播出时间解析出来并加到了副标题前面,导致元数据查找失败。
以前这不是问题,因为 Plex EPG 数据还不错,总是用 S##E## 而不是时间戳(MCEBuddy 也能正确识别),但现在文件开始带时间戳了,MCEBuddy 似乎就处理不了了。有什么办法可以修复这个问题吗?还是我得在 MCEBuddy 处理之前先重命名文件?
Goose
(Goose)
9
我們正在新增對讀取該新格式的支援。你上面的範例展示了新 Plex 格式中影集的命名方式
節目名稱(首播年份)- 錄製日期時間 - 副標題
你有電影、體育或新聞的命名範例嗎?
我们正在添加对这种新格式的读取支持。
啊,好的。太棒了!期待中!我目前用 PowerShell 重命名脚本让它匹配,但原生支持 MCEBuddy 肯定是首选。
你有电影、体育或新闻命名的示例吗?
说实话,我几乎不用 MCEBuddy 做这些,所以没法告诉你,不过如果你需要看看 Plex 会怎么处理,我很乐意为你录一些测试样本。
抱歉耽搁了一下。其实这段时间一直没有OTA体育节目。周四夜赛的样子如下:
NFL Football (2019) - 2019-10-03 08 00 00 - Los Angeles Rams at Seattle Seahawks.ts
本地新闻的样子如下:
13abc Action News at 5 00PM - 2019-10-01 17 00 00 - 13abc Action News at 5 00PM.ts
还需要什么请告诉我。
Goose
(Goose)
16
已添加对这种新的 plex 命名格式的支持,并将于今晚的测试版中提供。
支持的格式详情可在此处查看:Metadata matching, extraction, renaming from files and downloading from the Internet
不过目前无法区分体育节目和连续剧,因为它们的命名模式完全相同。你可以尝试在转换任务中使用“强制节目类型”选项,并配合自定义文件名过滤器来处理体育节目。