Skip to content

SweetYLHt/GameStudySkill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GameStudySkill

English

视频教程转结构化学习笔记 — 自动将游戏开发视频教程转换为条理清晰的学习资料。

支持 Godot、Unity、Unreal Engine、Blender 和像素画 领域,可自动检测视频所属领域。

支持 BilibiliYouTube本地视频文件。使用本地 AI 语音转文字(无需 API Key)。

支持的领域

领域 说明 Prompt 文件
Godot GDScript、场景树、节点系统 GODOT_PROMPT.md
Unity C#、MonoBehaviour、组件系统 UNITY_PROMPT.md
Unreal Engine Blueprint、C++、Actor/Component UNREAL_PROMPT.md
Blender 3D 建模、修改器、节点编辑器 BLENDER_PROMPT.md
像素画 Aseprite、抖动、调色板设计 PIXEL_ART_PROMPT.md

工作流程

视频链接 / 本地文件
        |
        v
  [下载音频]  ──>  [优先尝试平台字幕]
        |                   |
        v                   v
  [Whisper 语音转文字]   [解析字幕]
        |                   |
        +────────+──────────+
                 |
                 v
         [领域检测]  ──>  自动检测 或 --domain 手动指定
                 |
                 v
       [加载领域 Prompt]  ──>  GODOT / UNITY / UNREAL / BLENDER / PIXEL_ART
                 |
                 v
        [Claude AI 分析]
                 |
                 v
       [时间戳校验 & 补全]
                 |
                 v
       [结构化 Markdown 笔记]

输出内容(按领域定制):

  • 难度等级自动检测(入门 / 中级 / 高级)
  • 版本/工具识别(如 Godot 4.x、Unity 2022 LTS、UE5、Blender 4.x、Aseprite)
  • 知识点提取,附带领域专属 API/工具参考
  • 分步骤编辑器/工具操作路径
  • 完整代码块或技术拆解,附注释说明
  • 架构图示(场景树、节点图、修改器堆栈、调色板图表)
  • 常见陷阱与最佳实践
  • 可点击的视频时间戳(Bilibili / YouTube 自适应跳转链接),附自动完整性校验

快速开始

前置要求

  • Python 3.10+
  • FFmpeg(处理本地视频文件时需要)
  • 支持 CUDA 的 GPU(可选,加速语音转文字)

安装

git clone https://github.com/SweetYLHt/GameStudySkill.git
cd GameStudySkill
pip install -r requirements.txt

使用方法

作为独立工具使用

# Bilibili 视频
python scripts/main.py "https://www.bilibili.com/video/BV1xxxxx"

# YouTube 视频
python scripts/main.py "https://www.youtube.com/watch?v=xxxxx"

# 本地视频文件
python scripts/main.py "/path/to/tutorial.mp4"

# 自定义输出目录
python scripts/main.py "video.mp4" -o /path/to/notes

# 保留音频文件(默认转录后自动删除以节省空间)
python scripts/main.py "video.mp4" --keep-audio

参数说明:

