配置文件参考 - MiCat-S/Mi302 GitHub Wiki

繁體中文 | 简体中文 | English

这一页列出配置文件 config.yaml 的每一个键:含义、默认值、允许的范围、能不能在管理页面上改,以及要不要重启。平时在管理页面上设置就好,不必直接改这个文件。

配置文件在哪里

安装方式 位置
一键安装(Linux) /opt/mi302/config/config.yaml
一键安装(macOS) ~/Mi302/config/config.yaml
手动用 Python 运行命令时所在目录的 config.yaml

启动时可以用 -c 路径 指定配置文件。没指定时看环境变量 EMBYSERVER_CONFIG,再没有就用当前目录的 config.yaml。“设定”页最上面会显示当前用的是哪个文件。

配置文件怎么运作

  • 自动生成:第一次启动时没有配置文件,Mi302 用默认值启动,并生成一份带说明注释的配置文件。
  • 页面保存时写回:在管理页面上保存设置时,文件按模板整个重新生成,覆盖前把旧文件留成 config.yaml.bak。自己加的注释和不认识的键不会保留。
  • 直接改文件:改完后打开或刷新管理页面,Mi302 发现文件改过,就重新读取并应用。
  • 写错时:启动时配置文件格式错误(YAML 写错、少了必填的键),Mi302 不会启动。原因打印在启动时的输出里,不在日志文件里:Linux 的服务用 journalctl -u mi302 查看,macOS 和没有 systemd 的环境在 data/logs/console.log,手动运行的在终端上。运行中改坏了,页面上方会显示错误,Mi302 继续用上次读到的设置。
  • 启动时的检查:直接改的内容没经过管理页面的检查,启动时按页面保存时的规则再检查一次(见下面的“检查与范围”)。同步任务的本地文件夹不是完整路径,或两个任务的本地文件夹互相包含时,那个任务先不用;更新用的代理、GitHub 加速网址格式不对时,改好之前都不用(直连);其他检查不过的只提示。Mi302 照常启动,把问题记进日志,页面上方也会显示。修正配置文件后刷新页面就会套用。页面写回配置文件时(例如保存设置),先不用的同步任务和代理会从配置文件中去掉。
  • 不认识的键:打错字或旧版留下的键会被跳过,Mi302 记一条警告“设定档 … 底下不认得 …,已略过”,不影响启动。

要重启才生效的键

下面这些只在启动时读取,改了要重启 Mi302(一键安装的用 mi302 restart):

  • server.host、server.port、server.data_dir
  • users
  • p115.cookies

其他的键在管理页面上保存后马上生效;直接改文件的,刷新管理页面后生效。

检查与范围

在管理页面上保存,或重新读取改过的配置文件时,Mi302 会检查设置。有错的不会应用,并显示原因。超出范围的数字会自动改成最接近的允许值:

键 允许的范围
server.backup_keep 0–90
server.log_level info 或 debug,其他值当成 info
moviepilot.concurrency 1–8
moviepilot.timeout 10–3600
qbittorrent.stalled_minutes 10–10080
qbittorrent.stalled_speed 0–100000
mediainfo.concurrency 1–3
mediainfo.interval 0.5–60
mediainfo.timeout 10–3600
mediainfo.hourly_limit 0–100000

其他检查:

  • 媒体库:名称不能为空、不能重复,至少要有一个文件夹。type 不是 tvshows 的一律当成 movies。
  • 同步任务:115 目录和本机文件夹都要填;本机文件夹要是完整路径;两个任务的本机文件夹不能相同或互相包含。
  • moviepilot.url 要以 http:// 或 https:// 开头,结尾的 / 会去掉。qbittorrent.url 也一样。
  • 路径对应、路径替换里 from 或 to 为空的那一条会被跳过。
  • mediainfo.ffprobe 为空时当成 ffprobe。
  • aliyun.online_api 要以 https:// 开头或者为空(refresh token 会放在网址里发过去,不能走明文);aliyun.client_id、aliyun.client_secret 要一起填或都留空。

不在配置文件里的数据

