Skill: unclecheng-li/bilibili-danmaku-analyzer-v1 (version 1.0.0)

--- name: bilibili-danmaku-sentiment-analysis description: "B站视频弹幕舆情与节奏分析。输入B站视频链接，自动提取弹幕数据，通过大模型分析弹幕的舆情倾向、情感演变、节奏热度分布等。" description_zh: "B站弹幕舆情分析，解读弹幕节奏与情感演变" description_en: "Bilibili danmaku sentiment and rhythm analysis with LLM" --- # B站弹幕舆情分析 Skill 专注于**弹幕舆情与节奏分析**的智能工具，输入B站视频链接，自动提取弹幕数据并生成专业的分析提示词，供大模型深度解读舆情走向、情感演变和互动节奏。 ## 核心功能 - ✅ **弹幕提取** - 提取视频所有弹幕（滚动、底端、顶端等全部类型） - ✅ **时间分段分析** - 将弹幕按视频时间轴分10段，便于分析节奏变化 - ✅ **情感统计概览** - 统计正面/负面/疑问关键词占比 - ✅ **弹幕采样整理** - 每段精选代表性弹幕，生成结构化分析数据 - ✅ **Markdown分析报告** - 自动生成完整的Markdown格式舆情分析报告 - ✅ **专业分析提示词** - 生成可直接使用的大模型分析提示词 - ✅ **无需登录** - 使用B站公开API，完全免费 ## 前置条件 ### 1. 环境要求 - Python 3.8+ - 网络可访问 B站 API - 大模型对话能力（用于生成分析结果） ### 2. 依赖安装 ```bash pip install requests ``` ## 使用方式 ### 对话中使用 ``` @skill://B站弹幕舆情分析 请分析这个视频的弹幕舆情：https://www.bilibili.com/video/BV1xx97xx9xx ``` ### 命令行使用 ```bash # 提取弹幕并生成分析数据 python main.py "https://www.bilibili.com/video/BV1xx97xx9xx" # 指定输出目录 python main.py "https://www.bilibili.com/video/BV1xx97xx9xx" -o /path/to/output # 使用BV号 python main.py "BV1xx97xx9xx" ``` ## 工作流程 ``` 输入B站视频链接 │ ▼ 1. 提取BV号 (正则匹配) │ ▼ 2. 获取视频信息 (标题、UP主、时长、CID等) │ ▼ 3. 获取弹幕数据 (XML/压缩格式) │ ▼ 4. 数据整理与分析 ├── 按时间分段（10段） ├── 统计弹幕类型分布 ├── 情感关键词统计（正面/负面/疑问） └── 每段采样代表性弹幕 │ ▼ 5. 生成分析提示词 └── 输出结构化提示词供大模型分析 ``` ## 输出内容 ### 1. 视频信息 - 标题、BV号、UP主、时长、弹幕总数 ### 2. 弹幕统计概览 - 弹幕类型分布（滚动/底端/顶端等） - 正面关键词占比 - 负面关键词占比 - 疑问句占比 ### 3. 时间分段弹幕（10段） 每段包含： - 时间范围 - 弹幕数量 - 精选弹幕样本（每段最多10条） ### 4. 大模型分析提示词 生成结构化的分析提示词，包含以下维度： #### 舆情分析 - 整体情感倾向 - 情感演变轨迹 - 情感峰值时段 #### 节奏分析 - 高能预警点 - 讨论热度分布 - 弹幕密度变化 #### 内容特征 - 主要话题 - 梗与玩梗 - 用户互动类型 #### 舆情风险点 - 潜在负面点 - 风险预警 ## 技术实现 ### 核心API接口 | 数据 | 接口URL | 参数 | |------|---------|------| | 视频信息 | `https://api.bilibili.com/x/web-interface/view?bvid={bvid}` | bvid | | 弹幕数据 | `https://api.bilibili.com/x/v1/dm/list.so?oid={cid}` | oid(视频cid) | ### 请求头设置 ```python DEFAULT_HEADERS = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36...', 'Referer': 'https://www.bilibili.com/', 'Origin': 'https://www.bilibili.com' } ``` ### 情感关键词 **正面关键词**: 牛、强、棒、好、赞、顶、泪目、感动、喜欢、爱、甜、炸、绝、完美、厉害、超 **负面关键词**: 烂、差、垃圾、废物、蠢、尴尬、难、崩、无语、失望、难看、无聊、扯、假 **疑问关键词**: ？、?、怎么、为什么、什么、如何、是不是、能不能 ## 输出文件 ### JSON格式 (`xxx_弹幕分析数据.json`) ```json { "video": { "bvid": "BV1xx97xx9xx", "title": "视频标题", "owner": "UP主名称", "duration": 600, "duration_str": "10:00" }, "statistics": { "total_count": 1234, "type_distribution": {"滚动": 1000, "底端": 200, "顶端": 34}, "positive_keyword_count": 150, "negative_keyword_count": 50, "question_keyword_count": 80, "positive_rate": 12.15, "negative_rate": 4.05, "question_rate": 6.48 }, "time_segments": [...], "sampled_danmakus": [...] } ``` ### 分析提示词文件 (`xxx_分析提示词.txt`) 可直接复制给大模型的完整分析提示词，包含： - 视频信息 - 弹幕统计 - 分段弹幕内容 - 分析要求（舆情、节奏、内容特征、风险点） ### Markdown分析报告 (`xxx_弹幕舆情分析报告.md`) 自动生成的完整Markdown格式分析报告，包含： #### 报告结构 - **视频信息**: 标题、BV号、UP主、时长、弹幕总数 - **弹幕统计概览**: 类型分布、正面/负面/疑问关键词占比 - **弹幕时间分布**: 密度分布图、高密度时段TOP3 - **分时段弹幕详情**: 每段代表性弹幕样本 - **舆情分析**: 整体情感倾向、情感峰值时段、高能预警点 - **节奏分析**: 弹幕密度变化特征 - **主要发现**: 弹幕内容特征总结 - **风险提示**: 舆情风险预警 - **总结**: 核心发现总结 #### 报告示例 ```markdown # B站视频弹幕舆情与节奏分析报告 ## 视频信息 | 项目 | 内容 | |------|------| | 标题 | xxx | | BV号 | BV1xx | | 弹幕总数 | 1234 条 | ## 弹幕统计概览 | 指标 | 数值 | |------|------| | 正面关键词占比 | 10.39% | | 负面关键词占比 | 3.78% | ## 弹幕时间分布 | 时段 | 弹幕数 | 密度 | |00:00-01:13 | 201 | ######---- | |01:13-02:27 | 165 | #####----- | ## 舆情分析 **整体情感倾向**: 正面 **结论**: 观众对该视频的整体情感倾向为正面... ``` ## 脚本参数 | 参数 | 说明 | 示例 | |------|------|------| | `url` | B站视频链接或BV号 | `BV1ky97B9Efn` | | `-o, --output` | 输出目录 | `-o ./output` | ## 注意事项 1. **无需登录**: 脚本使用B站公开API，无需登录即可提取弹幕 2. **弹幕采样**: 为控制数据量，每段时间弹幕最多采样20条 3. **频率限制**: 建议控制请求频率，避免触发风控 4. **大模型分析**: 脚本仅生成分析提示词，实际分析需大模型完成 ## 故障排除 | 问题 | 原因 | 解决 | |------|------|------| | 获取弹幕为0 | CID获取失败或视频无弹幕 | 检查网络或视频有效性 | | 412/403错误 | 风控拦截 | 添加延时或稍后重试 | | 视频信息获取失败 | BV号无效 | 检查链接格式是否正确 | ## 文件结构 ``` B站弹幕舆情分析/ ├── SKILL.md # 本说明文件 ├── _skillhub_meta.json # Skill元数据 ├── main.py # 核心脚本 └── requirements.txt # Python依赖 ``` --- ## 实际案例 ### 案例：三十五年的《宇宙级安全声明》弹幕舆情分析 **用户输入**： ``` @skill://B站弹幕舆情分析 请分析这个视频的弹幕舆情：https://www.bilibili.com/video/BV1csDuBREjo ``` **执行过程**： 1. **提取BV号**：`BV1csDuBREjo` 2. **获取视频信息**： - 标题：三十五年的《宇宙级安全声明》，东大，开始撤回！ - UP主：老王聊天 - 时长：12:17 3. **获取弹幕**：通过CID调用弹幕接口，获取到 **1800 条**弹幕 4. **数据整理**： - 按时间分10段 - 统计情感关键词：正面187次，负面68次，疑问182次 - 每段采样代表性弹幕 5. **生成输出文件**： - JSON数据文件 - 分析提示词文件 - **Markdown分析报告** ← 核心新增功能 **分析结果**： | 指标 | 数值 | |------|------| | 弹幕总数 | 1800 条 | | 正面关键词占比 | 10.39% | | 负面关键词占比 | 3.78% | | 正面/负面比 | 2.75 倍 | | 整体情感倾向 | 正面 | | 最高密度时段 | 11:03-12:17 (290条) | **弹幕密度分布**： ``` | 时段 | 弹幕数 | 密度 | |00:00-01:13 | 201 | ######---- | |01:13-02:27 | 165 | #####----- | |02:27-03:41 | 146 | #####----- | |03:41-04:54 | 216 | #######--- | |04:54-06:08 | 99 | ###------- | |06:08-07:22 | 136 | ####------ | |07:22-08:35 | 216 | #######--- | |08:35-09:49 | 201 | ######---- | |09:49-11:03 | 130 | ####------ | |11:03-12:17 | 290 | ########## | ← 高潮阶段 ``` **输出成果**： - ✅ 成功提取 1800 条弹幕 - ✅ 自动生成 Markdown 分析报告 - ✅ 报告包含完整舆情分析（视频信息、统计概览、时间分布、舆情分析、节奏分析、风险提示、总结） **报告预览**（部分）： ```markdown # B站视频弹幕舆情与节奏分析报告 ## 视频信息 | 项目 | 内容 | |------|------| | 标题 | 三十五年的《宇宙级安全声明》，东大，开始撤回！ | | BV号 | `BV1csDuBREjo` | | 弹幕总数 | **1800 条** | ## 弹幕统计概览 | 指标 | 数值 | |------|------| | 正面关键词占比 | 10.39% | | 负面关键词占比 | 3.78% | **整体情感倾向**: 正面 ## 舆情分析 **结论**: 观众对该视频的整体情感倾向为正面，正面评价占比10.39%，负面评价占比3.78%，正面是负面的2.75倍。 ## 风险提示 **整体舆情**: 弹幕内容积极正面，未发现明显舆情风险点。 ```

path: requirements.txt
content: requests>=2.28.0

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)