← 返回
未分类

资讯通关师

多源内容一键剪藏并生成汇报/总结材料。支持 B站视频、网络博客、arXiv论文、小红书等输入源, 输出 PPT/HTML/图片 格式。逐任务弹窗选择输出类型,AI 动态分析内容生成结构化文档。 触发词:资讯通关师、剪藏、汇报文档、总结文档、生成PPT、导出HTML、导出图片。
>视频字幕提取、论文解析、博客剪藏,一键生成PPT、HTML、图片汇报
user_052e4a1f
未分类 community v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 30
下载
💾 0
安装
1
版本
#latest

概述

资讯通关师 (ZiXunTongGuanShi)

> 多源输入 · 动态分析 · 多格式输出

将任意网络内容一键转化为结构化的汇报/总结材料。

完全自包含技能。仅依赖系统已安装的 playwright-cli 命令行工具。


系统要求

组件说明
------------
playwright-cli浏览器自动化 CLI(B站/小红书需要)
Python 3.8+API 脚本运行
Node.js 20+PPT 渲染引擎
requestsHTTP 库
pptxgenjs幻灯片生成
# 快速检查
PYTHON="C:/Users/Administrator/.workbuddy/binaries/python/envs/default/Scripts/python.exe"
"$PYTHON" -c "import requests" 2>/dev/null || "$PYTHON" -m pip install requests
cd "C:/Users/Administrator/.workbuddy/binaries/node/workspace" && npm install pptxgenjs 2>/dev/null

🔄 完整工作流

Step 0: URL 类型识别
  ├── B站视频 (bilibili.com/video/... | BV...)
  ├── arXiv 论文 (arxiv.org/...)
  ├── 小红书 (xiaohongshu.com/...)
  └── 网络博客 (其他 URL)

Step 1: 逐任务弹窗选择输出格式
  对每个 URL → AskUserQuestion(多选 multiSelect: true):
    问题:请为以下内容选择输出格式
    描述:{从URL提取的标题/摘要}
    选项(MANDATORY: 必须始终展示全部 3 个选项):
      - "PPT 演示文稿" → 生成 .pptx 幻灯片
      - "HTML 汇报页" → 生成精美 HTML 网页
      - "图片" → 生成 PNG/JPG 信息图

  🔴 CRITICAL: AskUserQuestion 必须无条件展示全部 3 个选项(PPT、HTML、图片)。
  不得因模型能力判断而减少选项 — 图片始终可用(ImageGen 工具或信息图 HTML 渲染)。
  每个 URL 单独弹窗,用户可独立勾选任意组合。

Step 2: 内容提取 → 标准化 MD
  ├── B站: playwright → API → 字幕 MD
  ├── arXiv: WebFetch → 论文结构化 MD
  ├── 小红书: playwright → 笔记内容 MD
  └── 博客: WebFetch → 网页正文 MD

Step 3: AI 内容分析
  识别内容类型 → 按时长/长度梯度 → 多维度主题

Step 4: 输出生成
  ├── PPT:  PptxGenJS 直出
  ├── HTML: WorkBuddy 直出
  └── 图片: ImageGen 渲染或信息图 HTML

Step 5: 交付预览

📋 Step 0: URL 类型识别

拿到用户提供的 URL 列表后,首先判断每个 URL 的输入源类型:

URL 特征类型提取方式
--------------------------
bilibili.com/video/BV 开头B站视频playwright + bili_clip.py
arxiv.org/abs/arxiv.org/html/arXiv 论文WebFetch + 结构化解析
xiaohongshu.com/小红书笔记playwright + 浏览器提取
其他 HTTP(S) URL网络博客/文章WebFetch + MD 转换

📋 Step 1: 逐任务弹窗选择输出格式

对 Step 0 识别出的每一个 URL,分别使用 AskUserQuestion 弹窗:

问题:请为以下内容选择输出格式
描述:{从URL提取的标题/摘要}

选项(MANDATORY: 必须始终展示全部 3 个选项,multiSelect: true):
  - "PPT 演示文稿" → 生成 .pptx 幻灯片
  - "HTML 汇报页" → 生成精美 HTML 网页
  - "图片" → 生成 PNG/JPG 信息图

