Skip to main content

Generate YouTube chapters + SEO from local videos or YouTube URLs.

Project description

chaptify logo

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)
  • ffmpeg available on your PATH (macOS: brew install ffmpeg)
  • yt-dlp available on your PATH (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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chaptify-0.1.0.tar.gz (2.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chaptify-0.1.0-py3-none-any.whl (21.6 kB view details)

Uploaded Python 3

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

Hashes for chaptify-0.1.0.tar.gz
Algorithm Hash digest
SHA256 133b24b7721d3a692c09a8d2ef24aedca9ccfea195f9f0606c6f0302a5065bc3
MD5 a68d8e237f2de26dcf2a106b0535d9cf
BLAKE2b-256 5e4879f251bae0753d31ab41f2df6542beef561ce56511c1c5aa2bb19499d7b9

See more details on using hashes here.

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

Hashes for chaptify-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 89805ff6bafa319c1ff41c843e5a46422fdcb69293734c74091d6922873f68e9
MD5 4c6712f26d98f7aef818d9434af7503b
BLAKE2b-256 2133fb3c94caff20b6f7fe8291806dcaa7a9c1a25e8ac815c8d2d0e5196f8e7d

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page