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 的超时秒数。只能改配置文件,要重启。
所有键的说明见配置文件参考。