支持两种模式:1) 实时直播录制(30分钟自动分段 + 弹幕录制);2) 录播回放切片(弹幕密度 + 语义分析)。基于主播个性化模板的高质量切片工具。
适合录制正在进行的直播,自动分段防止硬盘溢出。
# 完整工作流:录制 + 自动切片
python scripts/record_workflow.py "https://live.bilibili.com/55"
# 仅录制(30分钟分段)
python scripts/smart_record.py "https://live.bilibili.com/55" -t 30
# 录制完成后切片
python scripts/auto_clipper.py --list ./recordings/recorded_list_xxx.json核心特性:
- ✅ 30分钟自动分段 - 防止硬盘溢出,方便管理
- ✅ 实时弹幕录制 - 同时保存弹幕内容和配置
- ✅ 优雅停止 - Ctrl+C 立即停止,不丢失数据
- ✅ 自动精彩片段切片 - 录制完成后自动生成3个推荐片段
适合下载已结束的直播回放进行分析和切片。
# 下载回放
python scripts/download_stream.py "https://www.bilibili.com/video/BVxxxxx"
# 分析弹幕
python scripts/analyze_danmaku.py ./downloads/BVxxxxx.danmaku.xml
# 智能切片
python scripts/clip_and_burn.py --video ./downloads/BVxxxxx.mp4 --recommendations ./recommendations.json- ✅ 支持 Bilibili 和 YouTube 平台
- ✅ 同时下载视频、弹幕(XML)、字幕(SRT)
- ✅ 自动保存元数据
- ✅ 支持 BV 号和直播间链接
- ✅ 解析 B站弹幕 XML 格式
- ✅ 计算弹幕密度分布(30秒窗口)
- ✅ 识别高密度时段
- ✅ 提取高频关键词
- ✅ 输出 JSON 分析结果
- ✅ 解析 SRT 字幕文件
- ✅ 按话题自动分段
- ✅ 识别兴奋度评分(1-5)
- ✅ 提取关键语录/名言
- ✅ 提取关键词
- ✅ 综合评分算法:
- 弹幕密度(30%)
- 语义质量(40%)
- 模板匹配(20%)
- 时长合适(10%)
- ✅ 自动生成切片标题
- ✅ 输出推荐 JSON
- ✅ YAML 模板配置
- ✅ 交互式模板创建
- ✅ 支持风格、梗、切片配置
- ✅ 上传模板设置
- ⏳ FFmpeg 精确剪辑
- ⏳ 弹幕烧录(需 ASS 转换)
- ⏳ 字幕烧录
- ⏳ 批量处理
- ✅ Bilibili 上传(biliup)
- ✅ 语义标题生成
- ✅ 简介自动生成(含主播链接)
- ✅ 批量上传
- ✅ 30分钟自动分段 - 防止硬盘溢出
- ✅ 实时弹幕录制 - 同时保存弹幕配置
- ✅ 优雅停止 - Ctrl+C 不丢失数据
- ✅ 显示录制进度 - 实时百分比
- ✅ 生成录制列表 - JSON格式
- ✅ 自动分析精彩片段 - 每段生成3个推荐
- ✅ 自动调用剪辑 - 无需手动操作
- ✅ 批量处理 - 处理所有录制分段
- ✅ 分类推荐 - 高能/搞笑/团战
- ✅ 一键录制+切片 - 完整自动化流程
- ✅ 交互式确认 - 录制完成后询问是否切片
- ✅ 状态保存 - 记录所有操作日志
stream-clipper/
├── SKILL.md ✅ 完整工作流程文档
├── README.md ✅ 项目说明
├── requirements.txt ✅ Python依赖
├── package.json ✅ npm配置(可选)
├── bin/
│ └── cli.js ✅ npm CLI入口
├── scripts/ ✅ 核心脚本
│ ├── download_stream.py ✅ 下载视频+弹幕+字幕
│ ├── analyze_danmaku.py ✅ 弹幕密度分析
│ ├── analyze_semantic.py ✅ 字幕语义分析
│ ├── smart_clipper.py ✅ 智能切片决策
│ ├── streamer_template.py ✅ 主播模板管理
│ ├── clip_and_burn.py ✅ 视频剪辑和烧录
│ ├── upload_clip.py ✅ 上传到B站
│ ├── smart_record.py ✅ 🆕 智能分段录制
│ ├── auto_clipper.py ✅ 🆕 自动精彩片段切片
│ ├── record_workflow.py ✅ 🆕 完整录制工作流
│ ├── record_live.py ✅ 🆕 基础直播录制
│ └── query_video_stats.py ✅ 🆕 视频数据查询
├── config/ ✅ 配置文件
│ └── streamer_templates.yaml ✅ 主播模板配置
└── .gitignore ✅ Git忽略配置
配置说明:
config/streamer_templates.yaml- 存放所有主播模板和上传配置 stream-clipper/ ├── SKILL.md ✅ 完整工作流程 ├── README.md ✅ 项目说明 ├── scripts/ │ ├── download_stream.py ✅ 下载模块 │ ├── analyze_danmaku.py ✅ 弹幕分析 │ ├── analyze_semantic.py ✅ 语义分析 │ ├── smart_clipper.py ✅ 智能切片 │ ├── streamer_template.py ✅ 模板管理 │ ├── clip_and_burn.py ⏳ 剪辑烧录 │ └── upload_clip.py ⏳ 上传模块 ├── config/ │ └── streamer_templates.yaml ✅ 模板配置 └── requirements.txt ⏳ 依赖列表
## 🚀 快速开始
### 安装
```bash
# 方式1: Python直接安装
pip install yt-dlp pyyaml requests biliup xmltodict
# 方式2: npm全局安装
npm install -g ET06731/stream-clipper-skill
# 一键录制 + 自动切片
python scripts/record_workflow.py "https://live.bilibili.com/55"
# 录制过程:
# 1. 每30分钟自动分段
# 2. 同时录制弹幕
# 3. 显示实时进度
# 4. 录制完成后询问是否切片# 1. 下载回放
python scripts/download_stream.py "https://www.bilibili.com/video/BVxxxxx"
# 2. 分析弹幕
python scripts/analyze_danmaku.py ./downloads/BVxxxxx.danmaku.xml
# 3. 剪辑视频
python scripts/clip_and_burn.py \
--video ./downloads/BVxxxxx.mp4 \
--recommendations ./recommendations.json \
--danmaku ./downloads/BVxxxxx.danmaku.xml
# 4. 上传到B站
python scripts/upload_clip.py ./clips --batch --template evil_neuro# 直播录制
from scripts.smart_record import LiveRecorder
recorder = LiveRecorder(output_dir="./recordings", segment_minutes=30)
recorded_files = recorder.smart_record("https://live.bilibili.com/55")
# 自动切片
from scripts.auto_clipper import AutoClipper
clipper = AutoClipper("./clips_output")
clipper.process_all_segments(video_files=recorded_files)
# 录播下载
from scripts.download_stream import StreamDownloader
downloader = StreamDownloader()
result = downloader.download("https://www.bilibili.com/video/BVxxxxx")- 弹幕密度分析 - 识别高互动时间点
- 语义分析 - 理解内容结构和精彩点
- 双维度切片 - 综合评分生成最优切片
- 主播模板 - 个性化风格配置
- 智能上传 - 自动生成含主播链接的标题和简介
详见 SKILL.md,包含7个阶段:
- 环境检测与初始化
- 下载直播回放(视频+弹幕+字幕)
- 弹幕密度分析
- 字幕语义分析
- 智能切片决策
- 执行切片和烧录
- 上传到视频平台
streamers:
neurosama:
name: "Neurosama"
description: "AI虚拟主播"
memes: ["Vedal修我!", "I'm an AI"]
clip_config:
preferred_duration: "1-3分钟"
min_duration: 45
max_duration: 300
upload_template:
title_template: "[Neuro]{topic}"
tags: ["虚拟偶像", "AI"]- 弹幕下载仅支持 Bilibili
- 需要配置 FFmpeg(带 libass 支持)用于字幕烧录
- 上传需要配置 cookies.json
- 某些模块可能需要根据实际使用调整
- 参考项目: YouTube-clipper-skill
- B站弹幕 API
- biliup 文档
基于 YouTube-clipper-skill 改进和扩展