这些存在数据库 <data_dir>/library.db 里,不写进配置文件,每天的备份会包含它们(见备份与还原):

  • 账号和密码(只存哈希)。账号创建之后,在管理页面“使用者”分页新增、改密码、删除,都不会写回配置文件。
  • 115 登录状态:扫码或粘贴的 cookie,以及 115 开放平台的 token。
  • 阿里云盘的 refresh token(在“115 网盘 → 阿里云盘秒传”登录)。
  • 在管理页面上创建的 API 密钥。
  • 115 同步的进度和对照表、自动检测到的 strm 服务器地址。
  • 观看记录、媒体信息、学到的片头片尾等。

server

键 默认值 说明 在管理页面上改
name Emby Server 播放器里显示的服务器名称 设定 → 伺服器 →“伺服器名称”
host 0.0.0.0 监听地址。0.0.0.0 是所有网卡;127.0.0.1 只有这台机器自己连得上 只能改文件,要重启
port 8096 管理页面和播放器连接用的端口 只能改文件,要重启。一键安装的也可以重新运行安装脚本加 --port,见安装
data_dir ./data 数据库、日志、备份、上传的封面所在的目录。相对路径是相对于启动 Mi302 时的工作目录(一键安装的服务是 config/),不是配置文件所在的目录 只能改文件,要重启
public_users true 播放器的登录界面是否列出用户名 设定 → 伺服器 →“播放器登入画面列出使用者名称”
log_level info info = 一般;debug = 详细,另外记录每个播放器请求 日志 →“详细模式”
backup_keep 7 每天自动备份,留最新几份,0–90;0 = 不自动备份 设定 → 备份 →“保留几份”
chinese_people true 演职人员显示中文名 设定 → 中文化 →“演职人员显示中文名”
chinese_genres true 类型显示中文(Action → 动作),繁体换成简体;关掉后重新扫描即还原 设定 → 中文化 →“类型显示中文”
intro_skip true 从播放行为学习片头片尾,给播放器“跳过片头”用 整理 → 片头片尾 → 设定 →“学片头片尾并给播放器”
allow_download true 播放器可以下载视频(要登录)。关掉后播放器不显示下载,直接访问下载地址也会被拒绝 设定 → 播放 →“允许播放器下载影片”
update_check true 每 6 小时向 GitHub 查一次有没有新版,有的话网页每一页上方提示。关掉后还是可以在网页上点“检查更新” 侧栏的版本卡片 → 版本与更新 →“自动检查更新”
update_proxy 空 检查更新、更新(git、安装依赖)用的代理,http:// 或 socks5://,例如 http://127.0.0.1:7890;空的是直连 侧栏的版本卡片 → 版本与更新 →“连不上 GitHub:代理、GitHub 加速”
update_github_proxy 空 GitHub 加速网址,例如 https://ghfast.top/,下载新版时接在 GitHub 网址前面 同上

相关页面:日志与常见问题、媒体库与扫描、片头片尾跳过、播放与外网访问、备份与还原。

users

启动时预先创建的账号。默认是 users: [],平时留空就好:第一次打开管理页面时,会让你创建管理员。

users:
  - name: admin
    password: 你的密码
    admin: true
键 默认值 说明
name 必填 账号名
password 空 密码,明文
admin false 是否为管理员。管理员才能进管理页面
  • 只能改文件,要重启。
  • 每次启动时,列表里还不存在的账号会被创建(名称不分大小写)。已经存在的账号不会被改,所以在这里改密码没有作用。
  • 在管理页面上删掉的账号会一起从这个列表去掉,下次启动不会再创建。配置文件有错、写不进去时,页面会提示,这时要自己从列表删掉。
  • 密码是明文,config.yaml.bak 和备份的 .yaml 里也有。账号建好之后,可以把这一段删掉,账号仍然在数据库里。

libraries

媒体库。默认是 libraries: [],在“媒体库”分页用“新增媒体库”或“从资料夹批量新增”创建。

libraries:
  - name: 电影
    type: movies
    paths:
      - /media/movies
  - name: 剧集
    type: tvshows
    paths:
      - /media/tv
键 默认值 说明
name 必填 媒体库名称,不能重复
type movies movies = 电影,tvshows = 剧集
paths 必填 文件夹列表,至少一个。旧版的单个 path 也认得

改了媒体库之后,只重新扫描有改动的媒体库;删掉的媒体库连同里面的条目一起移除。见媒体库与扫描。

p115

115 网盘的登录。登录请在管理页面扫码,见 115 网盘与同步。

