MyContentBuddy is an AI-powered YouTube creator toolkit built to help creators move faster from idea to publish-ready content.
It combines script generation, download tools, and video metadata utilities into one clean workflow for YouTube creators, editors, and social media teams.
- Generates structured YouTube scripts with Gemini
- Lets logged-in free users generate scripts up to the monthly limit
- Offers public creator tools without login
- Downloads YouTube media with yt-dlp
- Extracts video metadata and summaries
- Supports PDF export for generated scripts
- AI script generator for YouTube content
- Login-based script access control
- Monthly free-plan usage tracking
- Public MP3, MP4, and thumbnail download tools
- Fast HTMX-based interactions
- Supabase-backed auth/session sync
- SEO-ready pages and structured metadata
- Script Generator
- YouTube to MP3 Converter
- YouTube to MP4 Downloader
- Thumbnail Downloader
- Video Summary / Metadata lookup
- FastAPI
- Jinja2 templates
- HTMX
- Supabase
- Gemini API
- yt-dlp
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
uvicorn app.main:app --reloadSet these in .env or your deployment platform:
| Name | Purpose |
|---|---|
SECRET_KEY |
Session signing key |
GEMINI_API_KEY |
Gemini API key for script generation |
YOUTUBE_API_KEY |
Optional YouTube Data API key |
SUPABASE_URL |
Supabase project URL |
SUPABASE_KEY |
Supabase service role key |
MONTHLY_FREE_SCRIPT_LIMIT |
Monthly script limit for free users |
SUBSCRIPTION_TABLE |
Table used to read the user plan |
SUBSCRIPTION_USER_ID_COLUMN |
User ID column in the plan table |
SUBSCRIPTION_PLAN_COLUMN |
Plan column in the plan table |
USAGE_LOGS_TABLE |
Table used to store script usage |
USAGE_LOGS_USER_ID_COLUMN |
User ID column in the usage table |
The app expects two tables:
-
profilesiduuid primary keyplantext, values likefreeorprocreated_attimestamptzupdated_attimestamptz
-
usage_logsidbigint or uuid primary keyuser_iduuidcreated_attimestamptz
| Route | Method | Purpose |
|---|---|---|
/ |
GET | Main script generator |
/pricing |
GET | Pricing page |
/tools |
GET | Creator tools hub |
/scripts/generate |
POST | Generate a YouTube script |
/tools/options |
POST | Show download options |
/tools/download |
POST | Download media |
/tools/video-summary |
POST | Fetch video summary |
Downloaded files are stored in app/static/downloads/ and ignored by Git.
For best results with format merging, install ffmpeg on the host machine.
Use the downloader only for content you own or have permission to download.
You can deploy this project on Railway or any FastAPI-compatible host.
Add your environment variables in the deployment dashboard and ensure the Supabase tables exist before launching.