参数 说明
-o, --output DIR 指定输出目录(默认: ./output
--keep-audio 转录完成后保留音频文件(默认: 自动删除)
-h, --help 显示帮助信息

脚本会将转录结果以 JSON 格式输出到指定目录。

作为 Claude Code 技能使用

本项目同时也是一个 Claude Code 技能。安装后可以直接在 Claude Code 中使用:

# 自动检测领域
/gamedev-study https://www.bilibili.com/video/BV1xxxxx

# 手动指定领域
/gamedev-study https://www.youtube.com/watch?v=xxxxx --domain unity

Claude 会自动完成下载、转录、领域检测并生成完整的学习文档。

安装为 Claude Code 技能,推荐使用符号链接(方便后续更新同步):

# macOS / Linux(推荐)
ln -s /path/to/GameStudySkill ~/.claude/skills/gamedev-study

# Windows
cp -r . %USERPROFILE%\.claude\skills\gamedev-study

可点击时间戳

生成的学习笔记中,### 级内容标题会自动附带可点击的时间戳链接,点击即可跳转到视频对应位置:

来源平台 格式 示例
Bilibili [mm:ss](视频URL?t=总秒数) [01:03](https://www.bilibili.com/video/BV1xxx?t=63)
YouTube [mm:ss](https://www.youtube.com/watch?v=ID&t=总秒数s) [01:03](https://www.youtube.com/watch?v=xxx&t=63s)
本地文件 [mm:ss](纯文本) [01:03]
  • 时间戳仅标注在内容型小标题上,不散落在正文中
  • 结构性标题(如"关键脚本""信号连接"等模板固定标题)不添加时间戳
  • 生成后自动校验:如有 ### 标题缺失时间戳,会从 segments 数据中搜索补全
  • 超过 60 分钟的视频使用 h:mm:ss 格式

项目结构

GameStudySkill/
├── README.md                      # 中文说明
├── README_EN.md                   # English README
├── LICENSE
├── requirements.txt
├── SKILL.md                       # Claude Code 技能定义(多领域)
├── resources/
│   ├── DOMAIN_DETECTION.md        # 自动领域检测规则
│   ├── GODOT_PROMPT.md            # Godot 学习笔记 Prompt
│   ├── UNITY_PROMPT.md            # Unity 学习笔记 Prompt
│   ├── UNREAL_PROMPT.md           # Unreal Engine 学习笔记 Prompt
│   ├── BLENDER_PROMPT.md          # Blender 学习笔记 Prompt
│   └── PIXEL_ART_PROMPT.md        # 像素画学习笔记 Prompt
├── scripts/
│   ├── main.py                    # 主入口
│   ├── models.py                  # 数据模型(TranscriptSegment、AudioMeta 等)
│   ├── transcriber.py             # Whisper 语音转文字引擎
│   └── downloaders/
│       ├── bilibili.py            # Bilibili 视频处理
│       ├── youtube.py             # YouTube 视频处理
│       └── local.py               # 本地文件处理
└── docs/
    ├── godot-study/               # Godot 学习笔记输出
    ├── unity-study/               # Unity 学习笔记输出
    ├── unreal-study/              # Unreal Engine 学习笔记输出
    ├── blender-study/             # Blender 学习笔记输出
    └── pixel-art-study/           # 像素画学习笔记输出

配置

环境变量 默认值 说明
WHISPER_MODEL_SIZE base Whisper 模型大小(tinybasesmallmediumlarge-v3

更大的模型转录质量更好,但需要更多显存/内存,速度也更慢。

领域检测

系统通过以下方式自动检测视频所属领域:

  1. URL / 标题关键词 — 针对明显匹配的快速路径
  2. 转录内容 — 扫描前 2000 个字符中的领域特征词

检测规则定义在 resources/DOMAIN_DETECTION.md 中。当自动检测失败时,系统会询问用户选择。

也可以通过 --domain 参数直接指定领域,跳过自动检测。

Prompt 模板

每个领域在 resources/ 目录下都有独立的 Prompt 模板,所有模板共享统一结构:

  1. 自动判断难度 — 根据内容分析判定:入门 / 中级 / 高级
  2. 版本/工具识别 — 识别具体版本、工具或配置
  3. 生成结构化输出 — 核心思路、知识点、操作路径、架构图、关键要点

你可以自定义任何 Prompt 来调整输出格式或添加领域专属的分析规则。

示例输出

参见 docs/godot-study/ 目录中的示例学习笔记。

依赖

用途
yt-dlp 从 Bilibili、YouTube 等平台下载视频/音频
faster-whisper 本地离线语音转文字(基于 CTranslate2)

许可证

MIT

About

Convert Godot video tutorials (Bilibili/YouTube) into structured learning notes using local Whisper transcription + AI analysis

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages