- name
- ai-hookbot
- description
- Scrape viral hooks from YouTube Shorts creators and stitch them with a CTA video to produce ready-to-post TikTok/Reels/Shorts content. Use when asked to make hooks, scrape Shorts, create content from a creator, or run the Hookbot pipeline. Triggers on phrases like "make me hooks from @X", "scrape hooks", "run hookbot", "create content from [creator]", "stitch my CTA".
AI Hookbot
Runs the Hookbot pipeline: scrapes YouTube Shorts hooks from a creator's channel, trims them, and stitches each with your CTA video to produce ready-to-post vertical content.
Setup
1. Install dependencies
pip install yt-dlp
brew install ffmpeg # macOS; or apt install ffmpeg on Linux2. Clone the pipeline scripts
git clone https://github.com/YOUR_REPO/hookbot-scripts ~/hookbotOr placepipeline.pyand related scripts in any directory — just setHOOKBOT_SCRIPTS_DIRbelow.
3. Configure environment variables
Copy config.example.env, fill in your paths, and either source it or add it to your shell profile:
cp config.example.env ~/.hookbot.env
# edit ~/.hookbot.env
source ~/.hookbot.env| Variable | Description | Default |
|---|---|---|
HOOKBOT_SCRIPTS_DIR | Directory containing pipeline.py | ~/hookbot |
HOOKBOT_CTA_DIR | Default folder to look for CTA videos | ~/hookbot/cta |
HOOKBOT_YTDLP_PATH | Path to yt-dlp binary | yt-dlp (assumes in PATH) |
HOOKBOT_FFMPEG_PATH | Path to ffmpeg binary | ffmpeg (assumes in PATH) |
YOUTUBE_API_KEY | YouTube Data API v3 key (only needed for --viral) | _(optional)_ |
Workflow
- Parse the user's request to extract:
- creator_url — YouTube Shorts URL (e.g. https://www.youtube.com/@ZackD/shorts). If only a handle/name is given, construct the URL. - cta_video — Path to CTA video. If only a filename is given, resolve against $HOOKBOT_CTA_DIR. If not specified, prompt the user. - count — Number of hooks (default: 10) - hook_duration — Seconds to grab from each hook (default: 3.0) - output_dir — Where to save final videos (default: ./output relative to $HOOKBOT_SCRIPTS_DIR)
- Resolve paths from environment variables (fall back to defaults if unset):
SCRIPTS_DIR="${HOOKBOT_SCRIPTS_DIR:-~/hookbot}"
CTA_DIR="${HOOKBOT_CTA_DIR:-~/hookbot/cta}"
YTDLP="${HOOKBOT_YTDLP_PATH:-yt-dlp}"
FFMPEG="${HOOKBOT_FFMPEG_PATH:-ffmpeg}"- Run the pipeline via
exec, passing only the required env vars explicitly (do NOT source~/.zshrcor any shell RC file):
cd "$SCRIPTS_DIR" && \
YTDLP_PATH="$YTDLP" \
FFMPEG_PATH="$FFMPEG" \
YOUTUBE_API_KEY="${YOUTUBE_API_KEY:-}" \
python3 pipeline.py "<creator_url>" "<cta_video>" \
--count <count> \
--hook-duration <hook_duration> \
--output <output_dir> \
[--viral]Add --viral when the user wants hooks sorted by view count (requires YOUTUBE_API_KEY). Default pulls most recent Shorts.
- Report back a summary:
- How many hooks were scraped - How many final videos were created - Output directory path - Any failures (sanitize error output before relaying — strip file paths and env var values)
Prompting for Missing Info
- CTA video not specified: Ask "Which CTA video should I use?" then list
.mp4files in$HOOKBOT_CTA_DIR. - Creator not specified: Ask for the YouTube channel handle or Shorts URL.
HOOKBOT_SCRIPTS_DIRnot set / pipeline.py not found: Tell the user to set the env var and point it to the scripts directory.
Example Invocations
- "Make me 10 hooks from @ZackD with MyCTA.mp4"
- "Scrape 5 hooks from youtube.com/@SomeCreator/shorts using my furniture CTA"
- "Run hookbot on @MrBeast, 3 second hooks, 15 videos, viral sort"
- "Make hooks from @PeterMcKinnon"
Notes
- Output videos are 9:16 vertical (1080×1920), normalized automatically.
- Temp files are cleaned up automatically by the pipeline.
- A
manifest.jsonis saved in the output directory with metadata. - If the pipeline errors, relay the error output to the user verbatim so they can debug.
--viralflag requires a YouTube Data API v3 key set asYOUTUBE_API_KEY. Get one at console.cloud.google.com.