The project's README from github.com/AgriciDaniel/youtubepro. As one markdown file: README.md.
Research, understand, write, and package a YouTube video in one local-first workflow.
YouTube Pro is an evidence-grounded workspace for YouTube research, idea selection, script writing, and thumbnail creation. It combines public YouTube Data API v3 records with Gemini analysis while keeping API keys on the server.
YouTube Pro is an independent project. It is not affiliated with, endorsed by, or sponsored by YouTube or Google. YouTube and Google product names are trademarks of their respective owners.
Search a topic, inspect the returned public-data snapshot, compare momentum and publication patterns, review data coverage, and continue into AI-assisted insights and ideas.

Review every video included in the active public-data snapshot, with thumbnails, channel information, views, publication timing, likes, and comments visible in one grid.

Turn the active snapshot into a scan-first research brief with audience questions, opportunity themes, recommended moves, and a clear separation between observed evidence, inference, and metrics that require YouTube Studio.

Turn a selected idea into an editable script, then read it in a focused teleprompter with pace, size, cue, undo, and playback controls.

Describe the outcome once, add optional references or advanced controls, generate a readable 16:9 thumbnail, and create variations from the same workflow.
![]()
These screenshots come from a live local development build using public YouTube metadata. They are not generated interface mockups.
The product follows one continuous workflow:
There is no standalone Ideas screen. The legacy /ideas path redirects to the Ideas section inside Research.
Each press of New Workflow creates a separate local project. The sidebar keeps the eight most recent workflows in browser IndexedDB, lets the user rename or delete them, and reopens the last active Research, Script, or Thumbnail step. Research snapshots, generated ideas, editable scripts, thumbnail briefs, and generated thumbnail results are restored together. Uploaded reference images are intentionally not retained, so permission and file selection are fresh for every later generation.
Copy the example configuration and fill it locally:
cp .env.example .env
npm install
npm run dev
The server listens on 127.0.0.1:5000 by default. Open http://127.0.0.1:5000.
You can instead start without keys and enter them in Settings. Settings writes replacements to the ignored .env file with owner-only permissions. Saved values are never returned to the browser. Settings accepts direct loopback, same-origin requests only and rejects normal forwarded or reverse-proxy requests.
| Variable | Purpose | Default |
|---|---|---|
YOUTUBE_API_KEY |
YouTube Data API v3 search and enrichment | Required for Research |
GEMINI_API_KEY |
Gemini text and image generation | Required for AI features |
GEMINI_TEXT_MODEL |
Research, Ideas, Script, and regeneration model | gemini-3.7-flash |
GEMINI_IMAGE_MODEL |
Thumbnail generation model | gemini-3.1-flash-image |
PORT |
Local HTTP port | 5000 |
HOST |
Bind address | 127.0.0.1 |
The Settings page exposes the server allowlist and its current descriptions. Models are not hardcoded by the client. Changing the allowlist in server/gemini-models.ts changes the available Settings options.
.env is ignored.HOST is explicitly changed.Gemini image outputs include Google's invisible SynthID provenance. The application does not add a visible watermark and does not claim SynthID can be disabled.
npm run dev # development server
npm test # contract and provider-behavior tests
npm run check # TypeScript check
npm run build # production client and server build
npm start # run the production build
Continuous integration runs the test suite, TypeScript check, and production build on every pull request and push to main.
@google/genaiYouTube search is quota-expensive compared with video and channel enrichment. Gemini limits and pricing vary by model and account. Check the current official documentation before changing models or making the server remotely accessible:
YouTube Pro is open source under the Apache License 2.0.
See CONTRIBUTING.md for the local quality gate. Report security issues privately according to SECURITY.md, never in a public issue.