Files
danmu_api/config.yaml.example
T

237 lines
10 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 弹幕 API YAML 配置示例
# 复制此文件为 config.yaml 并根据需要修改配置
#
# 配置优先级(从高到低):
# 1. 系统环境变量
# 2. .env 文件
# 3. config.yaml 文件
#
# 热更新说明:
# - Docker 环境:修改宿主机的 config.yaml 文件后,容器会自动检测并重新加载配置(无需重启容器)
# - Node.js 本地环境:修改 config.yaml 文件后,应用会自动检测并重新加载配置(无需重启应用)
# - Cloudflare/Vercel/Netlify/Edgeone:需要在平台的环境变量设置中修改,然后重新部署
# ==================== 基础配置 ====================
# API 访问令牌(用于鉴权)
# 默认值:87654321
TOKEN: "87654321"
# 其他服务器地址(第三方弹幕服务器)
# 默认值:https://api.danmu.icu
OTHER_SERVER: "https://api.danmu.icu"
# ==================== VOD 配置 ====================
# VOD 服务器配置(支持多服务器)
# 格式:名称@URL,名称@URL,...
# 示例:VOD_SERVERS=金蝉@https://zy.jinchancaiji.com,789@https://www.caiji.cyou,听风@https://gctf.tfdh.top
# 如果不指定名称,会自动生成 vod-1, vod-2 等名称
# 默认值:金蝉@https://zy.jinchancaiji.com,789@https://www.caiji.cyou,听风@https://gctf.tfdh.top
VOD_SERVERS: "金蝉@https://zy.jinchancaiji.com,789@https://www.caiji.cyou,听风@https://gctf.tfdh.top"
# VOD 服务器返回模式
# 可选值:all(返回所有站点结果)、fastest(只返回最快的站点结果)
# 默认值:fastest
# 说明:
# - all: 搜索时会并发查询所有配置的 VOD 站点,返回所有结果(结果较多)
# - fastest: 搜索时只返回首先响应成功的 VOD 站点结果(结果较少,避免重复)
VOD_RETURN_MODE: "fastest"
# VOD 服务器请求超时时间(毫秒)
# 默认值:10000(10秒)
# 建议值:5000-15000
# 说明:防止慢速或失效的采集站阻塞整个搜索过程(单个请求超时)
# 由于 fastest 模式只返回最快响应的站点,可以设置较大的超时时间给慢速站点更多机会
VOD_REQUEST_TIMEOUT: 10000
# ==================== Bilibili 配置 ====================
# Bilibili Cookie(用于访问需要登录的内容)
# 默认值:空(不使用 Cookie)
# BILIBILI_COOKIE: ""
# ==================== 优酷配置 ====================
# 优酷并发数(最大:16)
# 默认值:8
YOUKU_CONCURRENCY: 8
# ==================== 源排序配置 ====================
# 数据源查询顺序
# 可选值:360, vod, tmdb, douban, tencent, youku, iqiyi, imgo, bilibili, renren, hanjutv, bahamut
# 默认值:360,vod,renren,hanjutv
SOURCE_ORDER: "360,vod,renren,hanjutv"
# ==================== 平台排序配置 ====================
# 平台优先级排序(用于自动匹配)
# 默认值:空(自动匹配)
# 可选值:qiyi, bilibili1, imgo, youku, qq, renren, hanjutv, bahamut
# PLATFORM_ORDER: ""
# ==================== 剧集标题过滤 ====================
# 剧集标题过滤正则表达式(用于过滤花絮、预告等非正片内容)
# 默认值:下方完整规则
# 说明:
# - 如果设置了此环境变量,将完全覆盖默认的过滤规则(不是增量添加)
# - 格式:使用 | 分隔多个关键词,例如:预告|花絮|特辑|番外
# - 可以直接修改下方规则,按需增删关键词
# 示例:只过滤预告和花絮
# EPISODE_TITLE_FILTER: "预告|花絮"
EPISODE_TITLE_FILTER: "(特别|惊喜|纳凉)?企划|合伙人手记|超前(营业|vlog)?|速览|vlog|reaction|纯享|加更(版|篇)?|抢先(看|版|集|篇)?|抢鲜|预告|花絮(独家)?|特辑|彩蛋|专访|幕后(故事|花絮|独家)?|直播(陪看|回顾)?|未播(片段)?|衍生|番外|会员(专享|加长|尊享|专属|版)?|片花|精华|看点|速看|解读|影评|解说|吐槽|盘点|拍摄花絮|制作花絮|幕后花絮|未播花絮|独家花絮|花絮特辑|先导预告|终极预告|正式预告|官方预告|彩蛋片段|删减片段|未播片段|番外彩蛋|精彩片段|精彩看点|精彩回顾|精彩集锦|看点解析|看点预告|NG镜头|NG花絮|番外篇|番外特辑|制作特辑|拍摄特辑|幕后特辑|导演特辑|演员特辑|片尾曲|插曲|高光回顾|背景音乐|OST|音乐MV|歌曲MV|前季回顾|剧情回顾|往期回顾|内容总结|剧情盘点|精选合集|剪辑合集|混剪视频|独家专访|演员访谈|导演访谈|主创访谈|媒体采访|发布会采访|采访|陪看(记)?|试看版|短剧|精编|Plus|独家版|特别版|短片|发布会|解忧局|走心局|火锅局|巅峰时刻|坞里都知道|福持目标坞民|观察室|上班那点事儿|周top|赛段|直拍|REACTION|VLOG|全纪录|开播|先导|总宣|展演|集锦|旅行日记|精彩分享|剧情揭秘"
# ==================== 屏蔽词配置 ====================
# 屏蔽词列表(用于过滤弹幕内容)
# 默认值:空
# BLOCKED_WORDS: ""
# ==================== 弹幕去重配置 ====================
# 分钟内合并去重(最大值:30,0 表示不去重)
# 默认值:1
GROUP_MINUTE: 1
# ==================== 限制弹幕总数 ====================
# 等间隔采样限制弹幕总数(单位为k,即千:默认 0,表示不限制弹幕数)
# 默认值:0
DANMU_LIMIT: 0
# ==================== 弹幕转换配置 ====================
# 是否将顶部和底部弹幕转换为浮动弹幕
# 默认值:false(不转换)
# 说明:启用后,顶部弹幕(ct=5)和底部弹幕(ct=4)会被转换为浮动弹幕(ct=1)
# 可选值:true, false
CONVERT_TOP_BOTTOM_TO_SCROLL: false
# 是否将彩色弹幕转换为纯白弹幕
# 默认值:false(不转换)
# 说明:启用后,所有非白色的弹幕颜色会被转换为纯白色(16777215)
# 可选值:true, false
CONVERT_COLOR_TO_WHITE: false
# 是否将繁体弹幕转换为简体,目前只对巴哈姆特源生效
# 默认值:true(转换)
# 说明:禁用后,不进行巴哈弹幕繁转简
# 可选值:true, false
DANMU_SIMPLIFIED: true
# ==================== 弹幕输出格式配置 ====================
# 弹幕输出格式(全局默认格式)
# 默认值:json
# 可选值:json, xml
# 说明:
# - json: 返回 JSON 格式的弹幕数据(默认)
# - xml: 返回 XML 格式的弹幕数据(兼容弹弹play等客户端)
# 注意:可通过 API 查询参数 ?format=xml 或 ?format=json 覆盖此设置
# 示例:GET /api/v2/comment/10001?format=xml
DANMU_OUTPUT_FORMAT: "json"
# ==================== 限流配置 ====================
# API 限流:1分钟内同一IP最大请求次数
# 默认值:3(1分钟内最多3次请求)
# 设置为 0 表示不限流
RATE_LIMIT_MAX_REQUESTS: 3
# ==================== 集标题过滤开关 ====================
# 是否在手动选择接口中启用集标题过滤
# 默认值:false(禁用)
# 说明:GET /api/v2/bangumi/{id} 和 GET /api/v2/search/anime 接口会过滤掉预告、花絮等特殊集
# 如需启用过滤,设置为 true
# 可选值:true, false
ENABLE_EPISODE_FILTER: false
# ==================== 搜索匹配模式 ====================
# 是否启用严格标题匹配模式
# 默认值:false(宽松模糊匹配)
# 说明:
# - false(默认): 模糊匹配,只要标题包含搜索词即可(例如搜索"遮天"会匹配"古惑仔3之只手遮天")
# - true: 严格匹配,只匹配标题开头或完全匹配(例如搜索"遮天"只匹配"遮天"、"遮天 第一季"等)
# 可选值:true, false
STRICT_TITLE_MATCH: false
# 是否在match自动匹配时将外语标题转换成中文标题,适用于网盘没有刮削的资源
# 默认值:false(不转换)
# 说明:需配合TMDB_API_KEY使用
# 可选值:true, false
# TITLE_TO_CHINESE=false
# ==================== 代理配置 ====================
# 代理/反代地址(用于访问受限资源)
# 默认值:空(不使用代理/反代)
# 格式:
# - 设置为代理为 http://proxy-server:port 或 https://proxy-server:port
# - 设置为反代为 RP@http://proxy-server:port 或 RP@https://proxy-server
# 说明:目前只对巴哈姆特生效,如果使用 Docker 部署并且访问不了 bahamut 源,请配置代理/反代地址
# 反代教程参考:https://github.com/wan0ge/bahamut-api-proxy
# PROXY_URL: ""
# ==================== TMDB 配置 ====================
# TMDB API Key(用于巴哈姆特源的译名转换)
# 默认值:空(不使用 TMDB)
# 说明:配置后并行从 TMDB 获取日语原名搜索巴哈
# 如果TMDB条目类型不是动画或制作地区不是jp则不会进行巴哈搜索
# 可以解决巴哈译名不同导致的搜索无结果问题(例如:间谍过家家 vs 間諜家家酒)
# 获取方法参考:https://www.ugnas.com/tutorial-detail/id-226.html
# TMDB_API_KEY: ""
# ==================== 日志配置 ====================
# 日志级别(可选值:error, warn, info)
# 默认值:info
# 说明:
# - error: 仅显示错误日志
# - warn: 显示错误和警告日志
# - info: 显示所有日志(包括详细的调试信息)
# 建议:生产环境使用 warn,开发/调试时使用 info
LOG_LEVEL: "info"
# ==================== 缓存配置 ====================
# 搜索结果缓存时间(分钟)
# 默认值:1
# 说明:避免短期内重复的不必要 API 请求,同时保证获取最新的结果列表
# 可根据需要调整:Vercel/Cloudflare 建议 1-5 分钟,Docker 可设置 5-30 分钟
# 设置为 0 表示不缓存
SEARCH_CACHE_MINUTES: 1
# 弹幕缓存时间(分钟)
# 默认值:1
# 说明:弹幕数据的缓存时间,独立于搜索结果缓存
# 可根据需要调整
COMMENT_CACHE_MINUTES: 1
# 是否记住手动选择结果
# 默认值:true
# 说明:是否记住手动选择结果,用于match自动匹配时优选上次的选择
# 用于存储查询关键字上次选择的 animeId,下次 match 自动匹配时优先选择该 anime
REMEMBER_LAST_SELECT: true
# 用户偏好记忆缓存大小限制
# 默认值:100
# 说明:lastSelectMap 最多保存的条目数,超过限制时删除最早的条目(FIFO)
# 用于存储查询关键字上次选择的 animeId,下次 match 自动匹配时优先选择该 anime
MAX_LAST_SELECT_MAP: 100
# ==================== Redis 配置(Upstash)====================
# Upstash Redis REST URL(用于缓存)
# 默认值:空(不使用 Redis)
# UPSTASH_REDIS_REST_URL: ""
# Upstash Redis REST Token
# 默认值:空
# UPSTASH_REDIS_REST_TOKEN: ""