Generate YouTube chapters + SEO from local videos or YouTube URLs.
Project description
chaptify
Chaptify is a CLI tool that turns a video (or YouTube link) into:
- YouTube chapters (starting at
0:00 Introduction) - Title ideas
- Short descriptions
- SEO tags
Setup
chaptify init (follow prompt to setup)
Usage
chaptify init to setup
chaptify aivideo.mp4
chaptify "https://www.youtube.com/watch?v=VIDEO_ID"
Install (editable/dev)
# macOS one-liner (installs ffmpeg + yt-dlp, creates venv, tries editable install)
./scripts/install_macos.sh
Install on PATH (pipx)
brew install pipx
pipx ensurepath
pipx install .
Upgrade (local pipx install)
If you installed from this repo path, re-run from the repo root:
cd /Users/emmanuelcrown/Documents/Code/chaperfiy
pipx reinstall .
If you installed from PyPI later, use:
pipx upgrade chaptify
Requirements
- Internet access to:
- YouTube (for downloads)
- Groq (for transcription, and optionally LLM)
- OpenAI (if using
--llm-provider openai)
ffmpegavailable on yourPATH(macOS:brew install ffmpeg)yt-dlpavailable on yourPATH(macOS:brew install yt-dlp)- API keys:
GROQ_API_KEY(for transcription)OPENAI_API_KEY(if using--llm-provider openai)GOOGLE_API_KEY(if using Gemini via LangChain; install extra:pip install -e '.[gemini,langchain]')
You can also put these in a local .env file:
GROQ_API_KEY=...
OPENAI_API_KEY=...
# GOOGLE_API_KEY=...
Usage
chaptify aivideo.mp4
chaptify "https://www.youtube.com/watch?v=VIDEO_ID"
By default chaptify prints progress to stderr (download → chunk → transcribe → chapters → SEO). Use --quiet to suppress.
chaptify also caches downloads/chunks/transcripts under .chaptify_cache/ (next to your output directory). Use --clear-cache to force a fresh run.
Short flag: --cc.
Init & config
chaptify init
chaptify config show
chaptify config get provider
chaptify config set model gpt-5
chaptify config set groq_api_key <KEY>
You can also set API keys while running:
chaptify "https://www.youtube.com/watch?v=VIDEO_ID" --set-api-key groq=... --set-api-key openai=...
Run from source (no install)
PYTHONPATH=src python3 -m chaptify "https://www.youtube.com/watch?v=VIDEO_ID"
./scripts/run_local.sh "https://www.youtube.com/watch?v=VIDEO_ID"
Outputs are written next to the source as:
<name>_chapter.txt<name>_seo.txt
Common options
chaptify aivideo.mp4 --llm-provider openai --llm-model gpt-5
chaptify aivideo.mp4 --llm-provider openai --llm-model gpt-5 --reasoning-effort medium --text-verbosity medium
chaptify aivideo.mp4 --llm-provider groq --llm-model llama-3.1-70b-versatile
chaptify aivideo.mp4 --llm-provider gemini --llm-model gemini-2.0-flash # requires `pip install -e '.[gemini,langchain]'`
chaptify aivideo.mp4 --max-upload-mb 25
chaptify aivideo.mp4 --clear-cache
chaptify aivideo.mp4 --cc
chaptify aivideo.mp4 --cache-dir /tmp/chaptify-cache
Publish (PyPI)
python3 -m build
python3 -m twine upload dist/*
Preflight (no secrets)
./scripts/check_secrets.sh
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file chaptify-0.1.0.tar.gz.
File metadata
- Download URL: chaptify-0.1.0.tar.gz
- Upload date:
- Size: 2.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
133b24b7721d3a692c09a8d2ef24aedca9ccfea195f9f0606c6f0302a5065bc3
|
|
| MD5 |
a68d8e237f2de26dcf2a106b0535d9cf
|
|
| BLAKE2b-256 |
5e4879f251bae0753d31ab41f2df6542beef561ce56511c1c5aa2bb19499d7b9
|
File details
Details for the file chaptify-0.1.0-py3-none-any.whl.
File metadata
- Download URL: chaptify-0.1.0-py3-none-any.whl
- Upload date:
- Size: 21.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
89805ff6bafa319c1ff41c843e5a46422fdcb69293734c74091d6922873f68e9
|
|
| MD5 |
4c6712f26d98f7aef818d9434af7503b
|
|
| BLAKE2b-256 |
2133fb3c94caff20b6f7fe8291806dcaa7a9c1a25e8ac815c8d2d0e5196f8e7d
|