一键导入
fetch-what-say
抓取 yt-dlp 支持的媒体或本地视频,转写成文字稿,Agent 生成树形思维导图摘要,输出可读网页。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
抓取 yt-dlp 支持的媒体或本地视频,转写成文字稿,Agent 生成树形思维导图摘要,输出可读网页。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
将回复生成 MP3 语音并通过 QQ 发送。用户要求语音回复、音频回复、朗读、“语音回复”、“发语音”、“读给我听”,或希望答案以语音形式交付时使用
用 Playwright 将网页或本地 HTML 渲染为高清 PNG 截图,支持全页、视口、分辨率和加载等待控制。用户提到 html-cut、cut-html、网页截图、HTML 截图、网页转 PNG、全页长截图时使用。
创建、定制并运行零依赖的临时局域网聊天室,支持浏览器聊天、文件传输、粘贴图片与桌面/移动端响应式布局。用户需要局域网聊天页、临时 Wi-Fi 文件共享,或修改内置聊天 UI 时使用。
把 Markdown 文件渲染成手机友好的 HTML,再调用 html-cut 截图为高清 PNG。用户提到 md-to-png、md 转 png、md 截图、把 md 发到手机看时使用。
当用户需要切换会话并交接任务时使用,生成可视化交接文档,确保新会话能无缝继承工作目标
临时将本机 loopback HTTP(S) 服务经 Cloudflare Quick Tunnel 暴露到公网。支持启动、状态、路径验证和停止;仅用于短时联调,默认 12 小时自动失效。用户提到“暴露端口到公网”“临时公网 URL”“Quick Tunnel”“让外网访问 localhost”时使用。
| name | fetch-what-say |
| description | 抓取 yt-dlp 支持的媒体或本地视频,转写成文字稿,Agent 生成树形思维导图摘要,输出可读网页。 |
| version | 1.1.0 |
| dependencies | ["yt-dlp","ffmpeg","mlx-whisper","esflow"] |
| repository | https://github.com/gitByEOS/open-part-skills |
URL / 本地视频 -> yt-dlp / 复制 -> transcript.srt -> transcript.txt -> summary.txt -> viewer.html
Python 包:
pip install esflow mlx-whisper
系统二进制(yt-dlp / ffmpeg):
brew install yt-dlp ffmpeg # macOS
sudo apt install yt-dlp ffmpeg # Debian/Ubuntu
python3 scripts/run.py "https://www.bilibili.com/video/BV1pzjy6GEkC"
python3 scripts/run.py ~/Movies/local.mp4
python3 scripts/run.py --view ~/Downloads/fetch-what-say/<id>/
输出目录:
<out>/<id>/
├── video.<ext>
├── transcript.srt
├── transcript.txt
├── summary.txt
└── viewer.html
summary.txt 由 Agent 用下方 Summary Prompt 生成,脚本负责抓取、转写、网页查看器。
esflow DAG 编排(scripts/flow.py 声明,scripts/nodes/ 各节点):
resolve → download → extract_audio → transcribe → agent_summary → export_html
(TO_AGENT)
| 节点 | 职责 |
|---|---|
resolve | 解析 input/cookies,算 media_id,建 work_dir,产出 plan |
download | URL 走 yt-dlp,本地文件复制到 work_dir |
extract_audio | ffmpeg 提取 16k 单声道 wav |
transcribe | mlx-whisper 转写,产出 transcript.srt 与 transcript.txt |
agent_summary | TO_AGENT:agent 读 transcript.txt 用 Summary Prompt 写 summary.txt |
export_html | 生成 viewer.html 并弹出 |
# 1. 首跑:到达 agent_summary 节点,进程退出码 2
python3 scripts/run.py "https://www.bilibili.com/video/BVxxx"
# stderr 打印 [to_agent] 完成后续跑:python3 scripts/run.py --resume <job_dir>
# 2. Agent 读上游产物里的 transcript.txt,用下方 Summary Prompt 写 summary.txt 到 work_dir
# 3. 续跑生成 viewer.html
python3 scripts/run.py --resume <job_dir>
调试单节点:esflow run scripts/ --node transcribe(上游从产物目录复用)。
优先使用显式 --cookies;不传时按 URL 域名匹配 ~/Downloads/fetch-what-say/cookies/ 下的 .txt。例如 bilibili_cookies.txt 只会自动用于 bilibili.com。脚本不读浏览器 cookies,也不读环境变量。
需要登录权限的网站:用浏览器插件 Get cookies.txt LOCALLY 导出 Netscape cookies.txt,放入上述目录,文件名须包含域名关键词。
常用:
| 参数 | 说明 |
|---|---|
input | 完整 URL,或本地视频文件 |
--out <dir> | 输出根目录,默认 ~/Downloads/fetch-what-say |
--view <dir> | 生成并打开 viewer.html(不进 flow) |
--no-transcribe | 只下载媒体,不转写 |
--resume <job_dir> | 续跑 TO_AGENT 节点 |
--dry-run | 只跑 resolve 产出 plan |
--schema | 输出 JSON 契约 |
高级:
| 参数 | 默认 | 说明 |
|---|---|---|
--height | 360 | 最高分辨率 |
--prefer | size | 同分辨率下偏小体积,或 bitrate 偏高码率 |
--merge-format | mp4 | 合并容器格式 |
--model | mlx-community/whisper-large-v3-turbo | mlx-whisper 模型 |
--language | zh | 转写语言 |
退出码:0 ok / 1 runtime / 2 to_agent / 3 validation / 4 auth
请阅根据下方文章对话或教程内容,生成一份结构化的思维导图式摘要。
输出格式要求:
1. 根节点(第0层):用文档的核心主题提炼出一个概括性标题,单独置于顶部,不加序号,不加树形前缀。标题下方用树形符号(│ 和 ├─)连接下一层。
2. 一级分支:用带圆圈的数字编号(①、②、③、④…)标记每个主要主题,置于同一列,上方共用一条水平主干线。
3. 二级及以下分支:使用 ASCII 树形符号(├─、└─、│)表示层级关系,缩进体现父子关系。
4. 展开深度:至少到三级(根 > ① > ├─ > └─),根据需要可到四级。
5. 节点内容:不得出现完整段落,每句话不超过25字,每句话必须增加信息密度,同类合并。
6. 内容组织:完全根据文档实际内容提炼主题,不预设任何固定板块。自动识别文章的论述结构(可按论点分层、问题分类、时间顺序、人物观点、结论建议等逻辑),动态生成分支。
7. 输出纯文本
风格要求:
- 拒绝散文式叙述,拒绝连接词和过渡句
- 每条只呈现关键事实、判断或结论
- 同一层级条目数量不限,但力求均衡
格式示例如下:
文档核心标题
│
├─ ① 第一主题
│ ├─ 子要点A
│ │ ├─ 细节1
│ │ └─ 细节2
│ └─ 子要点B
│ └─ 细节3
├─ ② 第二主题
│ ├─ 子要点C
│ │ └─ 细节4
│ └─ 子要点D
└─ ③ 第三主题
├─ 子要点E
└─ 子要点F
请**严格按照上述格式**(根节点独立 + 树形符号 + 圆圈序号)生成,内容完全基于您对下方内容的理解。