键 默认值 说明 在管理页面上改
cookies 空 115 cookie,效果等同在管理页面上粘贴 cookie。只在启动时、而且数据库里还没有 115 登录时使用。只能包含英文字母、数字和符号,不能换行 只能改文件,要重启。页面上粘贴的 cookie 存在数据库里,不写进这里
app alipaymini 扫码登录时占用的 115 设备类型,同类型的其他登录会被踢下线。可选 alipaymini、wechatmini、tv、qandroid、ios、android、web 115 网盘 → 帐号 →“进阶:扫码占用的装置类型、115 开放平台”→“扫码登入占用的 115 装置类型”,点“储存装置类型和 AppID”,下次扫码时生效
timeout 15.0 调用 115 的超时秒数 只能改文件
open_app_id 空 115 开放平台 AppID,只有自己申请到应用的人才需要 115 网盘 → 帐号 →“进阶:扫码占用的装置类型、115 开放平台”→“AppID”,点“储存装置类型和 AppID”

p115.strm

同步成 strm 的选项。“115 网盘”分页的“同步选项”卡片改完点“储存同步选项”。

键 默认值 说明 在管理页面上改
interval 0 每隔几分钟自动增量同步;0 = 不自动,建议 5 115 网盘 → 同步选项 →“自动增量同步间隔(分钟)”
full_interval 168 每隔几小时自动全量同步;0 = 不自动,168 = 每周 115 网盘 → 同步选项 →“自动全量同步间隔(小时)”
min_size_mb 0 小于这个大小(MB)的视频不生成 strm;0 = 不限 115 网盘 → 同步选项 →“略过小于这个大小的影片(MB)”
download_metadata true 一并下载 115 上的 nfo、图片、字幕 115 网盘 → 同步选项 →“一并下载 115 上的 nfo、海报、字幕”
delete_stale false 115 上删掉或移出同步目录的视频,本机的 strm 和刮削数据也跟着删 115 网盘 → 同步选项 →“跟着删”
base_url 空 strm 里的服务器地址;空 = 自动用打开管理页面时的地址。改了之后现有的 strm 会在后台一起改写(只动本地文件) 115 网盘 → 同步选项 →“strm 里的伺服器网址”
include_name false strm 地址后面附上 ?/原文件名,方便人工辨认;改了之后现有的 strm 会一起改写 115 网盘 → 同步选项 →“strm 网址后附上原档名”
request_delay 0.2 逐层列 115 目录、单独查文件夹路径、找空文件夹时,每次请求前等几秒 115 网盘 → 同步选项 →“每列一个 115 目录前等待的秒数”
scan_after_sync true 同步完重新扫描有变动的地方 115 网盘 → 同步选项 →“同步完自动重新扫描媒体库”
tasks [] 同步任务,见下面 115 网盘 →“同步任务”

interval、full_interval 没有上限,0 或负数都表示不自动。

tasks 的格式:

p115:
  strm:
    tasks:
      - remote: /影视/电影
        local: /media/movies/115
  • remote:115 上的目录。开头没有 / 时会自动补上。
  • local:放 strm 的本机文件夹,要是完整路径,而且要在某个媒体库里。
  • 两个任务的 local 不能相同,也不能一个在另一个里面。

moviepilot

刮削交给 MoviePilot。见 MoviePilot 集成。

