詳解:ID 對(duì)不上時(shí),文件路徑如何救場(chǎng))
【免費(fèi)下載鏈接】CrossWatchSynchronize your data across media servers, media agents and trackers. Keep your movies and shows in sync, no matter where you watch.項(xiàng)目地址https://gitcode.com/gh_mirrors/cr/CrossWatch點(diǎn)擊查看免費(fèi)下載當(dāng)你的媒體同時(shí)存在于 Plex、Jellyfin、Emby 等多臺(tái)服務(wù)器時(shí)CrossWatch 路徑匹配Path Matching提供了 ID 之外的第二重保險(xiǎn)只要兩邊文件路徑的尾部結(jié)構(gòu)一致CrossWatch 就能把它們識(shí)別為同一部影片或同一集劇集從而讓觀影歷史、評(píng)分和播放進(jìn)度照常同步。本文面向新手完整講解這項(xiàng)功能何時(shí)該開(kāi)、如何匹配、以及哪些情況會(huì)匹配失敗。為什么 ID 匹配不夠用不同媒體服務(wù)器會(huì)為同一部電影分配各自不同的內(nèi)部 ID即使使用外部 IDIMDb、TMDB 等也常常出現(xiàn)一邊有、一邊缺的情況。CrossWatch 的常規(guī)流程是優(yōu)先用 ID 匹配Strict ID matching 開(kāi)啟時(shí)只會(huì)用 IDID 無(wú)法解析時(shí)才輪到本文的主角——按文件路徑兜底匹配。典型場(chǎng)景你把Alien (1979)從 Linux NAS 遷移到 Windows 媒體服務(wù)器兩邊路徑完全不同盤符和分隔符但只要尾部目錄結(jié)構(gòu)一致就能對(duì)上/mnt/media/movies/Alien (1979)/Alien.mkv D:\Movies\Alien (1979)\Alien.mkv官方說(shuō)明文檔見(jiàn) docs/path-matching.md。如何開(kāi)啟“Match by file path”該選項(xiàng)位于配對(duì)Pair配置中默認(rèn)關(guān)閉打開(kāi)對(duì)應(yīng) pair →General → Matching→ 勾選Match by file path開(kāi)啟前請(qǐng)先確認(rèn)你的組合是否受支持支持情況說(shuō)明? 支持Plex、Jellyfin、Emby 兩兩配對(duì)含同一服務(wù)器的不同實(shí)例? 不支持Kodi 目前暫不支持此選項(xiàng)勾選后該選項(xiàng)對(duì)雙向 pair 的兩個(gè)方向同時(shí)生效且與 Strict ID matching 可以疊加——它會(huì)允許路徑兜底但不會(huì)開(kāi)啟按標(biāo)題搜索匹配邏輯依然是保守的。UI 開(kāi)關(guān)實(shí)現(xiàn)位于 assets/js/modals/pair-config/index.js。路徑匹配到底怎么“對(duì)”核心邏輯在 cw_platform/path_matching.py 中規(guī)則可以概括為電影比較路徑的最后 2 段影片文件夾 文件名劇集比較最后 3 段 季數(shù) 集數(shù)文件夾/劇集文件夾/文件名 SxxExx分隔符\與/和大小寫(xiě)會(huì)先做歸一化所以 Linux 和 Windows 路徑可以互認(rèn)帶顯式分集編號(hào)的多部分電影Part 1 / Part 2會(huì)被區(qū)分開(kāi)不會(huì)互相混淆整個(gè)過(guò)程不讀取文件內(nèi)容純粹做字符串索引比對(duì)匹配成功的日志會(huì)記錄為path_matchreason 文案為 “Matched by file path”并附帶resolution_methodfile_path方便你在事件日志中確認(rèn)它確實(shí)走了路徑兜底。標(biāo)簽定義見(jiàn) cw_platform/reason_labels.py同步側(cè)對(duì)接邏輯見(jiàn) providers/sync/_path_matching.py。支持什么、不支持什么數(shù)據(jù)類別是否支持 電影 / 劇集觀看歷史?? 評(píng)分? 播放進(jìn)度Playback Progress? 追劇列表Watchlist、播放列表、收藏集? Trakt、SIMKL 等 Tracker 服務(wù)?也就是說(shuō)路徑匹配是媒體服務(wù)器之間的兜底手段不會(huì)延伸到 Tracker 或列表類數(shù)據(jù)上。追劇列表頁(yè)面例如哪些情況會(huì)匹配失敗CrossWatch 要求恰好命中一個(gè)目標(biāo)條目否則寧缺毋濫實(shí)現(xiàn)見(jiàn) cw_platform/path_matching.py 的PathIndex.resolve日志 reason含義path_not_found目標(biāo)庫(kù)里沒(méi)有路徑尾部一致的條目path_ambiguous命中了多個(gè)條目路徑重復(fù)為避免同步錯(cuò)數(shù)據(jù)而跳過(guò)path_id_conflict路徑雖然一致但外部 ID 互相沖突同樣跳過(guò)另外還有三種“天然對(duì)不上”的情況兩邊文件名不同比如一個(gè)叫Alien.mkv另一個(gè)叫Alien.1979.1080p.mkv尾部文件夾結(jié)構(gòu)不同多套了一層目錄或改名劇集季集編號(hào)不同一邊 S01E01另一邊用別的編號(hào)體系這些被跳過(guò)的條目都會(huì)寫(xiě)入日志便于你針對(duì)性地手動(dòng)修正命名。性能影響與目錄緩存需要開(kāi)啟前知道的一點(diǎn)路徑兜底可能需要完整讀取目標(biāo)庫(kù)的元數(shù)據(jù)目錄包括未觀看的條目大庫(kù)首次同步會(huì)明顯變慢。為此 CrossWatch 把目錄緩存在本地 SQLite 中并在同一服務(wù)器、同一憑據(jù)、同一選庫(kù)范圍的 pair 和特性之間復(fù)用避免反復(fù)全量拉取目錄超過(guò)24 小時(shí)或檢測(cè)到服務(wù)器端內(nèi)容變更信號(hào) → 整體刷新服務(wù)器無(wú)法提供可信的變更信號(hào)時(shí) → 緩存有效期縮短為5 分鐘單個(gè)適配器內(nèi)的檢查結(jié)果最多緩存90 秒7 天未被使用的目錄會(huì)被自動(dòng)清理緩存策略的測(cè)試覆蓋見(jiàn) tests/test_path_catalog_cache.py匹配規(guī)則本身的單測(cè)見(jiàn) tests/test_path_matching.py。另外在Maintenance → Retry provider items中還可以主動(dòng)清空已保存的路徑目錄緩存并重建。小結(jié) 一句話總結(jié)ID 優(yōu)先、路徑兜底、嚴(yán)格到寧可跳過(guò)。如果你的 pair 是 Plex/Jellyfin/Emby 組合、且兩邊目錄命名習(xí)慣一致那么打開(kāi) General → Matching 下的Match by file path就能在 ID 缺失時(shí)自動(dòng)救回大量本會(huì)丟失的歷史、評(píng)分和進(jìn)度同步。記得開(kāi)啟后觀察一次事件日志確認(rèn)path_match按預(yù)期出現(xiàn)即可。贊分享【免費(fèi)下載鏈接】CrossWatchSynchronize your data across media servers, media agents and trackers. Keep your movies and shows in sync, no matter where you watch.項(xiàng)目地址https://gitcode.com/gh_mirrors/cr/CrossWatch點(diǎn)擊查看免費(fèi)下載相關(guān)推薦如何快速掌握 path-to-regexp多段路徑參數(shù)匹配終極指南如何快速掌握 path to regexp多段路徑參數(shù)匹配終極指南 path to regexp 是一個(gè)功能強(qiáng)大的 JavaScript 庫(kù)能夠?qū)⒙窂阶址蠖薡TSage 下載指南從粘貼鏈接到批量保存3 步搞定 YouTube 視頻下載YTSage 下載指南從粘貼鏈接到批量保存3 步搞定 YouTube 視頻下載 想保存一個(gè) YouTube 視頻卻被滿屏的命令行參數(shù)勸退其實(shí)下載工具不一桌面應(yīng)用音視頻DeerFlow 文件上傳路徑系統(tǒng)path、virtual_path 與 artifact_url 三類路徑全解析DeerFlow 文件上傳路徑系統(tǒng)path、virtual_path 與 artifact_url 三類路徑全解析 DeerFlow 的文件上傳系統(tǒng)會(huì)為每個(gè)上人工智能大模型AI AgentAgent 框架多智能體Agent 沙箱Agent 記憶MCP 服務(wù)后端前端上一篇如何用Nuklear打造高性能跨平臺(tái)GUI單文件ANSI C庫(kù)的終極指南下一篇BentoML Codespaces在云端 GPU 上用本地 IDE 開(kāi)發(fā) AI 應(yīng)用附 bentoml code 全流程解析創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考