> 🔴 CRITICAL: AskUserQuestion 必须无条件展示全部 3 个选项。不得因为模型能力判断而减少选项。图片始终可用(通过 ImageGen 工具或信息图 HTML 渲染)。每个 URL 单独弹窗,用户可独立勾选任意组合。


📋 Step 2: 内容提取 → 标准化 MD

根据 Step 0 识别的 URL 类型,走不同提取通道。

2a. B站视频提取

🔴 三步决策流程:开浏览器 → 检测登录 → 有登录才提取。

阶段 A:打开浏览器并导航

# 1. 创建 profile 目录并打开有头浏览器
mkdir -p "$HOME/.workbuddy/playwright-profiles/bilibili"
cmd /c playwright-cli open --browser=chrome --persistent \
  --profile="C:\Users\Administrator\.workbuddy\playwright-profiles\bilibili" --headed

# 2. 导航到第一个视频的页面
cmd /c playwright-cli goto "https://www.bilibili.com/video/{BVID}/"

阶段 B:登录检测 — 关键决策节点 🔴

# 3. 检查是否存在 SESSDATA cookie(B站登录态的唯一标识)
cmd /c "playwright-cli --raw run-code --filename \
  C:/Users/Administrator/.workbuddy/skills/ZiXunTongGuanShi/scripts/check_login.js"

🔴 根据 logged_in 字段决定下一步:

  • logged_in: false → 立即停止!
  • 向用户输出提示:「请在打开的浏览器窗口中扫码登录B站,完成后告诉我。」
  • 不要继续执行后面的步骤。 等用户确认登录完成后再重新检测。
  • 提示中不要包含任何字幕提取、PPT生成等后续操作的尝试。
  • logged_in: true → 继续阶段 C。

阶段 C:提取字幕(仅在确认登录后执行)

# 4. 零落盘剪藏(cookie 通过 stdin 管道传输,不落盘)
cd "C:/Users/Administrator/.workbuddy/skills/ZiXunTongGuanShi"
cmd /c "playwright-cli --raw run-code --filename scripts/get_cookies.js" | \
  PYTHONIOENCODING=utf-8 \
  "C:/Users/Administrator/.workbuddy/binaries/python/envs/default/Scripts/python.exe" \
  scripts/bili_clip.py "{BVID}" "{OUTPUT_DIR}" --stdin

> 多视频场景:一次登录即可批量提取。对每个 BVID 重复阶段 C 的剪藏命令,无需重复打开浏览器或重新登录。

2b. arXiv 论文提取

arXiv 论文有标准化的 HTML 和 PDF 格式。优先使用 HTML 页面提取:

# 1. 从 URL 提取 arXiv ID
# https://arxiv.org/abs/2410.12345 → 2410.12345
# https://arxiv.org/html/2410.12345v1 → 2410.12345

# 2. 使用 WebFetch 获取页面内容
# 直接调用 WebFetch 工具解析 HTML 页面:
#   - 提取标题 (h1.title)
#   - 提取摘要 (blockquote.abstract)
#   - 提取作者列表
#   - 提取正文各章节

# 3. 生成标准化 MD

arXiv MD 格式模板

---
created: {date}
original_url: "{arxiv_url}"
---

# {论文标题}

## 论文信息
- **作者**: {authors}
- **发布时间**: {date}
- **分类**: {primary_category}
- **arXiv ID**: {id}

## 摘要
{abstract}

## 核心内容
{从 HTML 提取的章节内容}

---
## 相关信息
- **论文地址**: {arxiv_url}
- **PDF**: {pdf_url}
- **导出工具**: 资讯通关师

2c. 小红书笔记提取

小红书需要登录态且页面结构动态渲染,使用 playwright 浏览器提取:

# 1. 打开浏览器(如有需要,登录小红书)
cmd /c playwright-cli open --browser=chrome --persistent \
  --profile="C:\Users\Administrator\.workbuddy\playwright-profiles\xiaohongshu" --headed

# 2. 导航到笔记页面
cmd /c playwright-cli goto "{xiaohongshu_url}"