键 默认值 说明 在管理页面上改
url 空 MoviePilot 地址,例如 http://192.168.1.10:3000,要以 http:// 或 https:// 开头 MoviePilot → 连线 →“MoviePilot 网址”
api_token 空 MoviePilot 的“设定 → 系统 → API 令牌” MoviePilot → 连线 →“API 令牌”
username 空 MoviePilot 账号。V3 用 API 令牌就够;旧版(V2)的刮削、补全缺集、整理 115 网盘不接受令牌时才要填 MoviePilot → 连线 →“MoviePilot 帐号”
password 空 MoviePilot 密码,明文 MoviePilot → 连线 →“MoviePilot 密码”
scrape_after_sync true 同步生成新的 strm 后自动发去刮削 MoviePilot → 刮削 →“同步产生新的 strm 后自动送去刮削”(切换后马上储存)
fill_after_full_sync false 全量同步后把所有有 tmdbid 的剧发给 MoviePilot 订阅,补齐缺集 MoviePilot → 补全缺集 → 设定 →“全量同步后自动补全”
fill_interval 60 补全缺集时两个新订阅之间隔几秒(每个新订阅都会让 MoviePilot 搜一遍所有站点,一次建太多会被 Cloudflare 拦截),0–3600,0 = 不隔 MoviePilot → 补全缺集 → 设定 →“两个新订阅之间隔几秒”
fill_max_missing 0 补全缺集时,对照 TMDB 一季缺的集数超过这么多就不建订阅(例如只收了几集的长篇动画),0 = 不限 MoviePilot → 补全缺集 → 设定 →“缺超过几集的季不补”
rename_plugin true 整理 115 网盘时,预览请 MoviePilot 的“Mi302 整理助手”插件按它的规则算名字(1.1.0 起),只需要改名的文件夹交给它直接改名(要先在 MoviePilot 装好、启用;没装时照常走它的整理预览和整理) 115 网盘 → 整理 115 网盘 →“用 MoviePilot 的「Mi302 整理助手」外掛算名字、改名”
timeout 300 刮削(和其他没有自己超时的 MoviePilot 请求)每一项最多等几秒,10–3600 只能改文件
concurrency 3 同时发几项给 MoviePilot 刮削,1–8。太多可能被 TMDB 限速 MoviePilot → 连线 →“同时刮削几项”
path_mappings [] 两边看到的路径不同时:Mi302 的路径(from)→ MoviePilot 的路径(to) MoviePilot → 连线 →“路径对应”,一行一条 Mi302 的路径 => MoviePilot 的路径
moviepilot:
  path_mappings:
    - from: /media/psf/Vo
      to: /Volumes/Vo

qbittorrent

连接 qBittorrent:下载中的种子太久没速度就删掉,排在后面的接着开始。见 qBittorrent 没速度的种子。

键 默认值 说明 在管理页面上改
url 空 qBittorrent 的 WebUI 地址,例如 http://127.0.0.1:8080,要以 http:// 或 https:// 开头;空 = 不连接 MoviePilot → qBittorrent →“qBittorrent 网址”
username 空 WebUI 账号。qBittorrent 设置了本机跳过身份验证(和 Mi302 装在同一台)就不用填 MoviePilot → qBittorrent →“WebUI 账号”
password 空 WebUI 密码,明文 MoviePilot → qBittorrent →“WebUI 密码”
remove_stalled false 下载中的种子太久没速度就删掉,排在后面的接着开始;每 5 分钟检查一次 MoviePilot → qBittorrent →“自动删掉太久没速度的种子”(切换后马上保存)
stalled_minutes 60 连续多少分钟没速度算太久,10–10080。从 Mi302 看到它在下载开始算,排队、暂停的时间不算 MoviePilot → qBittorrent → 设定 →“连续几分钟没速度就删”
stalled_speed 0 这段时间的平均速度不超过多少 KB/s 算没速度;0 = 完全没下载到东西才算 MoviePilot → qBittorrent → 设定 →“平均速度不超过几 KB/s 算没速度”
delete_files true 连同下载到一半的文件一起删;false 只从 qBittorrent 移除,文件保留 MoviePilot → qBittorrent →“连同下载到一半的文件一起删”(切换后马上保存)
no_seeds_only false 只删做种数为 0 的:tracker 报告还有人做种就先不删,只列出来等;做种数降到 0 又还是没速度才删。tracker 没报告做种数时当成 0 MoviePilot → qBittorrent →“只删做种数为 0 的”(切换后马上保存)
keep_active 0 随时要有几个种子有速度在下载,0–50;不够就按队列顺序强制开始排队的(不受 qBittorrent 的队列上限限制),排队的用完就不开。0 = 不管 MoviePilot → qBittorrent → 设定 →“随时要有几个种子在下载”
force_seconds 30 强制开始后几秒内没速度就删,10–600。tracker 有正常响应却没速度才算种子有问题;tracker 没响应的只放回队列,一小时内不再试 MoviePilot → qBittorrent → 设定 →“强制开始后几秒内没速度就删”

mediainfo

用 ffprobe 探测 strm 指向的视频,写出 X-mediainfo.json。“整理”分页“媒体资讯”卡片的“设定”:开关切换后马上储存,数字栏位改完点“储存设定”。见媒体信息与探测。

