115 網盤與同步 - MiCat-S/Mi302 GitHub Wiki

繁體中文 | 简体中文 | English

這一頁說明怎麼登入 115 網盤、把 115 的資料夾同步成本機的 .strm 檔,以及增量同步、全量同步、「跟著刪」和熔斷各自怎麼運作,還有怎麼瀏覽 115 上的資料夾、把不對的資料夾交給 MoviePilot 整理、轉存別人的 115 分享、從阿里雲盤秒傳,以及清空 115 回收站。

管理網頁的「115 網盤」分頁上方有「帳號」「同步」「離線下載」「轉存分享」「阿里雲盤秒傳」「整理 115 網盤」「回收站」七個按鈕,點哪個就只顯示那一組卡片,下次打開回到上次看的那個。「同步」裡是「同步任務」「同步」「同步選項」三張卡片。「瀏覽 115」在側欄另外一頁。

登入 115

Mi302 自己就能登入 115,不需要 MoviePilot 或其他 115 工具。登入狀態存在資料庫(data/library.db),不寫進設定檔。

掃碼登入

  1. 打開管理網頁的「115 網盤」分頁。
  2. 在「帳號」卡片按「掃碼登入」。
  3. 用手機 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:

  1. 在「帳號」卡片展開「改用貼上 cookie」。
  2. 把 cookie 貼進「115 cookie」,格式像 UID=…; CID=…; SEID=…。
  3. 按「儲存 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 的人才用得到。

  1. 在「帳號」卡片展開「進階:掃碼佔用的裝置類型、115 開放平台」。
  2. 填 AppID,按「授權」。
  3. 用手機 115 App 掃描並授權。

授權後,查目錄、列目錄、找新檔案和取直鏈會先走開放平台,失敗再改用掃碼或 cookie 登入。token 大約兩小時到期,快到期時 Mi302 會自動續期;115 拒絕續期時要重新授權。按「取消授權」可以取消。AppID 可以預先填好,按同一區的「儲存裝置類型和 AppID」存起來(p115.open_app_id)。

讀生活事件和導出目錄樹只能用掃碼或 cookie 登入。只用開放平台時,增量同步只依修改時間補抓新檔案,全量同步改成一層一層列目錄。

同步任務

一個同步任務把一個 115 目錄對到一個本機資料夾。在「115 網盤」分頁的「同步任務」卡片:

  1. 「115 目錄」:填 115 上的路徑,例如 /影視/電影,或按「瀏覽」選。
  2. 「放到本機資料夾」:填伺服器上的資料夾,例如 /media/movies/115,或按「瀏覽」選。
  3. 按「新增任務」。

規則:

  • 本機資料夾要填完整路徑,以 / 開頭。
  • 兩個任務的本機資料夾不能相同,也不能一個在另一個裡面,不然刪除多餘的 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 裡的位址:

  1. 「同步選項」的「strm 裡的伺服器網址」(p115.strm.base_url),有填就用它。
  2. 你上次打開「115 網盤」分頁或按同步時,瀏覽器網址列上的位址。所以請用播放器也連得到的位址開管理網頁,例如 http://192.168.1.10:8096,不要用 localhost。
  3. 都沒有時用 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 對網盤裡每個操作的紀錄。增量同步分兩步:

  1. 讀生活事件。Mi302 讀上次同步之後的事件。同一個檔案有好幾個事件時只看最後一個,那就是它現在的狀態。
    • 上傳、接收、複製,或從同步目錄外面移進來:產生 strm。整個資料夾移進來時,會列出裡面的檔案。
    • 在同步目錄裡移動、改名(檔案或資料夾):本機的 strm 跟著搬。同名的 nfo、海報、字幕和 X-mediainfo.json(例如 MoviePilot 刮削的)也一起搬,不必重新刮削。資料夾搬到已經存在的資料夾時兩邊合併,目的地已有的同名檔案不會被蓋掉。
    • 刪除,或移出同步目錄:開了「跟著刪」時,刪掉本機的 strm 和它的中繼資料;沒開時不動。
    • 瀏覽、加星標、加標籤這類不改變檔案的事件略過。
  2. 依修改時間補抓。請 115 列出同步目錄裡上次同步之後修改過的檔案(往前多看 10 分鐘),補上沒有產生事件的上傳,例如離線下載、第三方工具上傳。清單由新到舊,看到舊檔案就停,通常一次請求就夠。

