Multi-Source to NotebookLM Processor
joeseesun/qiaomu-anything-to-notebooklm
Collects content from WeChat articles, web pages, YouTube, podcasts, documents and more, uploads it to NotebookLM and generates podcasts, slides or mind maps.
Generate structured, timestamped Markdown notes from videos (Bilibili, Douyin, YouTube, or local media files) using the local VideoToNo service.
$ npx skills add like-attract/video-to-note --skill video-to-note -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install like-attract/video-to-note video-to-note --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/like-attract/video-to-note.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/video-to-note .claude/skills/video-to-note && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "video-to-note" agent skill from https://github.com/like-attract/video-to-note/tree/main/skills/video-to-note into .claude/skills/video-to-note/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-to-note", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/like-attract/video-to-note/tree/main/skills/video-to-noteType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add like-attract/video-to-note --skill video-to-note -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install like-attract/video-to-note video-to-note --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/like-attract/video-to-note.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/video-to-note .agents/skills/video-to-note && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "video-to-note" agent skill from https://github.com/like-attract/video-to-note/tree/main/skills/video-to-note into .agents/skills/video-to-note/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-to-note", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add like-attract/video-to-note --skill video-to-note -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install like-attract/video-to-note video-to-note --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/like-attract/video-to-note.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/video-to-note .cursor/skills/video-to-note && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "video-to-note" agent skill from https://github.com/like-attract/video-to-note/tree/main/skills/video-to-note into .cursor/skills/video-to-note/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-to-note", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/like-attract/video-to-note.git --path skills/video-to-note--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add like-attract/video-to-note --skill video-to-note -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install like-attract/video-to-note video-to-note --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/like-attract/video-to-note.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/video-to-note .gemini/skills/video-to-note && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "video-to-note" agent skill from https://github.com/like-attract/video-to-note/tree/main/skills/video-to-note into .gemini/skills/video-to-note/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-to-note", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install like-attract/video-to-note video-to-noteInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add like-attract/video-to-note --skill video-to-note -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/like-attract/video-to-note.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/video-to-note .github/skills/video-to-note && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "video-to-note" agent skill from https://github.com/like-attract/video-to-note/tree/main/skills/video-to-note into .github/skills/video-to-note/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-to-note", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add like-attract/video-to-note --skill video-to-note -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install like-attract/video-to-note video-to-note --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/like-attract/video-to-note.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/video-to-note .opencode/skills/video-to-note && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "video-to-note" agent skill from https://github.com/like-attract/video-to-note/tree/main/skills/video-to-note into .opencode/skills/video-to-note/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "video-to-note", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
video-to-noteGenerate structured, timestamped Markdown notes from videos (Bilibili, Douyin, YouTube, or local media files) using the local VideoToNo service.
Video To Note is an agent skill from like-attract/video-to-note. Generate structured, timestamped Markdown notes from videos (Bilibili, Douyin, YouTube, or local media files) using the local VideoToNo service. Use when the user asks to summarize a video, turn a video/lecture/talk into notes, extract video content or a transcript, or mentions VideoToNo.
Its SKILL.md is about 1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/video_note.py`).
It sits in Knowledge Management, covering Video and podcast notes and Note-taking. It works with Bilibili, Douyin, YouTube and Model Context Protocol. The repository describes itself as: 本地优先的视频→结构化笔记服务:B站/抖音/本地视频,平台字幕+本地离线转写,LLM 生成带时间轴笔记;桌面应用 / MCP / Agent Skill 三种接入。 The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit aa29ca2. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythoncurlFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
bilibili.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
VIDEOTONOTES_LLM_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Video To Note loads about 1k tokens when it runs. Until then it costs about 76 tokens; SKILL.md has 171 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from like-attract/video-to-note at commit aa29ca2, republished under its MIT licence (© like-attract). 171 words, ~1,040 tokens.
.claude/skills/video-to-note/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.通过本机运行的 VideoToNo 服务,把视频变成带时间轴的 Markdown 笔记:优先读取平台字幕(B 站 AI 字幕深度适配,支持多分 P 合并),没有字幕时用本地 faster-whisper 离线转写,最后由已配置的大模型生成笔记。
| 你要什么 | 走哪条 | 需要 API Key |
|---|---|---|
| 带时间轴的转录原料,笔记结构与风格你自己定 | 转录路线 --transcript-only | 不需要 |
| 一份现成的成品笔记(用户只要"给我笔记",或视频很长希望后台跑完) | 笔记路线 --style | 需要(本机按接口地址保存过即可省略) |
你自己就有模型可以写笔记时,优先走转录路线:本机只负责取字幕或离线转写,写作由你完成,不用向用户索要 Key,也不会被套进固定的笔记模板。
服务监听 127.0.0.1 的 8000-8019 中的一个端口。逐个探测健康检查:
curl -s --max-time 2 http://127.0.0.1:8000/api/health
# 期望返回 {"status":"ok","service":"VideoToNo",...}全部端口不通时:请用户启动 VideoToNo(便携版 exe,或源码目录执行 python launcher.py),启动后重试。不要替用户猜端口以外的地址。
# 转录路线(默认推荐,零配置)
python "<本技能目录>/scripts/video_note.py" "<视频链接或本地文件路径>" --transcript-only --wait 1800
# 笔记路线(一键成品)
python "<本技能目录>/scripts/video_note.py" "<视频链接或本地文件路径>" --style detailed --wait 1800脚本会自动:探测服务端口 → (本地文件先上传)→ 提交任务 → 轮询进度(实时打印运行日志)→ 输出完整 Markdown。
--transcript-only:只做到转录为止,不调用大模型;此模式默认复用同链接已有的转录(秒回),加 --no-reuse 才强制重新转写--style:detailed(翔实+点评,默认)/ faithful(忠实复原)/ concise(精简摘要)--wait:最长等待秒数,默认 1800;长视频(>30 分钟)建议加大--out <path.md>:把结果写入文件(不加则打印到 stdout)API Key:只有笔记路线需要,而且大概率不用你拿。本机为某个接口地址保存过 Key(网页端「保存到本机」或 MCP 的 save_llm_config)时直接省略即可;只存过一个地址时脚本会自动沿用该通道,存了多个则不会猜。任务失败点名"该接口地址没有可复用的 Key"时,先问用户能不能改走 --transcript-only(全程不调用大模型、不需要 Key,整理成稿由你这边完成)。用户坚持要成品笔记再问供应商(deepseek/openai/qwen/glm/moonshot/custom)与 Key,并按下面这种形式传,custom 另加 --base-url / --custom-model:
# 推荐:Key 从标准输入进来,不落 shell 历史也不进进程命令行
printf '%s\n' "<用户给的 Key>" | python scripts/video_note.py "<链接>" --provider deepseek --api-key -
# 或者用环境变量(同一条命令里赋值同样会留在历史里,长期会话请设为环境变量)
VIDEOTONOTES_LLM_API_KEY=... python scripts/video_note.py "<链接>" --provider deepseek不要把 Key 写成 --api-key sk-xxx:命令行参数会留在 shell 历史、进程列表和 agent 的工具调用日志里,同用户的任何进程都能读到。脚本已把"看到的凭据一律换成掩码"作为兜底(自己发的告警、服务端回显的 4xx 详情都会洗),但兜底不等于源头干净。已保存的 Key 只在目标地址一致时复用,不会被发给别的网关。
本地文件上传上限 2GB;大视频(默认 ≥300MB)未要求截图时服务端会自动只保留音频。
健康检查:GET /api/health
提交任务:
# 转录路线:请求体里没有任何大模型字段
curl -s -X POST http://127.0.0.1:8000/api/transcribe \
-H "Content-Type: application/json" \
-d '{"video_url": "https://www.bilibili.com/video/BVxxxx", "whisper_model": "base"}'
# B 站多 P 视频可加 "bilibili_pages": [2, 3] 只转写指定分 P(缺省跟随链接 ?p=,没有则全部)
# 笔记路线
curl -s -X POST http://127.0.0.1:8000/api/summarize \
-H "Content-Type: application/json" \
-d '{
"video_url": "https://www.bilibili.com/video/BVxxxx",
"summary_style": "detailed",
"llm_config": {"model_type": "deepseek", "api_key": "sk-..."}
}'
# 都返回 {"task_id": "..."};本地文件改为先 POST /api/upload 拿 upload_task_id上面的
"api_key": "sk-..."只是字段示意。真发请求时这条 curl 命令同样会留在 shell 历史里:能省略就省略(后端按 Base URL 复用本机已保存的 Key),必须带时用-d "{...\"api_key\": \"$VIDEOTONOTES_LLM_API_KEY\"...}"这类形式,别把 Key 写成字面量。
轮询:GET /api/task/{task_id},直到 status 变为 completed / failed / cancelled(logs 数组是实时运行日志)。转录任务的 result 里没有 markdown,result.output 是 "transcript"
取结果:
result.markdown 是完整笔记GET /api/task/{task_id}/transcript?output_format=markdown 拿整篇 [MM:SS-MM:SS] 正文,output_format=json 拿分段数组(时间为秒)。该端点默认 json,MCP 的 get_transcript 默认 markdown,两边都建议显式传result.output_directory 都是产物目录(notes.md / transcript.json / transcript.md);超长内容建议直接读该目录下的 transcript.json 自行切片,不必整篇塞进上下文取消运行中的任务:POST /api/task/{task_id}/cancel(秒级生效)
/api/task/{id}/transcript 取转录,包括后来生成笔记失败的——不必重跑© like-attract, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in skills/video-to-note of like-attract/video-to-note.
Open the folder on GitHubat commit aa29ca2
Video To Note next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Video To Note this skilllike-attract/video-to-note | 123 | — | ~1k | Automated safety check: Pass | MIT | |
| Multi-Source to NotebookLM Processorjoeseesun/qiaomu-anything-to-notebooklm | 6.2k | — | ~3.6k | Automated safety check: Pass | MIT | |
| Video SummaryLeoYeAI/openclaw-master-skills | 2.2k | — | ~4.2k | Automated safety check: Pass | MIT | |
| Media To TranscriptbozhouDev/video-skills-toolkit | 150 | — | ~1.8k | Automated safety check: Notes | MIT | |
| Video To NotesKIRVO-REPORTING/video-to-notes | 105 | — | ~1.5k | Automated safety check: Pass | MIT | |
| YouTube Talk Notetakerdair-ai/dair-academy-plugins | 614 | — | ~2.3k | Automated safety check: Pass | MIT |
joeseesun/qiaomu-anything-to-notebooklm
Collects content from WeChat articles, web pages, YouTube, podcasts, documents and more, uploads it to NotebookLM and generates podcasts, slides or mind maps.
LeoYeAI/openclaw-master-skills
Video summarization for Bilibili, Xiaohongshu, Douyin, and YouTube.
bozhouDev/video-skills-toolkit
Convert audio/video URLs or local media into corrected Markdown transcripts through Volcengine recording-file ASR 2.0.
KIRVO-REPORTING/video-to-notes
Use immediately for any bare YouTube or YouTube Shorts URL, youtu.be link, Bilibili or b23.tv link, or other video URL; do not ask what the user wants.
dair-ai/dair-academy-plugins
Converts a YouTube talk into a markdown study note with slide images, a timestamped transcript and editable notes, browsable through a small local server.
chubbyguan/chubbyskills
学习笔记自动化:视频/播客转录 → 知识点提取 → 闪卡生成 → 知识图谱更新。触发词:学习笔记、闪卡、Anki、知识提取、视频学习
Categories
Generate structured, timestamped Markdown notes from videos (Bilibili, Douyin, YouTube, or local media files) using the local VideoToNo service. Video To Note is an agent skill from like-attract/video-to-note. Generate structured, timestamped Markdown notes from videos (Bilibili, Douyin, YouTube, or local media files) using the local VideoToNo service.
Video To Note fits situations like: the user asks to summarize a video; turn a video/lecture/talk into notes; extract video content; mentions VideoToNo.
Run `npx skills add like-attract/video-to-note --skill video-to-note -a claude-code`. Or copy the skill folder (skills/video-to-note in like-attract/video-to-note) into .claude/skills/video-to-note in your project. Claude Code loads it when a task matches its description.
Run `npx skills add like-attract/video-to-note --skill video-to-note -a codex`. Or copy the skill folder (skills/video-to-note in like-attract/video-to-note) into .agents/skills/video-to-note in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add like-attract/video-to-note --skill video-to-note -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/video-to-note, .gemini/skills/video-to-note, .github/skills/video-to-note and .opencode/skills/video-to-note in your project.
Going by SKILL.md and its folder, Video To Note needs Python for the scripts in its folder, the command-line tools its instructions call (python and curl) and credentials named VIDEOTONOTES_LLM_API_KEY. Our summary lists: Python 3; A credential in VIDEOTONOTES_LLM_API_KEY.
SKILL.md names 1 domain. In commands or code: bilibili.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Video To Note is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1k tokens (SKILL.md is roughly 4.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Video To Note: Multi-Source to NotebookLM Processor (joeseesun/qiaomu-anything-to-notebooklm, 6.2k stars), Video Summary (LeoYeAI/openclaw-master-skills, 2.2k stars), Media To Transcript (bozhouDev/video-skills-toolkit, 150 stars) and Video To Notes (KIRVO-REPORTING/video-to-notes, 105 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
like-attract (a GitHub user) maintains it in like-attract/video-to-note, which has 123 GitHub stars. The repository was last updated on October 4, 2026.
Source: like-attract/video-to-note on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.