gitbyeos/open-part-skills · Archived

fetch-what-say

抓取 yt-dlp 支持的媒体或本地视频,转写成文字稿,Agent 生成树形思维导图摘要,输出可读网页。

First seen Jun 24, 2026

Installation

$ npx skills add gitbyeos/open-part-skills --skill fetch-what-say

Stronger alternatives

This repository is archived — consider an actively maintained alternative.

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from gitbyeos/open-part-skills · top by installs.

npx skills add gitbyeos/open-part-skills

Browse all from gitbyeos/open-part-skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 40
License LICENSE
Default branch main
Open issues 0
Status Archived

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.1.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,424 B
  • docs SUMMARY.md 150 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 6 installs

SKILL.md

Fetch What Say

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 生成,脚本负责抓取、转写、网页查看器。

Flow 结构

esflow DAG 编排(scripts/flow.py 声明,scripts/nodes/ 各节点):

resolve → download → extract_audio → transcribe → agent_summary → export_html
                                                        (TO_AGENT)
节点 职责
resolve 解析 input/cookies,算 mediaid,建 workdir,产出 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 并弹出

Agent 介入

# 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

优先使用显式 --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

Summary Prompt

请阅根据下方文章对话或教程内容,生成一份结构化的思维导图式摘要。

输出格式要求:
1. 根节点(第0层):用文档的核心主题提炼出一个概括性标题,单独置于顶部,不加序号,不加树形前缀。标题下方用树形符号(│ 和 ├─)连接下一层。
2. 一级分支:用带圆圈的数字编号(①、②、③、④…)标记每个主要主题,置于同一列,上方共用一条水平主干线。
3. 二级及以下分支:使用 ASCII 树形符号(├─、└─、│)表示层级关系,缩进体现父子关系。
4. 展开深度:至少到三级(根 > ① > ├─ > └─),根据需要可到四级。
5. 节点内容:不得出现完整段落,每句话不超过25字,每句话必须增加信息密度,同类合并。
6. 内容组织:完全根据文档实际内容提炼主题,不预设任何固定板块。自动识别文章的论述结构(可按论点分层、问题分类、时间顺序、人物观点、结论建议等逻辑),动态生成分支。
7. 输出纯文本

风格要求:
- 拒绝散文式叙述,拒绝连接词和过渡句
- 每条只呈现关键事实、判断或结论
- 同一层级条目数量不限,但力求均衡

格式示例如下:

文档核心标题
│
├─ ① 第一主题
│   ├─ 子要点A
│   │   ├─ 细节1
│   │   └─ 细节2
│   └─ 子要点B
│       └─ 细节3
├─ ② 第二主题
│   ├─ 子要点C
│   │   └─ 细节4
│   └─ 子要点D
└─ ③ 第三主题
    ├─ 子要点E
    └─ 子要点F

请**严格按照上述格式**(根节点独立 + 树形符号 + 圆圈序号)生成,内容完全基于您对下方内容的理解。