生活事件只給檔案 id。所以 Mi302 在全量同步時記下每個 115 檔案、資料夾對應的本機路徑,增量同步靠這份對照表找到本機原本的位置。

全量同步

全量同步分三步:

  1. 導出目錄樹。請 115 產生整個同步目錄的目錄樹,跟 115 網頁上的「導出目錄樹」一樣,一次拿到所有資料夾和檔案的名稱。這個檔案暫時放在 115 根目錄,讀完就刪掉;刪除失敗時日誌裡會記下檔名,可以自己到 115 根目錄刪掉。Mi302 最多等 115 產生 15 分鐘。
  2. 列出所有檔案。一次列出同步目錄底下所有檔案的 pickcode、大小和所在資料夾,每次請求 1150 個。
  3. 對上路徑。目錄樹只有名稱,檔案清單只有資料夾 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 的「雲下載」),不經過這台機器,也不佔這台機器的頻寬。

  1. 在「連結」貼上要下載的,一行一個。只有種子的 info hash(40 個十六進位字元)也可以,會自動變成磁力連結。看不懂的那幾行不送,送完會說有幾行沒送。
  2. 「存到」填 115 上的資料夾,或按「選擇…」挑;空白就存到 115 預設的「雲下載」資料夾。上次用的會記在這個瀏覽器。
  3. 按「加入下載」。115 已經有同一個任務時,那一個會寫「任務已存在」。

下面的「下載任務」列出 115 上的雲下載任務:名稱、大小、進度(下載中的每 5 秒更新一次)、完成或失敗。完成的可以按「打開資料夾」到「瀏覽 115」看下載好的檔案。右上角是這個月還能加幾個任務(115 的配額,會員等級不同)。

  • 存到同步目錄裡的:下載完,下一次增量同步就會產生 strm、進媒體庫(有開 MoviePilot 刮削的,也會送去刮削)。
  • 存到其他地方的:可以在「瀏覽 115」按「整理…」交給 MoviePilot 整理到媒體庫。
  • 刪除…:只刪任務紀錄,下載好的檔案留在 115。要連檔案一起刪,在確認框裡輸入「刪檔案」。
  • 重新加入:失敗的任務有這個按鈕。會先刪掉那一筆失敗的紀錄(不動檔案,不然 115 會說「任務已存在」),再用原來的連結加回原來的資料夾。
  • 清除已完成、清除失敗的:一次清掉那一種任務的紀錄,不動檔案。

授權了 115 開放平台 就用它的雲下載介面;沒有就用掃碼登入的 cookie。cookie 用的是 115 手機 App 的介面,沒有官方文件,115 改了介面時會失敗,錯誤訊息照實顯示。

轉存分享

