bama
BAMA: Build Any Mac App. Agent skills to research, clone, design, build, optimize, and test native macOS apps with Swift and SwiftUI.
翻訳待ち
リポジトリ情報はまだ収集していません。
No updates detected yet. GitHub releases will appear here.
Turn any YouTube course into a Claude Code skill — transcripts, chapter-indexed markdown, inline screenshots, packaged as SKILL.md
翻訳待ち
Loading the full README.
Read the full README ↗Turn any YouTube course into a Claude Code skill.
Paste a playlist URL. Get back a structured, chapter-indexed knowledge base with inline screenshots — packaged as a SKILL.md bundle you can drop straight into ~/.claude/skills/.
Good technical content lives in video, which is the worst possible format for an agent to consume. A 12-part course is three hours you have to sit through, and none of it is greppable.
Skill Bill converts that course into what an agent actually wants: markdown, chunked per lesson, timestamped by chapter, with the screenshots that carry the information the narration skips. Then it writes the SKILL.md frontmatter so Claude Code knows when to reach for it.
neural-networks-deep-learning/
SKILL.md # frontmatter + routing rules for Claude Code
index.md # course overview, every lesson linked
01-what-is-a-neural-network.md
02-gradient-descent.md
...
assets/
01/
02-14.png # screenshots, captured where they matter
05-30.png
topics.json # keyword → lesson index (Pro mode)
Each lesson file carries a metadata header, ## [MM:SS] Chapter Title sections, transcript text, and screenshots interleaved inline at the timestamp they were taken:
## [08:38] Edge detection example
But if I told you, hey, sit down and write for me a program that takes in a
grid of 28x28 pixels like this and outputs a single number between 0 and 10...

The generated SKILL.md tells Claude how to navigate it — read the index first, load one lesson at a time, jump by chapter heading rather than reading whole transcripts:
---
name: neural-networks-deep-learning
description: >
Reference knowledge base from Neural Networks (4 videos) covering
backpropagation, gradient descent... Use when user asks about these
topics, wants to reference video content, or asks "what does the
course say about [topic]?"
metadata:
author: Skill Bill
version: "1.0"
source: youtube-playlist
---
Prerequisites: Python 3.10+, ffmpeg (brew install ffmpeg).
git clone https://github.com/asrith926/skill-bill-vol-1.git
cd skill-bill-vol-1
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
Transcript-only — fast, no video download, no API key:
python run.py playlist "https://www.youtube.com/playlist?list=YOUR_PLAYLIST_ID" --transcript-only
Full pipeline, with screenshots:
python run.py playlist "https://www.youtube.com/playlist?list=..."
A single video works too:
python run.py video "https://www.youtube.com/watch?v=aircAruvnKk"
Output lands in data/knowledge_base/<course-slug>/.
Install the result as a skill:
cp -r data/knowledge_base/<course-slug> ~/.claude/skills/
Or use the web UI's Download as Skill button, which hands you a ready-to-unzip bundle with SKILL.md already written.
python run.py serve # http://127.0.0.1:8000
Paste a URL, watch the stages stream over a WebSocket, then browse what came out — a reader view with a chapter rail, a lightbox for screenshots, and one-click skill packaging.
| Base | Pro (--refine) | |
|---|---|---|
| Transcripts | ✅ | ✅ |
| Screenshots | ✅ local heuristics | ✅ filtered + vision-captioned |
| Lesson steps | raw transcript | extracted into clean numbered steps |
| Titles | as-published | cleaned |
| Topic index | — | topics.json keyword lookup |
| API key | not required | ANTHROPIC_API_KEY |
| Rough cost | free | ~$0.15–0.20 per video |
ANTHROPIC_API_KEY=sk-... python run.py playlist "URL" --refine
Base mode optionally uses Haiku for segment classification (~$0.02/video). Turn it off entirely with --no-haiku and it falls back to local heuristics.
Cost figures are rough estimates from development runs, not measured guarantees — they scale with video length.
| Stage | Module | What happens |
|---|---|---|
| 1 | downloader.py | Flat playlist discovery via yt-dlp — one request, no per-video calls |
| 2 | transcript.py | Transcript extraction, 3-tier fallback: cache → yt-dlp → Playwright |
| 3 | downloader.py | Video download, cached by course slug |
| 4 | analyzer.py | Screenshot planning — segments classified, talking-head stretches skipped entirely |
| 5 | capturer.py | ffmpeg frame extraction + perceptual-hash dedup, thresholds per segment type |
| 6 | generator.py | Jinja2 markdown assembly, screenshots interleaved by timestamp |
| 7 | refiner.py | (Pro) Haiku vision captioning, lesson extraction, topic index |
This is the beginning of the README. Read the rest at the original. Read the full README ↗