# B站用户的SESSDATA,用于API认证 SESSDATA: "Cookie里的SESSDATA字段值" # 视频摘要配置 # CACHE_EMPTY_SUMMARY: 控制是否缓存无摘要内容的视频结果 # 官方状态码含义: # - result_type=0: 没有摘要 # - result_type=1: 仅存在摘要总结 # - result_type=2: 存在摘要以及提纲 # # - 设置为true时:缓存所有视频摘要结果,包括无摘要的视频(result_type=0) # 优点:减少对B站API的重复请求,提高响应速度,降低被限流风险 # 缺点:占用更多数据库空间 # - 设置为false时:只缓存有实际摘要内容的视频结果(result_type=1或2) # 优点:节省数据库空间 # 缺点:对于无摘要的视频,每次都会重新请求B站API CACHE_EMPTY_SUMMARY: true # 原始历史记录数据的输入文件夹 input_folder: "history_by_date" # 清理后的历史记录数据的输出文件夹 output_folder: "output" # SQLite数据库文件名 db_file: "bilibili_history.db" # 导入日志文件名,用于记录上次导入的位置 log_file: "last_import_log.json" # 分类配置文件名 categories_file: "categories.json" # 每日观看数量统计文件夹 daily_count_folder: "daily_count" # 热力图模板文件名 heatmap_template: "template.html" # 清理数据时需要移除的字段列表 fields_to_remove: - long_title # 长标题 - uri # 统一资源标识符 - badge # 徽章 - current # 当前状态 - total # 总数 - new_desc # 新描述 - is_finish # 是否完成 - live_status # 直播状态 # 邮件配置 email: smtp_server: smtp.qq.com smtp_port: 587 sender: "xxxx@qq.com" password: "xxxx" # QQ邮箱授权码 receiver: "xxxx@qq.com" # 日志文件夹 log_folder: "/www/wwwroot/python/logs" # yutto 下载器配置 yutto: basic: # 设置下载目录 dir: "./output/download_video" # 设置临时文件目录 tmp_dir: "./output/tmp_video" # 设置大会员严格校验 vip_strict: false # 设置登录严格校验 login_strict: false resource: # 下载字幕 require_subtitle: true # 默认是否仅下载音频 only_audio: false danmaku: # 设置弹幕字体大小 font_size: 30 # 设置弹幕屏蔽关键词 block_keyword_patterns: [ ] batch: # 下载额外剧集 with_section: true # 服务器配置 server: host: "0.0.0.0" # 允许从任何IP访问 port: 8899 # 设置你想要的端口号 # HTTPS配置 ssl_enabled: false ssl_certfile: "你的fullchain.pem" ssl_keyfile: "你的privkey.pem" # API安全配置已移除 # 数据完整性校验配置 data_integrity: check_on_startup: false # 热力图配置 heatmap: # 热力图输出目录 output_dir: "" # 热力图模板文件 template_file: "template.html" # 热力图标题 title: "Bilibili 每年每日视频观看热力图" # 图表尺寸配置 chart: width: "1000px" height: "200px" # 热力图颜色配置 colors: pieces: - min: 1 max: 10 color: "#FFECF1" - min: 11 max: 50 color: "#FFB3CA" - min: 51 max: 100 color: "#FF8CB0" - min: 101 max: 200 color: "#FF6699" - min: 201 max: 9999 color: "#E84B85" # 在配置文件中添加任务超时设置 scheduler: task_timeout: 600 # 任务超时时间(秒) retry_delay: 300 # 重试延迟时间(秒) max_retries: 3 # 最大重试次数 # DeepSeek API配置 deepseek: # API密钥设置 https://platform.deepseek.com/api_keys api_key: "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" # API基础URL api_base: "https://api.deepseek.com/v1" # SSL验证设置 ssl_verify: false # 默认模型设置 default_model: "deepseek-reasoner" # 其他可选: "deepseek-chat" # 默认参数设置 default_settings: max_tokens: 8000 # 最大生成标记数 temperature: 0.7 # 温度设置(0-2.0) top_p: 1.0 # 核采样(0-1.0) frequency_penalty: 0.0 # 频率惩罚(0-2.0) presence_penalty: 0.0 # 存在惩罚(0-2.0) # 不同场景的推荐温度设置 recommended_temperatures: 通用对话: 1.3 创意写作: 1.5 代码生成: 0.0 数据抽取: 1.0 数学推理: 0.0 # DeepSeek价格信息(单位:元/百万tokens) pricing: deepseek-chat: input: standard: 1.0 # 标准时段(08:30-00:30) discount: 0.5 # 优惠时段(00:30-08:30) output: standard: 8.0 # 标准时段 discount: 4.0 # 优惠时段 deepseek-reasoner: input: standard: 1.0 discount: 0.25 output: standard: 16.0 discount: 4.0 # 视频摘要提示词配置 video_summary: # 默认提示词(不要修改这个,它用作重置) default_prompt: "# 你是一位视频摘要专家\n\n## 定位\n专注视频字幕处理与摘要生成的智能助手,具备文本纠错、语义分析和结构化摘要能力\n\n## 核心能力\n1. 文本清洗:\n - 自动检测时间轴格式(00:00 --> 00:02)\n - 修复同音字/错别字(结合前后段落语义推理)\n - 修正语法错误和断句问题\n - 保留原始时间戳标记\n\n2. 摘要生成:\n - 按时间顺序提炼关键内容节点\n - 自动标注事件发生时间范围\n - 区分主要信息与过渡性内容\n - 保持原文风格(技术讲解/故事叙述/产品演示等)\n\n## 知识储备\n- 自然语言处理技术\n- 常见中文同音字库\n- 跨领域术语库(科技/人文/商业等)\n- 视频内容结构模型(开场-发展-高潮-结尾)\n\n## 处理流程\n1. 接收原始字幕文件\n2. 执行文本预处理:\n a. 验证时间戳连续性\n b. 上下文关联修复(例:\"温馳包碗\"→\"奔驰宝马奥迪\")\n c. 合并碎片化短句\n3. 此要求很重要,这关乎生死:总结的时间戳要分布均匀,不要前面分布的很细,后面由于限制就让时间戳跨度很大,这很不好!正确做法是查看视频最后的时间戳,如果视频超过30分钟,就不建议开始按照秒做总结,而是一开始就是从00:00-xx分钟 这样总结会更均匀\n4. 此要求很重要,这关乎生死:你是总结视频内容,而不是描述每一句话,所以,无论字幕有多少,你必须将总结的小标题限制在11个以内,注意,我说的是最多只能11个,而不是要求你每个视频都要总结到11个,你应该根据视频时长和内容自行判断,且要总结完整,这很重要\n5. 请不要输出清洗后的字幕,用户只需要摘要内容,用户不关心字幕内容\n6. 生成结构化摘要:\n - 时间锚点 00:02\n - 关键事件描述\n - 重要数据/名称标注\n - 必须在每个时间锚点总结的标题前面加入贴切的emoji表情符号,每个标题的emoji不能重复\n7. 最终交付格式:\n 整体总结\n 分段标题\n 00:00-02:30 主题引入\n • 核心事件说明\n • 关键数据支撑 \n 此要求很重要,这关乎生死:你输出的时间锚点必须是原始数据存在的,且最小单位截止到秒即可,注意不要输出md相关的符号,比如 # * 等" # 用户自定义提示词(可以修改这个) custom_prompt: "# 你是一位视频摘要专家\n\n## 定位\n专注视频字幕处理与摘要生成的智能助手,具备文本纠错、语义分析和结构化摘要能力\n\n## 核心能力\n1. 文本清洗:\n - 自动检测时间轴格式(00:00 --> 00:02)\n - 修复同音字/错别字(结合前后段落语义推理)\n - 修正语法错误和断句问题\n - 保留原始时间戳标记\n\n2. 摘要生成:\n - 按时间顺序提炼关键内容节点\n - 自动标注事件发生时间范围\n - 区分主要信息与过渡性内容\n - 保持原文风格(技术讲解/故事叙述/产品演示等)\n\n## 知识储备\n- 自然语言处理技术\n- 常见中文同音字库\n- 跨领域术语库(科技/人文/商业等)\n- 视频内容结构模型(开场-发展-高潮-结尾)\n\n## 处理流程\n1. 接收原始字幕文件\n2. 执行文本预处理:\n a. 验证时间戳连续性\n b. 上下文关联修复(例:\"温馳包碗\"→\"奔驰宝马奥迪\")\n c. 合并碎片化短句\n3. 此要求很重要,这关乎生死:总结的时间戳要分布均匀,不要前面分布的很细,后面由于限制就让时间戳跨度很大,这很不好!正确做法是查看视频最后的时间戳,如果视频超过30分钟,就不建议开始按照秒做总结,而是一开始就是从00:00-xx分钟 这样总结会更均匀\n4. 此要求很重要,这关乎生死:你是总结视频内容,而不是描述每一句话,所以,无论字幕有多少,你必须将总结的小标题限制在11个以内,注意,我说的是最多只能11个,而不是要求你每个视频都要总结到11个,你应该根据视频时长和内容自行判断,且要总结完整,这很重要\n5. 请不要输出清洗后的字幕,用户只需要摘要内容,用户不关心字幕内容\n6. 生成结构化摘要:\n - 时间锚点 00:02\n - 关键事件描述\n - 重要数据/名称标注\n - 必须在每个时间锚点总结的标题前面加入贴切的emoji表情符号,每个标题的emoji不能重复\n7. 最终交付格式:\n 整体总结\n 分段标题\n 00:00-02:30 主题引入\n • 核心事件说明\n • 关键数据支撑 \n 此要求很重要,这关乎生死:你输出的时间锚点必须是原始数据存在的,且最小单位截止到秒即可,注意不要输出md相关的符号,比如 # * 等"