115 網盤與同步 - MiCat-S/Mi302 GitHub Wiki
這一頁說明怎麼登入 115 網盤、把 115 的資料夾同步成本機的 .strm 檔,以及增量同步、全量同步、「跟著刪」和熔斷各自怎麼運作,還有怎麼瀏覽 115 上的資料夾、把不對的資料夾交給 MoviePilot 整理、轉存別人的 115 分享、從阿里雲盤秒傳,以及清空 115 回收站。
管理網頁的「115 網盤」分頁上方有「帳號」「同步」「離線下載」「轉存分享」「阿里雲盤秒傳」「整理 115 網盤」「回收站」七個按鈕,點哪個就只顯示那一組卡片,下次打開回到上次看的那個。「同步」裡是「同步任務」「同步」「同步選項」三張卡片。「瀏覽 115」在側欄另外一頁。
登入 115
Mi302 自己就能登入 115,不需要 MoviePilot 或其他 115 工具。登入狀態存在資料庫(data/library.db),不寫進設定檔。
掃碼登入
- 打開管理網頁的「115 網盤」分頁。
- 在「帳號」卡片按「掃碼登入」。
- 用手機 115 App 掃描畫面上的二維碼,在手機上確認。
二維碼旁邊會依序顯示「等待掃描…」「已掃描,請在手機上確認」,成功後跳出「115 登入成功」。二維碼過期時再按一次「掃碼登入」。已經登入時,按鈕會變成「重新掃碼登入」。
掃碼登入會佔用 115 的一個裝置類型。同一個類型只能有一個登入,同類型的其他登入會被踢下線。預設用「支付寶小程式」。如果你自己也用這個類型登入 115,在「帳號」卡片展開「進階:掃碼佔用的裝置類型、115 開放平台」,把「掃碼登入佔用的 115 裝置類型」換掉,按「儲存裝置類型和 AppID」,再按「重新掃碼登入」。新的類型在下一次掃碼時才生效。
| 選項 | 設定檔的值(p115.app) |
|---|---|
| 支付寶小程式(預設) | alipaymini |
| 微信小程式 | wechatmini |
| 115 TV 版 | tv |
| 115 管理(Android) | qandroid |
| 115(iOS) | ios |
| 115(Android) | android |
| 網頁版 | web |
貼上 cookie
也可以用瀏覽器裡已經登入的 115 cookie:
- 在「帳號」卡片展開「改用貼上 cookie」。
- 把 cookie 貼進「115 cookie」,格式像
UID=…; CID=…; SEID=…。 - 按「儲存 cookie」。
cookie 只能有英文字母、數字和符號,而且要在同一行。多了中文、省略號(…)或換行時,會出現「cookie 裡有中文、省略號或換行,請從瀏覽器重新複製一次」。儲存時不會先檢查 cookie 能不能用,能不能用看帳號卡片的「Cookie」一欄。
cookie 也可以寫在設定檔的 p115.cookies。這個值只在 Mi302 啟動、而且資料庫裡還沒有 115 登入時使用,改了要重新啟動。登出 115 之後,如果設定檔裡還留著 p115.cookies,下次啟動會再用它登入。
登出
按「登出 115」並確認。登出後不能同步,也不能播放 115 上的影片,直到重新登入。登出不會取消 115 開放平台的授權,那要另外按「取消授權」。
帳號卡片
登入後,「115 網盤」分頁的「帳號」卡片顯示:
- 頭像、帳號名稱、UID。
- VIP 等級和到期日,永久 VIP 顯示「永久 VIP」。
- 空間:已用、總量、剩餘,附用量條。
- Cookie 是否有效。失效時顯示 115 回的原因,重新掃碼即可。
- 登入方式(掃碼登入、貼上 cookie、設定檔 cookie)、掃碼時佔用的裝置類型、登入時間。
- 有授權 115 開放平台時,顯示授權狀態和 token 到期時間。
- 「目前登入這個帳號的裝置」:所有登入這個帳號的裝置,Mi302 自己標成「本伺服器」。從這裡看得出 Mi302 是不是被同類型的其他登入踢掉了。
帳號資訊平常快取一分鐘。按卡片右上角的「重新整理」會立即向 115 重新查詢。「概覽」頁的「115 帳號」卡片有摘要,「115 已用空間」顯示已用空間的百分比。
115 開放平台(進階)
一般用戶不需要這一步。只有自己在 115 開放平台 申請到應用、拿到 AppID 的人才用得到。
- 在「帳號」卡片展開「進階:掃碼佔用的裝置類型、115 開放平台」。
- 填 AppID,按「授權」。
- 用手機 115 App 掃描並授權。
授權後,查目錄、列目錄、找新檔案和取直鏈會先走開放平台,失敗再改用掃碼或 cookie 登入。token 大約兩小時到期,快到期時 Mi302 會自動續期;115 拒絕續期時要重新授權。按「取消授權」可以取消。AppID 可以預先填好,按同一區的「儲存裝置類型和 AppID」存起來(p115.open_app_id)。
讀生活事件和導出目錄樹只能用掃碼或 cookie 登入。只用開放平台時,增量同步只依修改時間補抓新檔案,全量同步改成一層一層列目錄。
同步任務
一個同步任務把一個 115 目錄對到一個本機資料夾。在「115 網盤」分頁的「同步任務」卡片:
- 「115 目錄」:填 115 上的路徑,例如
/影視/電影,或按「瀏覽」選。 - 「放到本機資料夾」:填伺服器上的資料夾,例如
/media/movies/115,或按「瀏覽」選。 - 按「新增任務」。
規則:
- 本機資料夾要填完整路徑,以
/開頭。 - 兩個任務的本機資料夾不能相同,也不能一個在另一個裡面,不然刪除多餘的 strm 時會互相刪到。
- 本機資料夾要在某個媒體庫裡,播放器才看得到。不在時,任務旁邊會顯示「不在任何媒體庫裡,播放器看不到」。建議用媒體庫底下的子資料夾,例如
/media/movies/115。 - 115 上的目錄結構原樣保留。
任務清單顯示每個任務上次增量、全量同步的時間。按任務右邊的垃圾桶可以刪除任務,已經產生的 strm 不會被刪。任務存在設定檔的 p115.strm.tasks。
strm 檔
同步時,115 上的每支影片在本機產生一個同名的 .strm 檔。會處理的影片副檔名:.mkv、.mp4、.m4v、.avi、.ts、.m2ts、.mov、.wmv、.flv、.webm、.rmvb、.mpg、.mpeg、.iso、.3gp。
strm 的內容是指回 Mi302 的短連結:
http://192.168.1.10:8096/d/abcdefghijklmnopq.mkv
- 中間那一段是 pickcode,也就是 115 用來標示一個檔案的 17 位英數字代碼。播放時 Mi302 拿 pickcode 向 115 取直鏈,再 302 給播放器,見播放與外網連線。
- 最後的副檔名是原檔的副檔名,讓播放器和掃描認得容器格式。
- 開啟「同步選項」的「strm 網址後附上原檔名」時,網址後面再加
?/原檔名,方便人工辨識,Mi302 會忽略這一段。 - 「同步選項」的「略過小於這個大小的影片(MB)」(
p115.strm.min_size_mb)大於 0 時,比這個小的影片不產生 strm。例如填 50 可以略過預告片。 - 同一個資料夾裡只差副檔名的影片(例如
X.mkv和X.mp4)都會對到X.strm,只用其中一支:原本 strm 指著的那支,還沒有 strm 的話用最大的。其他的不產生 strm,同步結果會註明;不要的版本可以到 115 上刪掉。
strm 裡的伺服器位址
Mi302 依下面的順序決定 strm 裡的位址:
- 「同步選項」的「strm 裡的伺服器網址」(
p115.strm.base_url),有填就用它。 - 你上次打開「115 網盤」分頁或按同步時,瀏覽器網址列上的位址。所以請用播放器也連得到的位址開管理網頁,例如
http://192.168.1.10:8096,不要用localhost。 - 都沒有時用
http://127.0.0.1:<埠號>。
目前用的位址顯示在「同步」卡片的「strm 內的伺服器位址」。放在反向代理後面、要從外網看時,填對外網址,見播放與外網連線。
改了伺服器網址或「strm 網址後附上原檔名」並儲存後,Mi302 會在背景把現有的 strm 一起改過去,儲存時會提示。這一步只讀寫本機檔案、不連 115,也不必重新同步或掃描;pickcode 沒變,已有的媒體資訊照用。只改同步任務資料夾裡 Mi302 產生的 strm,別的工具產生的(其他網址、本機路徑)不動。
「同步」卡片的位址旁邊有「把現有 strm 改成這個網址」,可以隨時手動改一次,例如留空自動、而你換了網址開管理網頁之後。下面一行會顯示上次改了幾個;改的時候可以按「停止」,改好的留著,再按一次會接著改剩下的。
115 上的檔案被換掉(同一個位置換成另一個檔案,pickcode 變了)時,同步會重寫 strm,並刪掉舊的 X-mediainfo.json 讓它重新探測,見媒體資訊與探測。
中繼資料下載
「同步選項」的「一併下載 115 上的 nfo、海報、字幕」(p115.strm.download_metadata,預設開)開著時,115 上這些檔案會照原來的位置下載到本機:.nfo、.jpg、.jpeg、.png、.webp、.srt、.ass、.ssa、.sup、.vtt。
- 本機已經有、而且大小相同的檔案不會重新下載。
- 下載失敗的檔案列在同步結果的錯誤裡,下次全量同步會再試。
- 每個檔案都要向 115 取一次直鏈,所以兩個之間至少隔 0.5 秒(
p115.strm.request_delay比較大就照它,設成 0 就不隔)。全量同步先產生全部 strm,最後才下載這些檔案,新片不必等它們。 - 下載途中被 115 限流時,這一輪剩下的先不下載,strm 照常產生;同步結果會寫明,下次全量同步再補。
- 超過 64 MB 的不下載(正常的 nfo、圖片、字幕不會這麼大)。
- Mi302 不自己刮削。115 上沒有 nfo 和海報時交給 MoviePilot,見 MoviePilot 整合。
增量同步與全量同步
| 增量同步 | 全量同步 | |
|---|---|---|
| 依據 | 115 的生活事件,再依修改時間補抓 | 115 的導出目錄樹,加上一次列出所有檔案 |
| 處理 | 上傳、接收、複製、移動、改名、刪除 | 重新比對整個目錄,補齊漏掉的檔案 |
| 速度 | 快,只讀上次同步之後的事件 | 資料夾多也不慢,但要等 115 產生目錄樹 |
| 適合 | 每隔幾分鐘自動跑 | 預設每週自動跑一次,查漏補缺 |
增量同步
生活事件是 115 對網盤裡每個操作的紀錄。增量同步分兩步:
- 讀生活事件。Mi302 讀上次同步之後的事件。同一個檔案有好幾個事件時只看最後一個,那就是它現在的狀態。
- 上傳、接收、複製,或從同步目錄外面移進來:產生 strm。整個資料夾移進來時,會列出裡面的檔案。
- 在同步目錄裡移動、改名(檔案或資料夾):本機的 strm 跟著搬。同名的 nfo、海報、字幕和
X-mediainfo.json(例如 MoviePilot 刮削的)也一起搬,不必重新刮削。資料夾搬到已經存在的資料夾時兩邊合併,目的地已有的同名檔案不會被蓋掉。 - 刪除,或移出同步目錄:開了「跟著刪」時,刪掉本機的 strm 和它的中繼資料;沒開時不動。
- 瀏覽、加星標、加標籤這類不改變檔案的事件略過。
- 依修改時間補抓。請 115 列出同步目錄裡上次同步之後修改過的檔案(往前多看 10 分鐘),補上沒有產生事件的上傳,例如離線下載、第三方工具上傳。清單由新到舊,看到舊檔案就停,通常一次請求就夠。
生活事件只給檔案 id。所以 Mi302 在全量同步時記下每個 115 檔案、資料夾對應的本機路徑,增量同步靠這份對照表找到本機原本的位置。
全量同步
全量同步分三步:
- 導出目錄樹。請 115 產生整個同步目錄的目錄樹,跟 115 網頁上的「導出目錄樹」一樣,一次拿到所有資料夾和檔案的名稱。這個檔案暫時放在 115 根目錄,讀完就刪掉;刪除失敗時日誌裡會記下檔名,可以自己到 115 根目錄刪掉。Mi302 最多等 115 產生 15 分鐘。
- 列出所有檔案。一次列出同步目錄底下所有檔案的 pickcode、大小和所在資料夾,每次請求 1150 個。
- 對上路徑。目錄樹只有名稱,檔案清單只有資料夾 id,Mi302 用資料夾裡的檔名把兩邊對起來。檔名太普通對不出來的資料夾(例如兩季都只有
01.mkv),以及只放子資料夾的資料夾(例如只放各季的劇集資料夾),才另外向 115 查一次路徑。查到的都記下來,下次全量不必再查。
這樣不必一層一層列出每個資料夾,資料夾有幾千個也只要少數幾次請求。下面這些情況會自動改回一層一層列目錄,每列一個目錄前先等「每列一個 115 目錄前等待的秒數」(p115.strm.request_delay,預設 0.2 秒):
- 導出、列檔案或查路徑失敗,例如目錄樹下載不了。
- 只用開放平台登入,因為導出目錄樹需要掃碼或 cookie 登入。
- 列出的影片比目錄樹少一成以上,代表清單不完整。
目錄樹裡有、115 卻沒列出來的少數影片,不會當成已刪除,這次保留它們的 strm。這些情況都會註明在同步結果上。
115 同一個帳號同時只能跑一個導出目錄樹任務。Mi302 自己的全量同步和找空資料夾會排隊,一次只導出一個。115 上還有別的導出任務在跑時(例如在 115 網頁上導出),Mi302 每 30 秒再試一次,約 5 分鐘後還不行,這個任務這次不同步、記在錯誤裡,之後再試;不會改成一層一層列目錄,因為幾千個資料夾一個一個列容易被 115 限流。
全量同步開始前,Mi302 會打開 115 生活的「最近記錄」開關(關閉時 115 不記錄事件),並記下目前最新的事件。同步期間發生的變動留給下一次增量同步。
什麼時候自動改跑全量
- 任務還沒全量同步過,包括剛新增的任務和從舊版升級上來的任務:第一次增量同步會先跑全量,建立對照表。
- 太久沒同步,上次讀到的事件已經不在 115 保留的範圍內(115 只保留最近約一萬筆事件):改跑全量,免得漏掉中間的變動。
同步結果會寫「已改跑全量:」和是哪些任務。
觸發方式
- 按鈕:「115 網盤」分頁「同步」卡片的「增量同步」、「全量同步」,或「概覽」頁「115 同步」卡片的「增量同步」、「全量」。同時只會有一個同步在跑,正在同步時再按會顯示「已經在同步中」。
- 停止:同步中「同步」卡片上有「停止」。在兩個檔案之間停下,這次的進度不存、不刪任何 strm,下次同步會重做沒做完的部分;定時同步照舊。
- 排程:「同步選項」卡片的兩個欄位,改完按「儲存同步選項」。
- 命令列:見下面。
排程
| 欄位 | 設定檔 | 預設 | 說明 |
|---|---|---|---|
| 自動增量同步間隔(分鐘) | p115.strm.interval |
0 | 0 = 不自動,建議 5 |
| 自動全量同步間隔(小時) | p115.strm.full_interval |
168 | 0 = 不自動,168 = 每週 |
- Mi302 每分鐘檢查一次是否到期,改了間隔馬上生效。
- 增量同步的間隔從 Mi302 啟動時開始算。
- 全量同步的間隔從上次全量同步的時間算,看最久沒全量的那個任務。這個時間存在資料庫,重新啟動不會重新計時。任務要先同步過一次,自動全量才會開始計時。
- 兩個同時到期時只跑全量,所有任務一起跑。
- 沒登入 115、沒有任務,或熔斷中時,排程先不跑。
命令列
# 全量同步
.venv/bin/python -m embyserver -c config.yaml --sync-115
# 增量同步
.venv/bin/python -m embyserver -c config.yaml --sync-115 incremental
同步完會照設定掃描有變動的地方、送 MoviePilot 刮削,然後結束,適合放進 cron 這類排程。要用執行 Mi302 的帳號,在平常啟動 Mi302 的資料夾執行,才會用到同一份資料(server.data_dir 預設的 ./data 是相對於這個資料夾)。Linux 上用一鍵安裝的是:
cd /opt/mi302/config
sudo -u 帳號 env PYTHONPATH=/opt/mi302 /opt/mi302/.venv/bin/python -m embyserver -c config.yaml --sync-115 incremental
這是另一個程式,不知道網頁那邊是不是正在同步,請避免兩邊同時跑。
同步結果
「同步」卡片(「概覽」頁也有)顯示上次同步的結果:
- 狀態:「完成」或「有錯誤」,是增量還是全量,多久以前。
- 數字:「生活事件」「搬移」(只有增量),以及「新檔案」「更新」「未變」「中繼資料」「刪除」。
- 註記:例如改跑全量、改成逐層列目錄、為了安全這次沒有刪除。
- 錯誤:列出前 5 個,其他的看日誌。一個任務出錯不影響其他任務。
同步完之後
- 掃描:「同步選項」的「同步完自動重新掃描媒體庫」(
p115.strm.scan_after_sync,預設開)開著時,只重新掃描新增、更新、搬移或刪除的檔案所在的劇或電影,見媒體庫與掃描。 - 刮削:新產生的 strm 送給 MoviePilot 刮削(「同步產生新的 strm 後自動送去刮削」),見 MoviePilot 整合。
- 探測:開了「批次探測」和「同步產生新的 strm 後自動探測」時,新的 strm 和 115 上換掉的檔案在背景探測媒體資訊,見媒體資訊與探測。
- 補全缺集:開了「全量同步後自動補全」時,每次全量同步後把所有有 tmdbid 的劇送給 MoviePilot 訂閱。
跟著刪
「同步選項」的「跟著刪」(p115.strm.delete_stale)預設關閉。開啟後,115 上刪掉或移出同步目錄的影片,本機的 strm 和刮削資料也跟著刪。
會刪的東西:
- 那支影片的 strm。
- 和 strm 同名的中繼資料,例如
X.nfo、X-poster.jpg、X.zh.srt、X-mediainfo.json。同資料夾裡有X-2.strm時,X-2.nfo屬於X-2,不會跟著X刪。 - 已經沒有任何影片的資料夾裡的 nfo、圖片、字幕,以及清空後的空資料夾。
其他副檔名的檔案一律不動。
增量同步依事件刪除:刪除、移出同步目錄、改名成不是影片的檔名。全量同步刪除本機有、這次 115 上沒有的 strm。
全量同步為了不誤刪,遇到下面這些情況這次不刪,並在同步結果註明:
- 有資料夾查不到路徑,也就是有檔案不知道放在哪裡。
- 115 上一支影片都沒列出來,本機卻有影片。多半是 115 目錄填錯,或 115 沒回完整。
- 目錄樹裡有、115 卻沒列出來的影片:保留它們的 strm,下次全量兩邊都沒有才刪。
- 要刪的 strm 裡,同步紀錄沒記過的(不是從這個 115 目錄同步來的)超過 100 個、又超過本機 strm 的一半:多半是同步任務的 115 目錄改填成了另一個也有影片的資料夾,這些不刪。115 上真的刪掉的檔案同步紀錄裡都有,照刪。確認沒填錯的話,自己刪掉本機那些 strm。
115 回應錯誤或被限流時,整個任務算失敗,不會當成空目錄處理。
115 上只改了檔名的大小寫時:在 macOS 這類不分大小寫的磁碟上,新舊是同一個檔案,不會被刪;在分大小寫的磁碟上,舊的 strm 會刪掉,它的 nfo、海報改成新的檔名。
不管有沒有開「跟著刪」,刪除同步任務都不會刪掉已經產生的 strm。
離線下載
「115 網盤」頁的「離線下載」把磁力、ed2k、http、https、ftp 連結交給 115 下載到網盤(115 的「雲下載」),不經過這台機器,也不佔這台機器的頻寬。
- 在「連結」貼上要下載的,一行一個。只有種子的 info hash(40 個十六進位字元)也可以,會自動變成磁力連結。看不懂的那幾行不送,送完會說有幾行沒送。
- 「存到」填 115 上的資料夾,或按「選擇…」挑;空白就存到 115 預設的「雲下載」資料夾。上次用的會記在這個瀏覽器。
- 按「加入下載」。115 已經有同一個任務時,那一個會寫「任務已存在」。
下面的「下載任務」列出 115 上的雲下載任務:名稱、大小、進度(下載中的每 5 秒更新一次)、完成或失敗。完成的可以按「打開資料夾」到「瀏覽 115」看下載好的檔案。右上角是這個月還能加幾個任務(115 的配額,會員等級不同)。
- 存到同步目錄裡的:下載完,下一次增量同步就會產生 strm、進媒體庫(有開 MoviePilot 刮削的,也會送去刮削)。
- 存到其他地方的:可以在「瀏覽 115」按「整理…」交給 MoviePilot 整理到媒體庫。
- 刪除…:只刪任務紀錄,下載好的檔案留在 115。要連檔案一起刪,在確認框裡輸入「刪檔案」。
- 重新加入:失敗的任務有這個按鈕。會先刪掉那一筆失敗的紀錄(不動檔案,不然 115 會說「任務已存在」),再用原來的連結加回原來的資料夾。
- 清除已完成、清除失敗的:一次清掉那一種任務的紀錄,不動檔案。
授權了 115 開放平台 就用它的雲下載介面;沒有就用掃碼登入的 cookie。cookie 用的是 115 手機 App 的介面,沒有官方文件,115 改了介面時會失敗,錯誤訊息照實顯示。
轉存分享
「115 網盤」頁的「轉存分享」把別人的 115 分享連結轉存到自己的 115,再交給 MoviePilot 整理進媒體庫。分享出來的資料夾、檔名五花八門,所以每個分享先放進一個暫存的子資料夾、一定經過 MoviePilot 整理,不直接轉存進媒體庫。
-
在「連結」貼上分享,一行一個:
https://115.com/s/sw…?password=abcd,或115cdn.com、anxia.com的網址都可以;訪問碼寫在同一行也認得(访问码:abcd、提取碼: abcd、密码 abcd,簡繁都行)。不用訪問碼的分享照樣讀。同一個分享貼兩次只算一個,看不懂的行不讀,會說有幾行。 -
按「讀取分享」:每個分享列一塊,有標題、總大小,和最上層的每個資料夾、檔案,前面有勾選框(預設全勾,不要的取消勾)。讀不到的(分享不存在、過期、訪問碼不對)照 115 的原文顯示。最上層超過 1000 項的只列前 1000 項。
-
「存到」選一個 115 上已經有的資料夾(不會自動建立),每個分享在它底下建一個子資料夾,名稱是分享的標題;同名的已經有了就叫「標題 (分享碼)」。上次用的記在這個瀏覽器。建議用同步目錄外的資料夾,例如
/待整理:存到同步目錄裡的,整理之前增量同步會先替原始檔名產生 strm,網頁會提醒。 -
「整理到」選轉存完怎麼辦:
- MoviePilot 目錄設定裡存儲是 115 的媒體庫目錄(例如「日番(/cms/电视剧/日番)」):在背景請 MoviePilot 預覽,沒問題的直接整理(改成 MoviePilot 的命名格式、搬進那個媒體庫目錄,不刮削),整理完搬空的暫存子資料夾移到 115 回收站;有問題的跳過,留在整理 115 網盤給你看。
- 「其他 115 資料夾…」:自己填或選一個 115 資料夾,一樣整理過去。
- 「先不整理」:只加進「整理 115 網盤」(釘在清單最上面,和「瀏覽 115」的「整理這個資料夾…」一樣),自己預覽、整理。
選擇記在這個瀏覽器。讀不到 MoviePilot 的目錄設定時只剩後兩項;還沒設定 MoviePilot 時只能先不整理。選單下面寫原因。
-
按「轉存」,確認後在背景一個分享一個分享做(關掉網頁也會做完):建子資料夾、請 115 轉存、等 115 做完(勾的項目都出現在子資料夾裡、裡面的檔案數不再變,最多等 10 分鐘)、加進「整理 115 網盤」。卡片上顯示每個分享做到哪裡,做完寫結果:轉存失敗(115 的原因)、已加進「整理 115 網盤」、已交給 MoviePilot 整理(到「整理 115 網盤」看結果)。
「整理到」沒有「照 MoviePilot 的目錄設定」:MoviePilot 自己挑目錄時只認來源在它的「下載目錄」底下的,轉存進來的東西在 115 的暫存資料夾裡,不在任何下載目錄、也不在媒體庫目錄裡,它挑不出來(預覽只會說「整理任务处理失败」)。所以要指定整理到哪個資料夾,Mi302 照「指定的 115 資料夾」送給它。
- 停止:做完手上這一個分享就停。已經轉存的留在 115、已經加進「整理 115 網盤」的留在清單上;還沒做的不做,也不交給 MoviePilot 整理(要整理的話到「整理 115 網盤」按「全部整理」)。
- 已經有別的整理在跑(全部整理、刪除勾選的、問 MoviePilot 檢查、單獨執行的整理):照樣轉存、加進清單,只是不開始整理;等它做完到「整理 115 網盤」按「全部整理」。
- 轉存本身不刪任何東西:轉存失敗時建好的子資料夾留著,空的可以到「瀏覽 115」刪掉。
限制:
- 要用掃碼登入 115(cookie);只授權了開放平台不行。
- 用的是 115 網頁版沒有官方文件的介面(讀分享、轉存、建資料夾、資料夾裡的檔案數),115 改了介面就會失敗,錯誤訊息照實顯示。
- 「整理 115 網盤」最上面的清單(瀏覽 115 加進來的)最多 20 個:一次轉存超過 20 個分享時,前面的會被擠出清單,那幾個會寫明檔案在哪裡,到「瀏覽 115」再加進整理。
- 115 限流(熔斷)時不開始;轉存到一半熔斷的話,後面的不做,寫明原因。
從阿里雲盤秒傳
「115 網盤」頁的「阿里雲盤秒傳」把阿里雲盤上的一個資料夾(或一支檔案)秒傳到 115,再交給 MoviePilot 整理進媒體庫。阿里雲盤的檔案清單直接給每支檔案的 SHA1,115 上已經有同一個檔案(有人傳過)就直接秒傳過來,不經過這台機器、不用下載再上傳。115 上沒有的檔案不會真的上傳,只列出來。
登入阿里雲盤
為什麼要登入:除了列出檔案,115 秒傳時常常要「二次驗證」,要檔案中間一小段的 SHA1,證明真的有這個檔案;Mi302 向阿里雲盤讀那一小段(幾 KB)回給 115。
- 用 OpenList 的取得工具拿 refresh token:打開 https://api.oplist.org/,選阿里雲盤掃碼,用阿里雲盤 App 掃,複製 refresh token。
- 在「阿里雲盤帳號」卡片貼上,按「登入」。登入後顯示帳號名稱和有哪些盤(資源庫、備份盤)。
- 沒填自己的 client id 時,refresh token 會送給 OpenList 的服務(
https://api.oplist.org/alicloud/renewapi)換 access token,和 OpenList 自己的做法一樣。不想這樣,在「進階」填自己在阿里雲盤開放平台申請的 Client ID、Client Secret(refresh token 也要用那個應用拿),Mi302 就直接向阿里雲盤換;線上 API 的網址也可以改(要https://)。見設定檔參考。 - refresh token 存在 Mi302 的資料庫,不寫進設定檔。每次換 access token 阿里雲盤都會給一個新的 refresh token,Mi302 會存回去。「登出」清掉。
秒傳
- 「來源」填阿里雲盤上的路徑,最上層是「資源庫」「備份盤」,例如
/資源庫/電視劇/凡人修仙传;或按「選擇…」一層一層點(會顯示那一層有幾個檔案)。 - 「只要影片和字幕」(預設開,記在這個瀏覽器):nfo、圖片這些不傳。
- 按「讀取」:顯示幾支影片、幾個字幕、總大小、阿里雲盤沒給 SHA1 的、超過 115 單檔上限的(這兩種不能秒傳,會略過),和前 200 支的清單。一次最多 5000 支。
- 「存到」選 115 上已經有的資料夾,建議用同步目錄外的,例如
/待整理(理由和轉存分享一樣)。Mi302 在它底下建一個新資料夾,名稱是來源的名稱(一支檔案時是去掉副檔名的檔名),同名的已經有了就加「 (2)」「 (3)」;子資料夾照原本的結構建。 - 「整理到」和轉存分享同一套選單:選了媒體庫目錄或其他 115 資料夾,秒傳完在背景交給 MoviePilot 整理,整理完搬空的資料夾移到 115 回收站;「先不整理」只加進「整理 115 網盤」。選擇記在這個瀏覽器,和轉存分享分開記。
- 按「開始秒傳」,確認後在背景一支一支做(關掉網頁也會做完),兩次 115 請求之間至少隔 1 秒。卡片上顯示做到第幾支、成功、115 沒有、失敗、略過;做完列出沒成功的和原因(最多 200 筆)。
- 一支都沒成功:剛建的資料夾是空的,移到 115 回收站,記在「回收站 → Mi302 刪掉的」(來源「秒傳沒成功的空資料夾」)。
- 停止:做完手上這一支就停;已經秒傳的加進「整理 115 網盤」,不交給 MoviePilot 整理。
- 115 限流(熔斷):整批停下,寫明秒傳好的在哪裡,恢復後到「瀏覽 115」加進整理。
限制:
- 要用掃碼登入 115(cookie)。
- 115 上沒有的檔案不能秒傳,Mi302 不會真的上傳。
- 115 的秒傳沒有官方文件(照 OpenList、p115client 的做法),阿里雲盤用的是它的開放平台;哪一邊改了介面就會失敗,錯誤訊息照實顯示。115 的二次驗證有時限,拖太久會失敗(sig invalid)。
- 一次最多 5000 支;阿里雲盤沒給 SHA1 的、超過 115 單檔上限的略過。
- 列目錄、取下載網址照阿里雲盤的頻率限制(列目錄每秒 4 次、取下載網址每秒 1 次),資料夾很多的要等一下。
瀏覽 115
側欄的「瀏覽 115」頁可以看 115 上的資料夾裡有什麼。第一次打開從第一個同步任務的 115 目錄開始(還沒有同步任務時從根目錄),之後回到上次看的資料夾;「回到同步目錄」回到起點。點資料夾往下走,點上方路徑的任何一層或「上一層」往回。每打開一個資料夾,Mi302 就向 115 列一次目錄。
- 子資料夾:點名稱打開;右邊的「整理…」把這個資料夾加進「整理 115 網盤」。
- 影片:大小、上傳時間,以及它在 Mi302 媒體庫裡被認成什麼。
- 其他檔案(nfo、圖片、字幕)用淡色列出。檔案一次載入 1000 個,更多的按最下面的「再載入」;「全選」只選已經載入的,選取數量旁邊會寫還有幾個沒載入。
- 每一列前面有勾選框,上面有「全選」。勾好按「整理選取的…」把勾的資料夾都加進「整理 115 網盤」(檔案不能單獨整理,略過),或按「刪除選取的…」移到 115 回收站(在 115 可以還原),資料夾連同裡面所有檔案;在同步目錄裡的,本機的 strm、nfo 和媒體庫也一起拿掉。刪之前 Mi302 會再列一次這個資料夾,只刪真的在裡面的。刪除要用掃碼登入 115(cookie)。
影片旁邊的標示:
| 標示 | 意思 |
|---|---|
| 劇名 S01E10 | 媒體庫裡的集。旁邊有「集號是從檔名猜的」或「認不出集號」時,集號可能不對 |
| 電影:片名 (年份) | 媒體庫裡的電影 |
| 有 strm,還沒掃描 | 已經同步成 strm,媒體庫還沒掃到 |
| 不在媒體庫(沒有 strm) | 在同步目錄裡,卻沒有 strm,例如影片比同步選項設的大小下限小,或還沒同步到 |
覺得哪個資料夾的內容不對,按「整理這個資料夾…」,或子資料夾的「整理…」:它會釘在「115 網盤」頁「整理 115 網盤」卡片的最上面,那一列標「已加進整理」,可以留在這一頁繼續挑。挑好按頁面上方的「去整理(N)」到那張卡片,交給 MoviePilot 在 115 上改名、搬家並刮削,一樣先預覽再執行,見整理 115 網盤。整理的進度這一頁也看得到。
整理 115 網盤
MoviePilot 整理過的影片照它的重命名格式命名,例如 凡人修仙传 (2020) {tmdbid=106449}/Season 1/凡人修仙传 - S01E176 - 第 176 集.mp4。從別處轉存來的資料夾常常不是這樣,集號也可能認不出來,例如:
/電視劇/國漫/F 凡人修仙传{tmdbid-106449} 更176|停更|预计第二季度更新/凡人修仙传 EP001_风起天南.mp4
/電視劇/綜藝/康熙来了 (2004)/康熙来了 EP01.mp4 ← 旁邊已經有「康熙来了 (2004) {tmdbid=6836}」
/電視劇/國產劇/大道朝天 (2024) {tmdbid=…}/Season 1/10.xxx.mp4 ← 資料夾是好的,只有檔名不標準
「115 網盤」頁的「整理 115 網盤」卡片把這些找出來,整個資料夾交給 MoviePilot 整理,不要的直接刪。辨識和命名都是 MoviePilot 做的:Mi302 不自己判斷名稱對不對,也不猜 TMDB 編號、類型和季。整理要先在「MoviePilot」頁設定好連線(V3 用 API 令牌就夠,舊版要填管理員帳號密碼),預覽、整理也要先登入 115。
清單上有什麼
| 原因 | 意思 |
|---|---|
| 媒體庫裡 N 集的集號是從檔名猜的、N 集認不出集號 | 掃描時從「10.xxx」「第10集」這類檔名猜的,或根本認不出來。不用問 MoviePilot 就列出來 |
| 資料夾名稱和 MoviePilot 的不一樣 | 例如它會把「F 凡人修仙传{tmdbid-106449} 更176…」整理成「凡人修仙传 (2020) {tmdbid=106449}」。旁邊已經有那個名稱的資料夾,就寫「旁邊已經有,會併進去」 |
| 影片直接放在資料夾裡 | MoviePilot 的劇集重命名格式有季資料夾,影片卻沒放在季資料夾裡 |
| 檔名和 MoviePilot 的不一樣 | 列出現在的檔名和它會改成的檔名,例如「1 → 凡人修仙传 - S02E01 - 第 1 集」。只差詞的順序的不算:MoviePilot 會把「DV HQ」這類效果倒過來排,它自己取的名稱再問一次也會換順序 |
| 沒有自己的資料夾 | 電影和別的電影放在同一個資料夾裡,一支一列。資料夾名稱有片名、裡面卻不只一支的(常是 115 加了「(1)」的重複檔案),寫「資料夾裡還有另外 N 支影片」 |
| 套在另一個以片名命名的資料夾裡 | 整個劇集或電影資料夾放在「H-画江湖之天罡-2023-[tmdb=1221210]」這種以片名命名的資料夾裡(例如之前整理錯的);整理時放到那個資料夾的上一層 |
| MoviePilot 認不出來 | 它說不出這是哪部影片;可以自己指定類型和 TMDB 編號,或到 115 上改名稱 |
後面四種要先按「問 MoviePilot 檢查」:媒體庫裡在同步目錄底下的每一部劇、每一部電影,Mi302 都問 MoviePilot「整理後叫什麼」(它的「查詢整理後的名稱」API,和它網頁上整理時算名稱用的是同一套),資料夾問一次,再挑一兩支影片問檔名。檢查在背景跑,卡片上顯示問到第幾個、找到幾個,問完的陸續列出來;按「停止」問完手上這幾個就停,沒問的下次再問。媒體庫大的第一次要問一陣子(每個資料夾問兩三次,每次 MoviePilot 都會查 TMDB)。問過的記在 Mi302 的資料庫,資料夾名稱和裡面的影片沒變的下次不再問;改過 MoviePilot 的重命名格式時,按「全部重新檢查」。媒體庫掃描或 115 同步完成後,清單會重新算。
可以搜尋名稱,或只看劇集、只看電影、「只看集號不對的」。同步目錄不只一個時(常常就是分類:國產劇、國漫…),還有「全部同步目錄」下拉選單,可以只看某一個同步目錄底下的。
「瀏覽 115」裡按「整理這個資料夾…」或子資料夾的「整理…」,那個資料夾會釘在清單最上面(標「從瀏覽 115 加進來」),不在媒體庫裡、不在同步目錄裡的也可以(例如「待整理」)。加進來的記在 Mi302 的資料庫,重新啟動後還在(最多 20 個)。不想看了按「不看了」。
每一個要確認的
- 整理到:「照 MoviePilot 的目錄設定」(預設)、「同一層」(和現在的資料夾放在一起;放在以片名命名的資料夾裡的,例如沒有自己資料夾的電影在「H-画江湖之天罡-2023-[tmdb=1221210]」裡,放到那個資料夾的上一層,不會把新的電影資料夾建在舊的裡面)、「指定的 115 資料夾」。清單上方的「全部整理到」一次改全部;某一列自己改過的,就不再跟著「全部整理到」。「全部整理到」記在這個瀏覽器裡。
- 照 MoviePilot 的目錄設定:MoviePilot 自己挑目錄時只看「下載目錄」(來源要在下載目錄底下,下載目錄的存儲也要是 115),已經在媒體庫裡的資料夾對不上,它的預覽只會說「整理任务处理失败」。Mi302 先讀它的目錄設定:已經在它的媒體庫目錄(存儲是 115 網盤)裡的,留在現在的分類資料夾(和「同一層」一樣),只改資料夾和檔名,預覽上方寫著是哪一項媒體庫目錄。只收電影或只收劇集的那一項,只用在電影或劇集。不在任何媒體庫目錄裡的(例如下載目錄裡的「待整理」)讓 MoviePilot 自己挑;它也挑不出來時,預覽直接說明,改選「同一層」或指定的資料夾。
- 送給 MoviePilot 的選項:它網頁整理對話框的「按類型分類」「按類別分類」「刮削元數據」「複用歷史識別信息」一律關掉:不另加類型、類別資料夾,不在 115 上刮削(本機的 nfo、海報跟著 strm 搬),也不照舊的整理紀錄認。整理方式是移動。
- 每一部分:資料夾裡有子資料夾的,一個子資料夾一部分,直接放著的影片另外一部分(子資料夾可能是另一部影片,例如凡人修仙传資料夾裡的「虚天战纪.导演剪辑版 (2025) [tmdb-282348]」)。每一部分預設「讓 MoviePilot 自己認」;按「指定…」可以指定類型、TMDB 編號、季、集數定位,只套用在那一部分。
- 集數定位:MoviePilot 認不出集號(例如「10.xxx.mp4」)時用,
{ep}是集號的位置,{a}、{b}是任意文字,例如{ep}.{a}。按「推薦」先請 MoviePilot 推薦;它推薦不出來才用 Mi302 從檔名看的,會寫明是誰給的。
預覽
每一列右邊有「預覽」「整理」「刪除…」。「預覽」只預覽這一列;「整理」還沒預覽的先預覽,有可以整理的再問要不要執行,按一下就能整理一個。要一次處理好幾個,勾選後用畫面底部固定的那一列按「預覽選取的」「執行」,不用捲到清單最下面。「全選」勾起這一頁全部(和從瀏覽 115 加進來的),全勾了再按一次取消;「刪除」把勾選的(換頁前勾的也算)整個移到 115 回收站(在 115 可以還原),本機的 strm、nfo 和媒體庫跟著拿掉,刪之前列出名稱確認一次。確認後在伺服器上一個一個刪(關掉網頁也會做完),卡片上方顯示進度,可以按「停止」;刪不掉的列出原因。劇集要只刪幾集的,用那一列的「刪除…」。
全部整理:底部那一列的「全部整理(N 個)」一次做完清單上的,不只這一頁;有搜尋、選了同步目錄或種類時,只做符合的,瀏覽 115 釘上來的也算。Mi302 在背景一個一個請 MoviePilot 預覽,沒問題的直接照預覽整理,整理到「全部整理到」選的位置;有問題的跳過:認成別部片(資料夾名裡的 TMDB 編號錯了,見下面)、有檔案 MoviePilot 不會整理(認不出來、認不出集號)、有「要看一下」的提醒(例如兩個檔案會整理到同一個位置)、認成的季和媒體庫不一樣、查不到整理紀錄或目標資料夾。整部劇有一集不行就整部跳過,不會只整理一半。已經照格式命名的、目標已經有同名檔案的照樣不送。進度條在底部那一列,顯示做到第幾個、整理了幾個、跳過幾個,可以按「停止」(做完手上這一個就停);關掉網頁也會繼續。做完卡片上方列出跳過、失敗的和原因,按「在清單上找」再一個一個處理;明細最多留 2000 個,數量照算。連續 5 個預覽出錯(例如 MoviePilot 的目錄設定對不上、115 讀不到)就先停下。
先不整理、影片很多的:每一列右邊的「先不整理」把它標起來,全部整理時跳過、排到清單最後(「恢復整理」取消;單獨整理還是可以)。種類選「只看先不整理的」可以只看它們,這時按全部整理就只做它們。另外「全部整理時,一次要送超過 N 支影片的先不整理」(預設 300,0 = 不限,記在這個瀏覽器裡):MoviePilot 一次預覽、整理的是一整季(或整個資料夾),幾千集的劇一次送過去,它會吃掉幾 GB 記憶體,可能被系統停掉。先把其他的做完,大的之後再處理。
MoviePilot 連不上時:全部整理途中 MoviePilot 連不上(被系統停掉、正在重新啟動),Mi302 會等它恢復(最多 15 分鐘),有回應後再等 1 分鐘,然後重做同一個,不算跳過。預覽、整理到一半斷線或等太久的,它可能還在背景做那一個,不重送:那一個記成跳過或失敗,等它有回應再做下一個,不會一直疊上去。結果會寫中途斷線了幾次;常常這樣的話看 MoviePilot 的日誌和機器的記憶體。本機安裝(不是 Docker)的 MoviePilot,前端(3000 埠)在後端忙到沒回應健康檢查時會自己停掉,之後一直連不上;這種情況把 Mi302 的「MoviePilot 網址」改成後端的 3001 埠(例如 http://127.0.0.1:3001)。全部整理在做的時候,不能單獨整理或刪除,也不能「問 MoviePilot 檢查」;檢查在跑的時候,也不能開始全部整理。「整理完後,沒有影片留下的舊資料夾移到 115 回收站」在「全部整理到」下面,兩種做法都照它。
和 MoviePilot 網頁「檔案管理 → 整理」一樣是整個資料夾送:裡面的影片、字幕、音軌一起整理,照 MoviePilot 的格式命名。預覽後每一部分旁邊顯示它認成什麼,例如「→ 凡人修仙传 第 2 季(174 個)」「→ 虚天战纪(電影)(2 個)」;認錯的在那一部分指定,再預覽一次。常見的是名稱裡的「预计第二季度」:MoviePilot 會認成第 2 季,Mi302 發現和媒體庫裡的季不一樣時會提醒。
Mi302 另外擋 MoviePilot 自己沒有擋的:
- 已經照格式命名的檔案(新位置和原本一樣)不送;會把同步目錄裡的檔案搬出同步目錄的也不送(整理後會從媒體庫消失)。一個資料夾裡有不送的檔案時,改成只送其他影片(一支一支送,字幕跟著同名的影片走)。所以資料夾大多是好的、只有幾集檔名不標準時,只會動那幾集。
- MoviePilot 那個媒體庫目錄的覆蓋模式是「保留最新」時,在同一個資料夾裡改名的不送:目標還不存在時,它會先刪掉目標資料夾裡同一集的其他版本,來源檔案也在那裡,會一起被刪。要整理這些,先把覆蓋模式改成「不覆蓋」。
- 兩個檔案整理到同一個位置:提醒只會留一個。
- 認成別部片:資料夾名裡的 TMDB 編號(例如 CMS 寫的
[tmdb=287013])錯了時,MoviePilot 照編號查到別部片,整理下去整部劇會搬進別部片的資料夾。Mi302 看到這兩種情況會提醒並寫出那個編號:檔名有集號、卻被認成電影(那個編號不是劇集,它改查同一個編號的電影,例如「仙剑奇侠传」被認成 1916 年的「The Ragamuffin」);認成的片名不在資料夾名、檔名、媒體庫的名稱裡,年份也差超過一年(例如 2018 年的「斗罗大陆」被認成 2023 年的「斗罗大陆Ⅱ绝世唐门」)。只有片名不同(英文資料夾認成中文片名)或只差年份的不算。在那一部分指定正確的 TMDB 編號,再預覽一次就不再提醒。 - MoviePilot 預覽某個檔案只說「整理任务处理失败,请稍后重试」時,原因只寫在它的日誌裡,常見是目錄設定對不上;Mi302 會加上這個提示。
- 認不出集號的(番外、合集、預告片…,寫「未识别到文件集数」)MoviePilot 不會整理,留著的話整理時照舊不動它;旁邊有大小和「刪掉這支」,不要的話只把這一支移到 115 回收站(在 115 可以還原),本機的 strm 和媒體庫裡的跟著拿掉,同一個資料夾的其他檔案不動。刪掉後全部整理就不會再因為它跳過整部劇。
- 原本就不在同步目錄裡的(例如「待整理」),新位置在同步目錄外只提醒「Mi302 不會替它產生 strm」。
MoviePilot 的預覽不查目標是不是已經有同名檔案,真的整理時才失敗「媒体库存在同名文件」;之前失敗過的,它還會照上次的計畫在背景重試。所以 Mi302 預覽時到 115 上看目標資料夾:已經有同名檔案、覆蓋模式是「不覆蓋」的(整理到「同一層」或指定的資料夾時都是這樣)不送,寫「目標已經有同名的檔案…這支多半是重複的」,並列出目標那一份和這支的大小。一樣大的話,按那個檔案旁邊的「刪掉這支」:只把這一支移到 115 回收站(在 115 可以還原),本機的 strm 和媒體庫裡的跟著拿掉,目標那一份不動;那個媒體庫目錄會覆蓋的(「覆蓋」「按大小覆蓋」「保留最新」)照送,提醒會蓋掉或照規則留一個。
執行
按「整理」或底部的「執行」,預覽過的在背景整理,照預覽時的指定。MoviePilot 有這些檔案成功整理過的紀錄時(預覽會寫有幾條),和它的網頁一樣「重新整理」:清掉舊紀錄;舊紀錄是複製、連結整理的,舊的目標檔案也會刪掉。不這樣的話它會當成「已整理過」直接跳過,預覽卻看不出來。進度顯示在卡片上方(「瀏覽 115」頁也看得到),可以按「停止」:已經送給 MoviePilot 的這一批做完,還沒送的不送,也不清舊資料夾;重新預覽會接著做剩下的。115 每秒只能處理幾個請求,一支影片搬移、改名要好幾個,幾百集的資料夾要十分鐘以上。完成後:
裝了 MoviePilot 的「Mi302 整理助手」外掛(1.1.0 起)時,預覽的新名字由它照 MoviePilot 的規則算,幾百集幾秒,名字和 MoviePilot 整理的一樣。資料夾結構已經對、只是名字不照格式的,預覽會寫「只需要改名」,執行時交給外掛直接改名(一個檔案一個請求,比整理流程快很多);要搬位置、加季資料夾、併進別的資料夾的照舊交給 MoviePilot 整理。見 MoviePilot 整合。
- 開著「整理完後,沒有影片留下的舊資料夾移到 115 回收站」(預設開)時,搬空的舊資料夾連同裡面剩下的 nfo、圖片移到回收站,可以在 115 還原;外面那層以片名命名的資料夾(例如「H-画江湖之天罡-2023-[tmdb=1221210]」)搬空了也一起。還有影片的(跳過的、失敗的)保留,可以用「重複檔案」處理。移之前會確認資料夾還在原本的位置,MoviePilot 已經自己刪掉的就不動。這個開關記在這個瀏覽器。
- MoviePilot 把某些檔案放進它的整理佇列在背景做(例如之前失敗過、它照上次的計畫重試)時,結果寫「MoviePilot 背景處理」,不算整理好也不算失敗,成功或失敗看 MoviePilot 的「整理記錄」。整理完約 20 秒後的增量同步照樣會跑,但它多半還沒做完:這些檔案的本機 strm 要等它做完之後的下一次增量同步(自動的定時同步,或手動按「增量同步」)才跟著搬。MoviePilot 整理完通知媒體伺服器(Mi302)只會重新掃描本機,不會搬 strm。
- MoviePilot 略過的檔案(已整理過、集數定位對不上這支、目標已經有同一集…)沒有搬,結果標「略過」並另外算「MoviePilot 略過」,原因照它說的寫,它有建議做法時附在後面(「MoviePilot 建議:…」)。有略過的那一次不顯示成綠色的「完成」;全部整理時這種資料夾記成「要看一下的」,寫「MoviePilot 略過了 N 支」。
- 本機寫著
-1的舊 nfo 刪掉,約 20 秒後跑增量同步,本機的 strm 跟著搬。同步、掃描完,整理好的就不會再列出來。
刪除
不想整理的,按那一列的「刪除…」。都是送進 115 回收站(在 115 可以還原),本機的 strm、nfo 和媒體庫裡的跟著拿掉。要用掃碼登入 115(cookie)才能刪;115 正在同步、或 MoviePilot 正在整理時要等它做完。
- 劇集:列出整部劇在媒體庫裡的每一集,照季分組。預設只勾認不出集號的;集號是從檔名猜的通常是真的集,只是檔名不標準,整理比刪掉好。可以一次勾「認不出集號的」「集號不對的(含猜的)」「整部劇每一集」,或「全不選」。「刪完沒有影片留下的話,劇集資料夾也移到 115 回收站」(預設勾):刪完 Mi302 到 115 上確認資料夾裡真的沒有影片了,才連同剩下的 nfo、圖片一起移走。「整部劇刪掉…」:劇集資料夾整個移到回收站,裡面每個檔案都一起,包括沒進媒體庫的。
- 電影、瀏覽 115 加進來的資料夾:整個(資料夾,或沒有自己資料夾的那一支)移到回收站。
115 回收站
115 上刪掉的檔案會先留在 115 的回收站,在 115 還能還原,Mi302 刪重複檔案時也是送進這裡。「115 網盤」頁的「115 回收站」卡片:
- 按上方的「回收站」打開時才讀取,列出每個項目的檔名、大小、刪除時間和原本在哪個資料夾,一頁 50 個。「重新整理」再讀一次。
- 按「清空回收站…」永久刪除回收站裡的全部項目。清空之後在 115 也救不回來。
清空要確認兩次:
- 在確認框輸入「清空」。輸入別的字就不做。
- 只有掃碼登入(cookie)時,再填 115 的安全密鑰(6 位數字)。在 115 的「帳號安全 → 安全密鑰」關掉了清空回收站要密鑰的話,留空就好。
有 115 開放平台 授權時,Mi302 用開放平台清空,不用安全密鑰;開放平台出錯才改用 cookie。清空的事會寫進日誌。
下面的「Mi302 刪掉的」卡片列出 Mi302 自己送進 115 回收站的:重複檔案、空資料夾、瀏覽 115、整理 115 網盤、整理後清掉的舊資料夾,各有名稱、從哪裡刪的、時間、大小和原本的路徑,可以只看一種,一頁 50 筆,最多留 5000 筆。要還原時照這裡的名稱到 115 的回收站找。這是 Mi302 記的,不用連 115;115 回收站清空之後這裡的紀錄還在,但檔案已經救不回來。
重複檔案
「整理」分頁的「重複和大檔案」卡片,找出 115 上重複的影片、刪掉多的,也列出佔空間的大檔案。一次「掃描」同時找三種,分成三頁:
| 頁 | 怎麼算重複 | 預設 |
|---|---|---|
| 完全相同 | SHA1(檔案內容的指紋)和大小都一樣,檔名不同也認得出來 | 建議保留一份,其餘預先勾選 |
| 不同版本 | 媒體庫裡同一部電影或同一集,檔案卻不同,例如 1080p 和 2160p | 都不勾,由你挑 |
| 大檔案 | 不是重複:1 GB 以上的影片,照大小、電影或劇集篩選 | 都不勾,由你挑 |
掃描
- 範圍:預設是同步任務的 115 目錄。按「改選 115 目錄…」可以選任何目錄,例如整個網盤
/。 - 掃描:按「掃描」,Mi302 列出範圍內所有影片。115 列檔案時本來就附上 SHA1,四萬支影片大約四十次請求。不在同步目錄裡的檔案,會另外查一次它所在資料夾的路徑。遇到限流一樣會熔斷。
- 看結果:上方顯示兩種重複各有幾組、照建議刪各可以省多少,以及 1 GB 以上的影片有幾支。每一組一張卡片,可以省最多空間的在前面,一頁 20 組,可以搜尋。
完全相同
- 每組建議保留一份:本機有 strm 的優先,其次檔名編號格式完整的,再來最早上傳的;其餘預先勾選,可以逐個改。
- 檔名編號格式完整:劇集要有
S01E02、1x02這種季和集都寫明的編號,電影要有年份。只寫了集號的(EP05、第5集、10.xxx)算不完整,清單上標「檔名編號不完整」。 - 每一份標出 115 上的路徑、上傳時間,以及「建議保留」「有 strm」「不在同步目錄」「有觀看紀錄」。
- 清單上同一部劇合成一列(本機的 strm 在媒體庫裡是哪一部劇的那幾組),寫明幾集有完全相同的檔案、幾個檔案、照建議刪可以省多少,點劇名展開每一集;劇名右邊的「照建議勾選」「刪這部劇勾選的」一次處理整部劇。電影、不在媒體庫的一組一列。分頁照列數算。
不同版本
-
怎麼認同一部:電影看 tmdbid(刮削過的 nfo 裡有),沒有就看片名和年份;劇集看同一部劇的同一季同一集。只看同步任務裡、有 strm 的檔案,媒體庫才認得出是哪一部。
-
不知道第幾集的不比:媒體庫裡沒有集號、或 nfo 寫著
-1又從檔名認不出來的集都不列。115 上的檔名看得出集號、卻和媒體庫的對不上時也不列,免得刪錯。舊版會把刮削時沒認出集號的整季當成同一集,更新後舊的結果會清掉,頁面上會提醒重新「掃描」。 -
不算重複的:分段檔(CD1、Part 2)、一個檔案好幾集(E01E02、E01-02)。導演剪輯版、加長版這類版本名不同的是不同剪輯,分開算。全都一模一樣的放在「完全相同」。
-
清單上同一部劇合成一列:劇名、幾集有不同版本、幾個檔案、照建議刪可以省多少,點劇名展開每一集(展開後劇名旁寫勾了幾個)。劇名右邊的「照建議勾選」「刪這部劇勾選的」一次處理整部劇;每一集還是可以自己勾、自己刪。電影一部一列,不用展開。分頁照「部」算。
-
每個版本標出解析度、HDR 或杜比視界、編碼、第一條音軌、音軌和字幕數、大小。畫質先看已經提取的媒體資訊(見媒體資訊與探測),沒有的從檔名猜,並標「看檔名」。
-
檔案內容不同,所以預設都不勾。建議保留哪一份,看操作列的「建議保留」怎麼選:
選項 建議保留 1080P(沒有再 4K)(預設) 1080P;沒有就 4K;都沒有就留剩下最高的 4K(沒有再 1080P) 4K;沒有就 1080P,再沒有就留剩下最高的 解析度最高的 解析度最高的 解析度一樣時保留檔名編號格式完整的,再來佔空間小的,再一樣時保留最早上傳的;看不出解析度的排最後。換選項時已找到的結果當場重算,不用重新找。每組的「照建議勾選」勾那一組,上方的「全部照建議勾選」勾全部(包含還沒翻到的頁面),例如選「1080P(沒有再 4K)」再按「全部照建議勾選」,每一組就只留 1080P。
大檔案
- 同一次掃描順便記下 1 GB 以上的影片(115 列檔案時就有大小,不多花請求),大的在前,一頁 20 支。
- 上方選「大於」多少(1、2、5、10、20、40、60、100 GB,記在這個瀏覽器裡)和種類:電影和劇集、只看電影、只看劇集、不在媒體庫的;也可以搜尋檔名或路徑。清單上方寫著符合的有幾支、共多大。預設大於 20 GB;上方統計的「支 1 GB 以上(全部)」是掃描記下的全部,清單只列符合條件的。刪除的確認框會寫明條件。
- 每一支標出大小、解析度、HDR、編碼、音軌(有媒體資訊看媒體資訊,沒有看檔名)、電影還是劇集,以及「還有 N 個其他版本」(同一部片或同一集還有別的檔案,見上面的不同版本)、「有觀看紀錄」。
- 不是重複,所以都不勾,也不必留一份。逐個勾,或按「勾選符合條件的全部」(包含還沒翻到的頁面);換大小、種類或搜尋時,「符合條件的全部」會取消,免得勾到沒看過的。
- 刪掉的從媒體庫拿掉。標著「還有其他版本」的,觀看紀錄轉到別的版本;沒有的,觀看紀錄就沒了。
刪除
- 清單上方有一條操作列:「全部照建議勾選」(大檔案是「勾選符合條件的全部」)「全部取消勾選」(每一頁都有,包含還沒翻到的頁面),以及寫著勾了幾個、共多大的「刪除勾選的 N 個」按鈕;清單最下面也有同一個按鈕。
- 有搜尋時,「全部照建議勾選」只勾符合搜尋的那幾組,刪除也只刪這幾組裡勾選的,沒搜到的組不動;確認框會寫明是照哪個搜尋。
- 「刪除勾選的」處理目前這一頁籤的所有組,包含還沒翻到的頁面;每組的「刪這一組勾選的」只處理那一組。確認框寫明數量和大小,超過 50 個再確認一次。重複的每組至少要留一份(大檔案不用)。
- 檔案送進 115 回收站,需要時在 115 還原;清空回收站(見115 回收站)之後就還原不了。一次請求送一百個。
- 清單是上次掃描時的樣子,所以刪之前 Mi302 向 115 重新列一次上次的範圍(和掃描一樣,不是一個一個查):同一組裡要保留的那幾份至少還有一份在,才刪;要保留的已經不在了(在 115 App、MoviePilot 那邊被刪掉)就不刪,並請你重新掃描。已經不在 115 上的從清單拿掉;列不出來就一個都不刪。
- 本機的 strm 和同名的 nfo、海報、字幕、
X-mediainfo.json跟著刪(不看「跟著刪」的設定),再只重新掃描受影響的劇或電影。 - 被刪那一份的觀看紀錄(看過、續播進度、收藏)轉到保留的那份,每個使用者分開算。大檔案轉到同一部片的別的版本、或完全相同的另一份,都沒有就沒了。
- 刪掉的檔案記在「115 網盤 → 回收站」的「Mi302 刪掉的」,有名稱和原本的路徑,方便到 115 回收站找回;卡片最下面的「看刪除紀錄」直接跳過去,只列重複檔案。
- 找重複、刪除進行中可以按「停止」:找重複停下後保留上次的結果;刪除做完手上這一批(最多 100 個)就停,已經送進回收站的留在回收站。
- 刪除要用掃碼登入(cookie);只用開放平台登入時不能刪。
- 結果是按「掃描」那一刻的狀態。115 上有移動、改名、刪除的話,先重新掃描一次再刪。
空資料夾
「整理」分頁的「空資料夾」卡片,找出 115 上底下沒有影音檔的資料夾,勾選後移到 115 回收站。常見的是整理後留下的舊資料夾:影片已經搬走,只剩 nfo、海報、字幕,或完全是空的。
什麼算空資料夾
- 整個資料夾(含子資料夾)裡沒有影片,也沒有音樂、外掛音軌:完全是空的,或只剩 nfo、圖片、字幕、文字檔這類東西。影音檔看副檔名,常見的影片格式(包括 strm、DVD 的 vob、VCD 的 dat)和音樂格式都算,寧可少列。
- 只列最外面那一層:一部劇的資料夾整個沒有影片,就列劇的資料夾(刪的時候裡面的季一起走),不再一季一季列;有影片的劇裡一個空的季,就列那一季。
- 這些不列:
- 範圍本身、115 最上層的資料夾(例如
/影視)。 - 同步任務的 115 目錄、MoviePilot 目錄設定裡存儲是 115 的下載目錄和媒體庫目錄,以及它們的上層。MoviePilot 的目錄設定要連得上 MoviePilot 才讀得到,讀不到時卡片上會提醒。
- 藍光、DVD 原盤的一部分:路徑上有
BDMV、VIDEO_TS、CERTIFICATE這類資料夾,或和BDMV、VIDEO_TS放在同一層的。 - 一小時內剛有變動的:可能是 MoviePilot 剛建好、影片還沒搬進去,或還在下載。
- 範圍本身、115 最上層的資料夾(例如
掃描
- 範圍:預設是同步任務的 115 目錄。按「改選 115 目錄…」可以選任何目錄,例如「待整理」或整個網盤
/。 - 掃描:按「掃描」,Mi302 先用 115 的「導出目錄樹」一次拿到範圍裡所有資料夾和檔案的名稱,再列一次所有檔案(附大小;目錄樹分不出最底層的是檔案還是空資料夾),從這兩份資料算出哪些是空資料夾、裡面有什麼、多大,不一個一個列資料夾;四萬支影片的媒體庫大約一兩百次請求。範圍是整個網盤
/時,最上層的資料夾一個一個掃。要用掃碼登入(cookie)。導出失敗的目錄這次不掃(清單上留著上次的結果),不改成逐層列目錄:幾千個資料夾一個一個列會被 115 限流。115 正在同步時不能掃描(同步也要導出目錄樹,115 同時只做一個),等同步完成。 - 確認:每個上一層列一次,拿到這些資料夾的 id 和修改時間;只有子資料夾裡也有檔案的,才把那個資料夾整個列一遍算大小。這些一個一個列的請求至少間隔 1 秒(「每列一個 115 目錄前等待的秒數」比較大就照它),熔斷剛恢復時再放慢;遇到限流一樣會熔斷。
- 看結果:上方顯示有幾個空資料夾、裡面的檔案共多大,以及有幾個因為上面的原因沒列。清單照路徑排,一頁 50 個,可以搜尋路徑。每一個標出「完全是空的」或裡面有幾個檔案、資料夾,大小、修改時間和前幾個檔名;裡面的檔案加起來超過 100 MB 的,大小標成黃色,看一下是不是不只 nfo、圖片(例如壓縮檔)。「打開」在「瀏覽 115」裡看那個資料夾。
刪除空資料夾
- 逐個勾,或按「全選」勾符合搜尋的全部(包含還沒翻到的頁面);改搜尋時「全選」會取消,免得勾到沒看過的。操作列寫著勾了幾個、裡面的檔案共多大。
- 按「刪除勾選的」,確認框寫明數量,超過 50 個再確認一次。在背景照上一層一組一組處理,可以按「停止」,做完手上這一個就停。
- 刪之前再到 115 上確認一次:每個上一層重新導出一次目錄樹、列一次(不一個一個列),還在原本的上一層、名稱沒變、一小時內沒有變動、裡面還是沒有影音檔,才連同裡面的 nfo、圖片送進 115 回收站,需要時在 115 還原。確認不過的不刪,卡片上「沒刪的」列出原因;導出失敗的那一組這次不刪;搬走、改名或裡面有影音檔了的,從清單拿掉。
- 同步目錄裡的,本機對應的資料夾裡 Mi302 下載的 nfo、圖片跟著刪(其他檔案不動),空了就連資料夾一起刪,再重新掃描那些位置。
- MoviePilot 正在整理(整理 115 網盤的執行、全部整理)或 115 正在同步時不能刪,等它做完;刪除進行中也不能開始整理。
- 刪除要用掃碼登入(cookie);只用開放平台登入時不能刪。
- 結果是按「掃描」那一刻的狀態。115 上有變動的話,先重新掃描一次再刪。
熔斷
115 的防火牆很敏感,被限流之後還繼續發請求只會被封更久。所以 115 限流或登入失效時,Mi302 先停下背景工作:同步和媒體資訊探測。
| 限流 | 登入失效 | |
|---|---|---|
| 怎麼判斷 | 115 回 HTTP 405 或 429、錯誤碼 770004,或訊息含 访问上限、访问被阻断、操作太频繁、请求过于频繁、登录异常、Too Many Requests |
錯誤碼 99、990001,或訊息含 请重新登录、登录失效、登录已过期、登录超时 這類字眼 |
| 停多久 | 45 分鐘,期滿自動恢復 | 直到重新掃碼登入、貼上新的 cookie,或登出 |
| 網頁顯示 | 黃色提示「115 限流,背景同步暫停中,約 N 分鐘後再試(原因)。播放不受影響。」 | 紅色提示「115 登入失效,請重新掃碼登入(原因)」 |
熔斷期間:
- 同步不會開始,同步結果寫著原因。正在跑的同步遇到限流時立刻停下,剩下的任務這次不跑。
- 排程先不跑,媒體資訊探測也停下。
- 播放不經過熔斷,照常向 115 取直鏈。
- 熔斷的狀態存在資料庫:重新啟動 Mi302(更新、重開機)之後冷卻期照算,不會一啟動又去打 115。
提示顯示在「115 網盤」分頁和「概覽」頁的帳號卡片,以及「整理」分頁的「媒體資訊」卡片。
限流恢復後的一小時,媒體資訊探測先放慢:前 30 分鐘取直鏈的間隔拉長 4 倍、每小時上限降成四分之一,再 30 分鐘是 2 倍和一半,之後恢復正常。同步下載中繼資料的間隔也跟著拉長,其他照常。放慢時「媒體資訊」卡片會寫「熔斷剛恢復,先放慢 N 倍」。
其他設定
- 「每列一個 115 目錄前等待的秒數」(
p115.strm.request_delay,預設 0.2):逐層列目錄、個別查資料夾路徑、找空資料夾時,每次請求前等幾秒。太快可能被 115 限制。在「115 網盤」分頁的「同步選項」。 p115.timeout(預設 15 秒):呼叫 115 的逾時秒數。只能改設定檔,要重新啟動。
所有鍵的說明見設定檔參考。