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 的超时秒数。只能改配置文件,要重启。

所有键的说明见配置文件参考。