# 3. 提取笔记内容(通过 JS 从页面提取标题、正文、标签)
cmd /c playwright-cli --raw run-code "
async page => {
  await page.waitForSelector('.note-content, .content, .desc', {timeout:10000});
  return await page.evaluate(() => {
    const title = document.querySelector('.title, h1')?.innerText || '';
    const content = document.querySelector('.note-content, .content, .desc')?.innerText || '';
    const tags = [...document.querySelectorAll('.tag, .topic')].map(t => t.innerText);
    return JSON.stringify({title, content: content.substring(0, 10000), tags});
  });
}"

# 4. 生成 MD + 关闭浏览器
cmd /c playwright-cli close

2d. 网络博客提取

使用 WebFetch 工具直接获取网页内容并转为 MD:

1. 调用 WebFetch(url, prompt="提取文章的全部正文内容、标题、作者和发布时间")
2. 将返回内容包装为标准 MD frontmatter 格式
3. 如有需要,用 playwright 处理 JS 渲染的页面

博客 MD 格式模板

---
created: {date}
original_url: "{url}"
---

# {文章标题}

## 文章信息
- **作者**: {author}
- **来源**: {domain}
- **发布时间**: {date}

## 正文内容
{extracted_body}

---
## 相关信息
- **原文地址**: {url}
- **导出工具**: 资讯通关师

🎨 设计系统(所有输出格式共用)

配色(扁平化 Flat Design)

Token用途
------------------
primary#667eea主色调、标题、重点标记
secondary#764ba2辅助色、渐变终点
bg#f5f7fa页面背景
card-bg#ffffff卡片背景
text-dark#1a1a2e标题文字
text-body#444正文文字
accent-bg#eef0ff标签、浅色强调

