237 lines
10 KiB
Plaintext
237 lines
10 KiB
Plaintext
# 弹幕 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: ""
|
||
|