「115 網盤」頁的「轉存分享」把別人的 115 分享連結轉存到自己的 115,再交給 MoviePilot 整理進媒體庫。分享出來的資料夾、檔名五花八門,所以每個分享先放進一個暫存的子資料夾、一定經過 MoviePilot 整理,不直接轉存進媒體庫。

  1. 在「連結」貼上分享,一行一個:https://115.com/s/sw…?password=abcd,或 115cdn.com、anxia.com 的網址都可以;訪問碼寫在同一行也認得(访问码:abcd、提取碼: abcd、密码 abcd,簡繁都行)。不用訪問碼的分享照樣讀。同一個分享貼兩次只算一個,看不懂的行不讀,會說有幾行。

  2. 按「讀取分享」:每個分享列一塊,有標題、總大小,和最上層的每個資料夾、檔案,前面有勾選框(預設全勾,不要的取消勾)。讀不到的(分享不存在、過期、訪問碼不對)照 115 的原文顯示。最上層超過 1000 項的只列前 1000 項。

  3. 「存到」選一個 115 上已經有的資料夾(不會自動建立),每個分享在它底下建一個子資料夾,名稱是分享的標題;同名的已經有了就叫「標題 (分享碼)」。上次用的記在這個瀏覽器。建議用同步目錄外的資料夾,例如 /待整理:存到同步目錄裡的,整理之前增量同步會先替原始檔名產生 strm,網頁會提醒。

  4. 「整理到」選轉存完怎麼辦:

    • MoviePilot 目錄設定裡存儲是 115 的媒體庫目錄(例如「日番(/cms/电视剧/日番)」):在背景請 MoviePilot 預覽,沒問題的直接整理(改成 MoviePilot 的命名格式、搬進那個媒體庫目錄,不刮削),整理完搬空的暫存子資料夾移到 115 回收站;有問題的跳過,留在整理 115 網盤給你看。
    • 「其他 115 資料夾…」:自己填或選一個 115 資料夾,一樣整理過去。
    • 「先不整理」:只加進「整理 115 網盤」(釘在清單最上面,和「瀏覽 115」的「整理這個資料夾…」一樣),自己預覽、整理。

    選擇記在這個瀏覽器。讀不到 MoviePilot 的目錄設定時只剩後兩項;還沒設定 MoviePilot 時只能先不整理。選單下面寫原因。

  5. 按「轉存」,確認後在背景一個分享一個分享做(關掉網頁也會做完):建子資料夾、請 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。

  1. 用 OpenList 的取得工具拿 refresh token:打開 https://api.oplist.org/,選阿里雲盤掃碼,用阿里雲盤 App 掃,複製 refresh token。
  2. 在「阿里雲盤帳號」卡片貼上,按「登入」。登入後顯示帳號名稱和有哪些盤(資源庫、備份盤)。
  3. 沒填自己的 client id 時,refresh token 會送給 OpenList 的服務(https://api.oplist.org/alicloud/renewapi)換 access token,和 OpenList 自己的做法一樣。不想這樣,在「進階」填自己在阿里雲盤開放平台申請的 Client ID、Client Secret(refresh token 也要用那個應用拿),Mi302 就直接向阿里雲盤換;線上 API 的網址也可以改(要 https://)。見設定檔參考。
  4. refresh token 存在 Mi302 的資料庫,不寫進設定檔。每次換 access token 阿里雲盤都會給一個新的 refresh token,Mi302 會存回去。「登出」清掉。

秒傳

  1. 「來源」填阿里雲盤上的路徑,最上層是「資源庫」「備份盤」,例如 /資源庫/電視劇/凡人修仙传;或按「選擇…」一層一層點(會顯示那一層有幾個檔案)。
  2. 「只要影片和字幕」(預設開,記在這個瀏覽器):nfo、圖片這些不傳。
  3. 按「讀取」:顯示幾支影片、幾個字幕、總大小、阿里雲盤沒給 SHA1 的、超過 115 單檔上限的(這兩種不能秒傳,會略過),和前 200 支的清單。一次最多 5000 支。
  4. 「存到」選 115 上已經有的資料夾,建議用同步目錄外的,例如 /待整理(理由和轉存分享一樣)。Mi302 在它底下建一個新資料夾,名稱是來源的名稱(一支檔案時是去掉副檔名的檔名),同名的已經有了就加「 (2)」「 (3)」;子資料夾照原本的結構建。
  5. 「整理到」和轉存分享同一套選單:選了媒體庫目錄或其他 115 資料夾,秒傳完在背景交給 MoviePilot 整理,整理完搬空的資料夾移到 115 回收站;「先不整理」只加進「整理 115 網盤」。選擇記在這個瀏覽器,和轉存分享分開記。
  6. 按「開始秒傳」,確認後在背景一支一支做(關掉網頁也會做完),兩次 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 也救不回來。

清空要確認兩次:

  1. 在確認框輸入「清空」。輸入別的字就不做。
  2. 只有掃碼登入(cookie)時,再填 115 的安全密鑰(6 位數字)。在 115 的「帳號安全 → 安全密鑰」關掉了清空回收站要密鑰的話,留空就好。

有 115 開放平台 授權時,Mi302 用開放平台清空,不用安全密鑰;開放平台出錯才改用 cookie。清空的事會寫進日誌。

下面的「Mi302 刪掉的」卡片列出 Mi302 自己送進 115 回收站的:重複檔案、空資料夾、瀏覽 115、整理 115 網盤、整理後清掉的舊資料夾,各有名稱、從哪裡刪的、時間、大小和原本的路徑,可以只看一種,一頁 50 筆,最多留 5000 筆。要還原時照這裡的名稱到 115 的回收站找。這是 Mi302 記的,不用連 115;115 回收站清空之後這裡的紀錄還在,但檔案已經救不回來。

重複檔案

「整理」分頁的「重複和大檔案」卡片,找出 115 上重複的影片、刪掉多的,也列出佔空間的大檔案。一次「掃描」同時找三種,分成三頁:

頁 怎麼算重複 預設
完全相同 SHA1(檔案內容的指紋)和大小都一樣,檔名不同也認得出來 建議保留一份,其餘預先勾選
不同版本 媒體庫裡同一部電影或同一集,檔案卻不同,例如 1080p 和 2160p 都不勾,由你挑
大檔案 不是重複:1 GB 以上的影片,照大小、電影或劇集篩選 都不勾,由你挑

掃描

  1. 範圍:預設是同步任務的 115 目錄。按「改選 115 目錄…」可以選任何目錄,例如整個網盤 /。
  2. 掃描:按「掃描」,Mi302 列出範圍內所有影片。115 列檔案時本來就附上 SHA1,四萬支影片大約四十次請求。不在同步目錄裡的檔案,會另外查一次它所在資料夾的路徑。遇到限流一樣會熔斷。
  3. 看結果:上方顯示兩種重複各有幾組、照建議刪各可以省多少,以及 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 剛建好、影片還沒搬進去,或還在下載。

掃描

  1. 範圍:預設是同步任務的 115 目錄。按「改選 115 目錄…」可以選任何目錄,例如「待整理」或整個網盤 /。
  2. 掃描:按「掃描」,Mi302 先用 115 的「導出目錄樹」一次拿到範圍裡所有資料夾和檔案的名稱,再列一次所有檔案(附大小;目錄樹分不出最底層的是檔案還是空資料夾),從這兩份資料算出哪些是空資料夾、裡面有什麼、多大,不一個一個列資料夾;四萬支影片的媒體庫大約一兩百次請求。範圍是整個網盤 / 時,最上層的資料夾一個一個掃。要用掃碼登入(cookie)。導出失敗的目錄這次不掃(清單上留著上次的結果),不改成逐層列目錄:幾千個資料夾一個一個列會被 115 限流。115 正在同步時不能掃描(同步也要導出目錄樹,115 同時只做一個),等同步完成。
  3. 確認:每個上一層列一次,拿到這些資料夾的 id 和修改時間;只有子資料夾裡也有檔案的,才把那個資料夾整個列一遍算大小。這些一個一個列的請求至少間隔 1 秒(「每列一個 115 目錄前等待的秒數」比較大就照它),熔斷剛恢復時再放慢;遇到限流一樣會熔斷。
  4. 看結果:上方顯示有幾個空資料夾、裡面的檔案共多大,以及有幾個因為上面的原因沒列。清單照路徑排,一頁 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 的逾時秒數。只能改設定檔,要重新啟動。

所有鍵的說明見設定檔參考。