MCPcopy Create free account

hub / github.com/OpenDemon/anyone-to-skill / functions

Functions93 in github.com/OpenDemon/anyone-to-skill

↓ 37 callersFunctiondim
(text)
scripts/distill.py:45
↓ 29 callersFunctionlog
(msg: str)
scripts/analyze_video.py:49
↓ 24 callersFunctionlog
(msg: str)
scripts/notebooklm.py:27
↓ 19 callersFunctionlog
(msg: str)
scripts/crawl.py:31
↓ 11 callersFunctionlog
(msg: str)
scripts/ingest.py:19
↓ 11 callersFunctionlog
(msg: str)
scripts/assemble.py:20
↓ 10 callersFunctionprint_err
(msg: str)
scripts/distill.py:75
↓ 9 callersFunctionlog
(msg: str)
scripts/extract.py:26
↓ 9 callersFunctionprint_section
(title: str)
scripts/distill.py:61
↓ 8 callersFunctionask
(prompt: str, default: str = "")
scripts/distill.py:78
↓ 7 callersFunctionprint_step
(n: int, total: int, msg: str)
scripts/distill.py:66
↓ 7 callersFunctionread_line
跨平台读取一行输入,正确处理 UTF-8
chat.py:115
↓ 7 callersFunctionread_line
跨平台读取一行输入,正确处理 UTF-8
anyone2skill/cli.py:117
↓ 5 callersFunctionload_config
从 ~/.anyone2skill/config.json 加载保存的 API key(兼容 BOM)
anyone2skill/cli.py:88
↓ 5 callersFunctionprint_ok
(msg: str)
scripts/distill.py:69
↓ 4 callersFunctionload_config
从 ~/.anyone2skill/config.json 加载保存的 API key
chat.py:88
↓ 4 callersFunctionprint_warn
(msg: str)
scripts/distill.py:72
↓ 4 callersFunctionrun_pipeline
(target_name: str, files: list[str], output_base: Path, self_mode: bool = False)
scripts/distill.py:123
↓ 4 callersFunctionwrite_corpus
将提取内容写入语料文件
scripts/ingest.py:23
↓ 3 callersFunction_analyze_transcript_with_gpt
将转录文本发给 GPT 进行深度分析
scripts/analyze_video.py:225
↓ 3 callersFunction_get_top_videos
获取频道播放量最高的视频
scripts/distill.py:339
↓ 3 callersFunctionask_choice
显示编号菜单,返回用户选择的 key
scripts/distill.py:87
↓ 3 callersFunctionmake_slug
(name: str)
scripts/distill.py:119
↓ 3 callersFunctionprint_banner
()
scripts/distill.py:58
↓ 3 callersFunctionselect_api
交互式选择 API,显示所有已检测到的 key,选完后持久化保存
anyone2skill/cli.py:131
↓ 2 callersFunction_analyze_videos_batch
批量分析视频,使用开源 analyze_video 模块(Gemini / Whisper / 字幕自动降级)
scripts/distill.py:376
↓ 2 callersFunction_extract_name_from_url
从 YouTube URL 提取频道名
scripts/distill.py:326
↓ 2 callersFunction_transcribe
(audio_path: str, output_dir: Path, source_name: str)
scripts/ingest.py:73
↓ 2 callersFunctionanalyze_video
分析 YouTube 视频,返回结构化分析文本。 strategy 选项: "auto" — 自动选择最佳策略(推荐) "gemini" — 强制使用 Gemini 直接理解 "whisper_api" — 强制使用 OpenAI Wh
scripts/analyze_video.py:255
↓ 2 callersFunctionanalyze_with_gemini
用 Gemini 2.5 Flash 直接分析 YouTube 视频。 Gemini 原生支持 YouTube URL,无需下载,速度最快。
scripts/analyze_video.py:55
↓ 2 callersFunctionanalyze_with_local_whisper
下载音频后用本地 Whisper 模型转录(离线,不消耗 API 费用)。 model_size: tiny/base/small/medium(越大越准但越慢)
scripts/analyze_video.py:140
↓ 2 callersFunctionanalyze_with_subtitles
尝试获取 YouTube 自动字幕(无需下载,速度最快,但不是所有视频都有)。
scripts/analyze_video.py:183
↓ 2 callersFunctionanalyze_with_whisper_api
下载音频后用 OpenAI Whisper API 转录,再用 GPT 分析。 需要 OPENAI_API_KEY,适合标准 OpenAI 账号。
scripts/analyze_video.py:81
↓ 2 callersFunctionassemble_with_qa_loop
带 QA 闭环的 Skill 组装。 最多重试 MAX_QA_RETRIES 次,返回 (skill_content, qa_result)。
scripts/assemble.py:193
↓ 2 callersFunctionauto_import_to_notebooklm
自动将 YouTube 视频链接批量导入 NotebookLM。 参数: video_urls: YouTube 视频 URL 列表 notebook_name: 笔记本名称 wait_for_summary: 是否等待 AI 生成摘要(需要额
scripts/notebooklm.py:33
↓ 2 callersFunctionbuild_client
构建 OpenAI 兼容客户端,返回 (client, model)
anyone2skill/cli.py:203
↓ 2 callersFunctionbuild_system_prompt
(person_name: str, skill_md: str)
chat.py:295
↓ 2 callersFunctionbuild_system_prompt
(person_name: str, skill_md: str)
anyone2skill/cli.py:297
↓ 2 callersFunctionc
(color, text)
scripts/distill.py:43
↓ 2 callersFunctionconfirm
(prompt: str, default: bool = True)
scripts/distill.py:105
↓ 2 callersFunctionfetch_skill_md
从 GitHub 拉取 SKILL.md,优先用本地缓存
chat.py:215
↓ 2 callersFunctionfetch_skill_md
从 GitHub 拉取 SKILL.md,优先用本地缓存
anyone2skill/cli.py:217
↓ 2 callersFunctionfetch_subtitles
尝试下载 YouTube 自动字幕(优先英文)。 成功返回字幕文本,失败返回 None。
scripts/crawl.py:108
↓ 2 callersFunctiongenerate_import_guide
生成手动导入 NotebookLM 的操作指南(当自动化不可用时)。 返回 Markdown 格式的指南文本。
scripts/notebooklm.py:293
↓ 2 callersFunctioningest_chat
解析聊天记录导出文件。 支持格式: - 微信导出 TXT("2024-01-01 12:00:00 张三\n内容") - Telegram JSON 导出 - WhatsApp TXT 导出("[2024/1/1, 12:00:00] 张三: 内容")
scripts/ingest.py:183
↓ 2 callersFunctioningest_file
根据文件类型自动分发到对应的解析器。 返回提取的文本内容。
scripts/ingest.py:284
↓ 2 callersFunctioningest_text_doc
处理 TXT、DOCX、EPUB 等文本类文档
scripts/ingest.py:135
↓ 2 callersFunctioningest_video
视频/音频转录。 本地文件用 Whisper;YouTube/B站 URL 先用 yt-dlp 下载音频再转录。 返回转录文本。
scripts/ingest.py:39
↓ 2 callersFunctioninteractive_main
主交互界面
scripts/distill.py:476
↓ 2 callersFunctionload_saved_keys
把保存的 key 加载到环境变量(优先级低于已有环境变量)
anyone2skill/cli.py:106
↓ 2 callersFunctionrun_parallel_extraction
6 个 Agent 并发运行,收集所有维度的提取结果。 返回合并后的 raw_features 字典。
scripts/extract.py:173
↓ 2 callersFunctionrun_synthesis
Phase 2:合成知识图谱,执行三重验证
scripts/extract.py:251
↓ 2 callersFunctionsave_config
保存 API key 到 ~/.anyone2skill/config.json
chat.py:98
↓ 2 callersFunctionsave_config
保存 API key 到 ~/.anyone2skill/config.json(无 BOM)
anyone2skill/cli.py:99
↓ 2 callersFunctionselect_api
交互式选择 API,显示所有已检测到的 key,选完后持久化保存
chat.py:129
↓ 1 callersFunction_add_source_to_notebook
向当前笔记本添加一个 YouTube 来源
scripts/notebooklm.py:152
↓ 1 callersFunction_extract_video_id
从 YouTube URL 提取 video ID
scripts/analyze_video.py:385
↓ 1 callersFunction_parse_chat_json
解析 Telegram / 通用 JSON 格式
scripts/ingest.py:208
↓ 1 callersFunction_parse_chat_txt
解析微信/WhatsApp TXT 格式
scripts/ingest.py:237
↓ 1 callersFunction_rename_notebook
重命名笔记本
scripts/notebooklm.py:243
↓ 1 callersFunction_wait_for_summary
等待 NotebookLM AI 摘要生成完成
scripts/notebooklm.py:267
↓ 1 callersFunctionanalyze_videos_batch
批量分析多个视频,并发执行。 videos: [{"id": "xxx", "title": "...", "url": "...", "view_count": 0, "duration": 0}] corpus_dir: 输出目录 strategy: 分析策略
scripts/analyze_video.py:322
↓ 1 callersFunctionassemble_skill
从知识图谱生成 SKILL.md 内容
scripts/assemble.py:70
↓ 1 callersFunctionbuild_client
构建 OpenAI 兼容客户端,返回 (client, model)
chat.py:201
↓ 1 callersFunctionchat_loop
主对话循环
chat.py:330
↓ 1 callersFunctionchat_loop
主对话循环
anyone2skill/cli.py:332
↓ 1 callersFunctioncrawl_channel_about
抓取频道 About 页面的简介信息
scripts/crawl.py:269
↓ 1 callersFunctioncrawl_public_figure
公开人物全量采集入口。 支持 YouTube 频道 URL,可附加额外网页 URL。 返回所有语料文件路径。
scripts/crawl.py:336
↓ 1 callersFunctioncrawl_webpage
抓取网页文本内容(用于博客、Newsletter 等)
scripts/crawl.py:299
↓ 1 callersFunctioncrawl_youtube_channel
采集 YouTube 频道的核心内容。 返回所有语料文件路径列表。
scripts/crawl.py:183
↓ 1 callersFunctiondistill_skill_md
把所有文字稿喂给 LLM,提炼 SKILL.md
anyone2skill/distill.py:144
↓ 1 callersFunctionensure_deps
确保依赖已安装
anyone2skill/distill.py:38
↓ 1 callersFunctionget_channel_videos
获取频道视频列表,按播放量排序
scripts/crawl.py:37
↓ 1 callersFunctionget_shorts_videos
获取 Shorts 列表
scripts/crawl.py:75
↓ 1 callersFunctionget_transcript
用 youtube-transcript-api 获取字幕 优先中文,其次英文
anyone2skill/distill.py:115
↓ 1 callersFunctioningest_pdf
提取 PDF 文本,保留标题层级结构
scripts/ingest.py:96
↓ 1 callersFunctionload_saved_keys
把保存的 key 加载到环境变量(优先级低于已有环境变量)
chat.py:104
↓ 1 callersFunctionmain
()
chat.py:428
↓ 1 callersFunctionmain
()
scripts/distill.py:512
↓ 1 callersFunctionmain
()
anyone2skill/cli.py:430
↓ 1 callersFunctionmode_files_interactive
交互式收集目标名称和文件列表
scripts/distill.py:204
↓ 1 callersFunctionmode_notebooklm_interactive
交互式 NotebookLM 批量导入模式
scripts/distill.py:386
↓ 1 callersFunctionmode_youtube_interactive
交互式 YouTube 频道蒸馏
scripts/distill.py:244
↓ 1 callersFunctionparse_vtt
解析 WebVTT 字幕,提取去重后的纯文本
scripts/crawl.py:134
↓ 1 callersFunctionrun_distill
蒸馏主流程
anyone2skill/distill.py:224
↓ 1 callersFunctionrun_qa
执行 QA 验证,返回验证结果
scripts/assemble.py:154
↓ 1 callersFunctionsearch_youtube_videos
用 yt-dlp 搜索 YouTube,返回视频列表
anyone2skill/distill.py:59
↓ 1 callersFunctionselect_figure
交互式选择人物,返回 (person_name, skill_md_content)
chat.py:236
↓ 1 callersFunctionselect_figure
交互式选择人物,返回 (person_name, skill_md_content)
anyone2skill/cli.py:238
↓ 1 callersFunctiontranscribe_with_whisper
下载音频并用 Whisper 转录(字幕不可用时的备选方案)
scripts/crawl.py:154
Functionbold
(text)
scripts/distill.py:44
Functionprocess_one
(video: dict)
scripts/analyze_video.py:343
Functionrun_agent
运行单个专项 Agent,返回提取结果
scripts/extract.py:137