视觉特征

  • 扁平化:轻微阴影 0 2px 12-16px rgba(0,0,0,0.05-0.06)
  • 大圆角:卡片 12-14px,header 20px,标签 24px
  • 紫色渐变头部:linear-gradient(135deg, #667eea 0%, #764ba2 100%)
  • 左侧色条强调 + 圆角卡片布局
  • 容器最大宽度 900px

📋 Step 3: AI 内容分析(动态化)

对每个标准化 MD 文件进行 AI 分析。

内容类型识别

类型特征分析维度
----------------------
访谈/对话多人对话、观点碰撞人物背景、核心论点、观点碰撞、角色转变
科普/知识知识点密集、逻辑链核心概念、知识架构、关键数据、方法论
教程/教学步骤化、实操性强技能要点、操作步骤、注意事项、案例
评论/观点论点驱动核心论点、论证逻辑、批判思考
学术论文结构化、严谨性高研究问题、方法论、核心发现、贡献与局限
笔记/短文精炼、观点性强核心观点、背景补充、个人见解

内容长度梯度

长度主题分析数摘要长度PPT 页数建议
----------------------------------------
短文 (< 5000字)2-350-80字3-5
中篇 (5000-20000字)3-580-150字5-8
长文/长视频 (> 20000字 / > 30min)5-10150-300字8-18

📋 Step 4: 输出生成

根据 Step 1 中每个 URL 的选择,分别生成对应格式。

4a. PPT(PptxGenJS 直出)

const theme = {
  primary: "667eea", secondary: "764ba2",
  accent: "8899dd", light: "eef0ff", bg: "f5f7fa"
};

结构:封面 → 目录 → N页主题分析 → 总结

cd {slides_dir} && NODE_PATH="C:/Users/Administrator/.workbuddy/binaries/node/workspace/node_modules" \
  "C:/Users/Administrator/.workbuddy/binaries/node/versions/22.22.2/node.exe" compile.js

4b. HTML(WorkBuddy 直出)

自顶向下结构:

  1. 紫色渐变 Header(badge + 标题 + 副标题 + 标签)
  2. 关键词云
  3. 数据统计卡片
  4. AI 摘要(左色条强调)
  5. 多维度主题分析(编号 + 白色卡片 + 详细论述)
  6. 结构化内容(对比表格、引用等,按内容类型动态选择)
  7. 页脚(来源 + 工具署名)

4c. 图片输出(信息图)

当用户选择"图片"时,生成可视化的信息图总结。

方式一:ImageGen 渲染(优先)

使用 ImageGen 工具生成 PNG/JPG 格式信息图。Prompt 模板:

生成中文信息图,主题:{标题},扁平化紫色风格(#667eea / #764ba2)。
包含:标题、150字摘要、3-5个关键数据、3-5条要点(每条≤15字)。
来源:{original_url},底部标注"由资讯通关师生成"。

方式二:HTML 信息图渲染(兜底)

如 ImageGen 不可用,生成一个自包含的信息图 HTML 页面,包含:

  • 紫色渐变头部卡片
  • 关键数据数字卡片(大字+标签)
  • 核心要点列表(左侧色条强调)
  • 页脚来源信息

⚠️ 图片输出时,使用 DeferExecuteTool 调用 ImageGen 工具。先通过 ToolSearch 查找 ImageGen 的准确参数 schema。如 ImageGen 不可用,自动降级为信息图 HTML 页面。


📋 Step 5: 交付

deliver_attachments → 按格式输出(PPT/HTML/图片)
preview_url → HTML(优先)或 open_result_view → PPT

⚠️ Pitfalls

Pitfall 1: state-save 跨进程失效

state-save 只在打开浏览器的同一进程有效。

✅ 用 run-code --filename 提取 cookie → stdin 管道(零落盘)。

Pitfall 2: B站 cookie 管道捕获

cmd /c ... > file.txt 跨 cmd 可能输出空文件。

cmd /c "playwright-cli ... | python ..." 同一条命令内完成。

🔴 高风险cmd /c 管道中 Python 的绝对路径(如 C:...)可能被解析为命令而非路径参数。

✅ 改用临时文件方式:先 > tmpfile,再 --cookies-file tmpfile;或使用 --stdin 完全避免管道问题。

Pitfall 3: playwright-cli --raw 双重 JSON 编码

playwright-cli --raw run-code 输出的 JSON 字符串会被外层包裹一次 JSON 编码。例如:

"{\"cookies\":[{\"name\":\"SESSDATA\",...}]}"

✅ Python 中需要 json.loads(json.loads(content)) 双重解码,或者在包装的 run-code 代码中不做 JSON.stringify,让 raw 模式自动处理。

Pitfall 4: playwright-cli --raw run-code 不要内联复杂 JS

run-code "async page => { ... }" 中的引号和特殊字符可能被 shell 解析破坏。

✅ 复杂 JS 逻辑写为独立的 .js 文件,用 --filename 参数加载:playwright-cli --raw run-code --filename script.js

Pitfall 5: PPT 编译脚本中的中文引号雷区

JS 字符串中嵌套中文双引号 "\u201c" "\u201d" 会与 JS 字符串分隔符 " 冲突,导致语法错误。

✅ 使用 t() 辅助函数 + { text: "..." } 对象格式彻底避免引号嵌套:

function t(text) { return text; }
// ...
{ text: t('他说:\u201c你好\u201d'), options: { fontSize: 14 } }

Pitfall 6: Windows Git Bash 终端中文乱码

Windows 的 Git Bash 终端可能无法正确渲染中文字符,但这仅影响终端输出显示。

✅ 文件内容本身不会受影响(UTF-8 编码)。设置 PYTHONIOENCODING=utf-8 可缓解终端显示问题。

Pitfall 7: 小红书需要登录

小红书笔记页可能需要登录态。

✅ 使用独立的 persistent profile,首次扫码后持久有效。

Pitfall 8: arXiv HTML vs PDF

arXiv 的 HTML 页面比 PDF 更易于文本提取。

✅ 优先使用 arxiv.org/html/ 格式;如不可用则退回到 abs 页面提取摘要。

Pitfall 9: 不硬编码内容结构

AI 根据内容类型动态选择分析维度,不预设"金句""亮点"。

Pitfall 10: 图片输出最佳实践

图片输出通过 ImageGen 工具实现;使用前先通过 ToolSearch 查找 ImageGen 参数 schema。如 ImageGen 不可用,自动降级为信息图 HTML 页面。

Pitfall 11: B站字幕必须用playwright登录获取 🔴

B站 AI 字幕 API(player/wbi/v2)在没有 SESSDATA cookie 时不返回字幕数据。

🔴 不要浪费时间用公开 API 逐条尝试。

✅ 正确流程:playwright-cli open --headedcheck_login.js 检测 SESSDATA → 未登录则提示用户扫码并等待 → 登录确认后 get_cookies.js 提取 → stdin 管道传给 bili_clip.py

一次登录,所有视频共享 cookie。

Pitfall 12: playwright profile 持久化

使用 --persistent --profile="..." 保存登录态。cookie 保存在 profile 中,下次无需重新登录。但如果 profile 被删除或 cookie 过期,重新走有头登录流程即可。


📁 文件结构

ZiXunTongGuanShi/
├── SKILL.md                              # 本文件 — AI 执行指令
├── requirements.txt
├── scripts/
│   ├── bili_clip.py                      # B站提取(支持 --stdin)
│   ├── check_login.js                    # 🔴 登录检测(轻量 SESSDATA 检查)
│   ├── get_cookies.js                    # playwright cookie 提取
│   ├── arxiv_clip.py                     # arXiv 论文提取(预留)
│   └── xhs_clip.py                       # 小红书提取(预留)
├── references/
│   ├── bilibili_api.md                   # B站 API 参考
│   ├── playwright-session.md
│   ├── playwright-running-code.md
│   └── playwright-storage-state.md
├── templates/
│   ├── theme.json                        # PPT 主题配色
│   ├── report.html.j2                    # HTML 模板参考
│   └── infographic_prompt.md             # 图片信息图 prompt 模板

🔐 安全设计

环节实现
------------
B站 Cookiestdin 管道零落盘
博客/arXiv公开访问,无需凭证
小红书独立 profile,cookie 不跨站共享

📝 更新日志

v4.3.0 (2026-05-31)

  • 登录检测门控:B站提取流程重构为三阶段(开浏览器 → 检测登录 → 提取),新增 check_login.js 脚本
  • 未登录即停止:明确要求检测到无 SESSDATA 时立即停止,提示用户扫码,不执行任何提取操作
  • 阶段隔离:阶段 B(登录检测)与阶段 C(字幕提取)严格分离,避免无登录态时浪费 API 调用

v4.2.0 (2026-05-31)

  • 强制三选项展示:Step 1 明确要求 AskUserQuestion 必须无例外展示全部 3 个选项(PPT/HTML/图片)
  • 图片输出强化:移除 Step 4c 中"当前模型限制"劝阻性语言,增加 HTML 信息图兜底方案
  • B站登录流程明确:强调字幕获取必须走 playwright 有头登录,新增 Pitfall 11/12 提醒不要浪费 API 尝试
  • 描述清理:所有选项移除"需视觉模型"限定词

v4.1.0 (2026-05-31)

  • 精简 MD frontmatter:所有源(B站/arXiv/博客)统一只保留 createdoriginal_url,移除 source/tags/category/status
  • 多选输出:Step 1 改为真多选(multiSelect: true),移除 "PPT+HTML"/"全部" 快捷项
  • Pitfalls 扩充:新增 cmd pipe 路径解析、playwright-cli 双重 JSON 编码、PPT 中文引号、Windows 终端编码等实战坑
  • 清理:移除空占位的 assets 目录

v4.0.0 (2026-05-31)

  • 多源输入:新增博客、arXiv论文、小红书支持
  • 逐任务选格式:每个 URL 独立弹窗选择输出类型
  • 图片输出:新增"图片"选项(信息图,需视觉模型)
  • 中文显示名:WorkBuddy 中显示为"资讯通关师"
  • URL 类型自动识别:Step 0 自动判断输入源类型

v3.0.0 (2026-05-31)

  • 安全升级:cookie stdin 管道零落盘
  • 重命名为 ZiXunTongGuanShi
  • 自包含化

v2.0.0 (2026-05-30)

  • 动态内容分析、扁平化设计

v1.0.0 (2026-05-30)

  • 初始版本

版本历史

共 1 个版本

  • v1.0.0 Initial release 当前
    2026-05-31 22:25 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

office-efficiency

Nano Pdf

steipete
使用nano-pdf CLI通过自然语言指令编辑PDF
★ 281 📥 117,152
office-efficiency

Gog

steipete
Google Workspace 命令行工具,支持 Gmail、日历、云端硬盘、通讯录、表格和文档。
★ 934 📥 187,518
office-efficiency

Excel / XLSX

ivangdavila
创建、检查和编辑 Microsoft Excel 工作簿及 XLSX 文件,支持可靠的公式、日期、类型、格式、重算及模板保留功能。
★ 393 📥 148,539