with one click
fetch-what-say
抓取 yt-dlp 支持的媒体或本地视频,转写成文字稿,Agent 生成树形思维导图摘要,输出可读网页。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
抓取 yt-dlp 支持的媒体或本地视频,转写成文字稿,Agent 生成树形思维导图摘要,输出可读网页。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
将回复生成 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
请**严格按照上述格式**(根节点独立 + 树形符号 + 圆圈序号)生成,内容完全基于您对下方内容的理解。