键 默认值 说明 在管理页面上改
enabled false 批次探测(网页上挑视频提取、同步后自动);关闭时仍会读现成的 X-mediainfo.json 整理 → 媒体资讯 → 设定 →“批次探测”
after_sync true 同步生成新的 strm 后自动探测,要开批次探测 整理 → 媒体资讯 → 设定 →“同步产生新的 strm 后自动探测”
on_demand true 播放器打开某部片或某一集时,在后台探测它 整理 → 媒体资讯 → 设定 →“打开影片时自动探测”
concurrency 2 同时探测几项,1–3。115 同时最多 3 条连接 整理 → 媒体资讯 → 设定 →“同时探测几项”
interval 1.0 每次向 115 取直链至少间隔几秒,0.5–60 整理 → 媒体资讯 → 设定 →“取直链间隔(秒)”
hourly_limit 300 每小时最多向 115 取几次直链,0 = 不限,最多 100000 整理 → 媒体资讯 → 设定 →“每小时最多几次”
timeout 300 每一项最多等几秒,10–3600 只能改文件
ffprobe ffprobe ffprobe 的路径 只能改文件

webdav

只读的 WebDAV:播放器用 http://<主机>:<端口>/dav/ 直接浏览 115,播放时 302 到 115 直链。“设定”分页的“WebDAV”改完点“储存设定”,立即生效。见播放与外网访问。

键 默认值 说明 在管理页面上改
enabled false 开启 /dav/ 设定 → WebDAV →“开启 WebDAV”
root "" 开放哪个 115 文件夹,例如 /影视;空的 = 同步任务的 115 目录 设定 → WebDAV →“露出哪个 115 资料夹”
admin_only false 只让管理员登录(root 设成 / 时建议打开) 设定 → WebDAV →“只让管理员登入”

aliyun

阿里云盘开放平台,给从阿里云盘秒传用。refresh token 在管理页面上登录,存在数据库,不在配置文件里。“115 网盘”页“阿里云盘秒传”的“阿里云盘账号”卡片,展开“进阶”改完点“储存”,立即生效。

键 默认值 说明 在管理页面上改
client_id "" 自己在阿里云盘开放平台申请的应用;和 client_secret 都填了,Mi302 自己向 openapi.alipan.com 换 access token,refresh token 不经过别人 115 网盘 → 阿里云盘秒传 → 进阶 →“Client ID”
client_secret "" 那个应用的密钥 115 网盘 → 阿里云盘秒传 → 进阶 →“Client Secret”
online_api https://api.oplist.org/alicloud/renewapi 没填自己的 client id 时,用这个在线 API(OpenList 的服务)换 access token,会把 refresh token 发给它;要以 https:// 开头,空的 = 不用(只能用自己的 client id) 115 网盘 → 阿里云盘秒传 → 进阶 →“线上换 token 的网址”

redirect

播放时怎么处理 strm 的内容,主要给其他工具生成的 strm(例如 alist 地址或本机路径)用。“设定”分页的字段点页面下方的“储存设定”。见播放与外网访问。

键 默认值 说明 在管理页面上改
resolve_redirects false 先由服务器跟着上游的重定向走到底,再把最终地址给播放器 设定 → 其他工具产生的 strm →“由伺服器先跟着上游的重导向走到底”
resolve_timeout 10.0 跟着重定向走时的超时秒数 只能改文件
cache_ttl 90 走到的最终地址缓存几秒 只能改文件
require_auth true 播放地址是否要求登录,和官方 Emby 一样。某个播放器播不了时再关 设定 → 播放 →“播放网址要求登入”
default_container mkv strm 看不出视频格式时的默认格式 设定 → 其他工具产生的 strm →“看不出格式时预设的影片格式”
path_rules [] 把 strm 内容开头的 from 换成 to,再 302 给播放器 设定 → 其他工具产生的 strm →“路径替换”,一行一条 原本开头 => 替换成
redirect:
  path_rules:
    - from: /mnt/115
      to: http://alist:5244/d/115

api_keys

固定的 API 密钥,给其他程序以管理员身份调用 Emby API,放在 X-Emby-Token 请求头或 api_key 查询参数里。

api_keys:
  - 一串足够长的随机字符串
  • 只能改文件,改完刷新管理页面就生效,不必重启。
  • API 密钥不能用来操作管理页面(设置、备份、115 登录、账号)。
  • 在管理页面“MoviePilot”分页点“建立 API 金钥”创建的密钥存在数据库里,不会出现在这里。一般用那个就好,见 MoviePilot 集成。
⚠️ **GitHub.com Fallback** ⚠️