# YouTube Pro (AgriciDaniel/youtubepro): a local-first research and script workspace, not the app you searched for

> AgriciDaniel/youtubepro is a TypeScript workspace that turns a public YouTube Data API v3 snapshot into grounded Gemini insights, a script and a thumbnail. It is Apache-2.0, runs on Node.js 22.12 or newer, and has nothing to do with the Android client of the same name.

**AgriciDaniel/youtubepro** — Local-first YouTube research, grounded AI insights, script writing, and thumbnail creation.

- Repository: https://github.com/AgriciDaniel/youtubepro
- Website: https://www.skool.com/ai-marketing-hub
- Stars: 405 · Forks: 143
- Language: TypeScript
- License: Apache-2.0
- Published: 2026-09-17 · Updated: 2026-09-17 · Language: en
- Canonical page: https://hysenlabs.com/projects/agricidaniel-youtubepro

## What AgriciDaniel/youtubepro actually solves, and who it is for

The problem is not finding YouTube videos. It is keeping the reasoning attached to the videos. Most workflows for this job start with a search, end with a chat window, and lose the link between a claim in the script and the video that produced it. This project keeps the link. The README describes it as an "evidence-grounded workspace for YouTube research, idea selection, script writing, and thumbnail creation" that combines "public YouTube Data API v3 records with Gemini analysis while keeping API keys on the server".

That sentence sets the audience. It is for a solo creator or a small team that wants a repeatable path from topic to script without pasting metadata into a chatbot by hand. It is not a publishing tool, not a scheduling tool, and not a YouTube Studio replacement. The README is explicit that some metrics are labeled as requiring YouTube Studio, which means the product knows where its data stops.

The name is a genuine adoption hazard. The repository is an independent project and the README states it is "not affiliated with, endorsed by, or sponsored by YouTube or Google". Most people searching for YouTube Pro are looking for something else entirely, and that gap matters more than any feature list.

## The snapshot is the unit of work, and that shapes everything

The mechanism is a bounded research snapshot. A search returns between 1 and 50 public videos, and that ordered set becomes the only evidence the AI sees. The README lists the AI evidence input as exactly the active ordered snapshot, at most 50 videos, plus deterministic aggregate analytics, enrichment coverage, warnings, filters, query, retrieval time and a snapshot ID.

That is a real design constraint, not a marketing line. It means the model cannot quietly pull in a video you did not retrieve, and it means the evidence ledger can point back to specific source video IDs. The README says claims "retain their snapshot identity and source video IDs, or are explicitly labeled as aggregate inference or as requiring YouTube Studio". Three categories, and the third one is the honest part: some questions simply cannot be answered from public data.

Enrichment covers public video statistics, duration, captions, tags, language, topic categories, selected status fields, live-stream details and public channel metadata when available. The README states that missing or private public fields "remain unavailable, never zero-filled". I would hold that up as the most defensible choice in the codebase. Zero-filling absent like counts is how analytics dashboards lie, and this one refuses to.

The workflow runs in one direction: Research, then AI Insights, then grounded Ideas, then Script Writer, then Thumbnail Creator. Ideas generate automatically after valid Insights, and there is no standalone Ideas screen; the legacy /ideas path redirects into Research. You select one idea and explicitly proceed to Script Writer. Section and paragraph regeneration reuse the same bounded evidence context, so a rewrite does not drift away from the snapshot.

## Installing youtubepro and running a first research pass

The README gives the install in three commands. Node.js 22.12 or newer is required, and CI verifies Node.js 22.12 and the current Node.js 24 LTS line. Copy the example configuration, install dependencies, and start the development server:

```bash
cp .env.example .env
npm install
npm run dev
```

The server listens on 127.0.0.1:5000 by default, so you open http://127.0.0.1:5000 in a browser. The dev script runs tsx server/index.ts with NODE_ENV=development. If you prefer to start without keys, the README says you can enter them later in Settings, which writes replacements to the ignored .env file with owner-only permissions and never returns saved values to the browser.

Two keys are needed. YOUTUBE_API_KEY comes from Google Cloud Console with the YouTube Data API v3 enabled, and GEMINI_API_KEY comes from Google AI Studio. The .env.example file also carries the model variables:

```bash
YOUTUBE_API_KEY=
GEMINI_API_KEY=
GEMINI_TEXT_MODEL=gemini-3.7-flash
GEMINI_IMAGE_MODEL=gemini-3.1-flash-image
PORT=5000
HOST=127.0.0.1
```

Models are not hardcoded by the client. The README states that changing the allowlist in server/gemini-models.ts changes the available Settings options, and that the Settings page exposes the server allowlist and its current descriptions. So swapping gemini-3.7-flash for another text model is a server-side edit, not a dropdown you can populate from the browser.

For a first pass, search a topic between 1 and 200 characters, request a sample of up to 50 videos, and read the coverage panel before the insights. The README notes that YouTube's overall result count is approximate and is labeled separately from the returned sample, which is the first place a beginner misreads the screen. After a valid Insights run, ideas generate automatically. Select one, proceed to Script Writer, then to Thumbnail Creator with up to three references. Each press of New Workflow creates a separate local project, and the sidebar keeps the eight most recent workflows in browser IndexedDB.

## Where youtubepro breaks, and the cases it was not built for

The rate limit is the first wall. Billable YouTube and Gemini routes allow 10 requests per client address per 60 seconds in this single-process local server. That is fine for one person clicking through a workflow and wrong for a team sharing an instance or any automated sweep. There is no queue described in the README, so the eleventh request in a minute fails rather than waits.

The access model is the second wall. Settings accepts direct loopback, same-origin requests only and rejects normal forwarded or reverse-proxy requests. The .env.example comment goes further: do not set HOST to 0.0.0.0 without a trusted authentication and rate-limiting gateway, because local Settings is not a public secret-management endpoint. Combine that with the absence of a login screen, initial password or any Pro gate, and this is a single-operator tool. Hosting it on a shared box without a gateway means exposing a settings endpoint that writes API keys to disk.

Uploaded reference images are deliberately not retained. The README says permission and file selection are fresh for every later generation. That is a defensible privacy choice and an annoying one: you cannot reopen a workflow and regenerate a thumbnail variation from the same reference without re-uploading it. Thumbnail references are also tightly bounded at PNG or JPEG, 128 to 4096 pixels, at most 5 MB after preparation per image, 12 MB decoded total, and no more than three references, with the browser rejecting source files over 10 MB before preparation. The 18 MB global JSON body limit exists to carry those base64 references.

Finally, the 50-video ceiling is a hard ceiling on evidence. If your topic needs a wide sample to be meaningful, this tool will give you a confident-looking brief built on a narrow one. The snapshot design makes that limitation visible, but visible is not the same as absent.

## The name collision: youtubepro versus the Android client people search for

Search results for YouTube Pro are dominated by an Android app, an APK, a music player, MicroG builds and version numbers like v38 or v56. Some of that traffic concerns YouTube Premium, the paid tier of the actual platform. None of it concerns this repository, and the README's disclaimer exists precisely because the name is shared.

The practical difference is that this project has no APK, no mobile client, no music playback and no subscription. It is a Node.js server plus a Vite client that you run yourself, and its output is a research brief, a script and a 16:9 thumbnail image. If you arrived looking for the Android client, the correct next step is to leave.

If you arrived looking for a way to reason about YouTube data, the alternative worth comparing is a general-purpose chat assistant with a browsing or search tool attached. The difference in approach is the evidence boundary. A chat assistant retrieves whatever it decides to retrieve, at whatever moment, and the citation trail is reconstructed after the fact. This project fixes the evidence set first, assigns it a snapshot ID, and constrains every later generation to that set. You trade flexibility for auditability. For script writing where you need to defend a claim, that trade is usually worth making. For open-ended exploration, it is a cage.

## Maintenance, upgrade cost and what Apache-2.0 means here

The repository is not archived and the last push was on 2026-08-27. Version 1.0.0 was released on 2026-08-24. That is a recent, versioned starting point rather than a long track record, and the README documents no migration path between versions because there has only been one release.

The upgrade surface is narrow in one direction and wide in another. Workflow history lives in browser IndexedDB and the README says research snapshots, generated ideas, editable scripts, thumbnail briefs and generated thumbnail results are restored together. There is no server-side database to migrate, which removes the usual upgrade pain. On the other side, model identifiers are pinned in .env and the allowlist lives in server/gemini-models.ts, so a Gemini model retirement becomes your edit. The README does not document rollback, and it does not describe what happens to an existing browser workflow when the snapshot schema changes.

The licence is Apache-2.0, stated in package.json and the LICENSE file. That permits commercial use and modification and includes an explicit patent grant, with the usual obligations around notices and stating changes. The package is marked private and version 1.0.0, so it is not published to npm as a library you can depend on. You vendor the repository. I am not a lawyer and this is not legal advice; if you plan to redistribute a modified build, read the LICENSE and NOTICE requirements yourself.

The dependency list is heavy on Radix UI primitives and includes @google/genai, which means npm audit noise will accumulate independently of the project's own release cadence. Budget for that.

## Conclusion

Adopt it if you write YouTube scripts from public data and want every Gemini claim tied to a snapshot ID and source video IDs instead of a chat window. Skip it if you want the Android YouTube Pro client, batch processing beyond 50 videos per search, or a multi-user deployment: Settings accepts direct loopback, same-origin requests only and rejects forwarded or reverse-proxy requests, so a shared instance needs a gateway the README does not describe. Before you commit, run npm test and npm run check, confirm gemini-3.7-flash and gemini-3.1-flash-image are available to your Gemini key, and check that your YouTube Data API v3 quota covers repeated 50-video searches.

## FAQ

### What is YouTube Pro by AgriciDaniel?

It is a local-first workspace that combines public YouTube Data API v3 records with Gemini analysis for research, idea selection, script writing and thumbnail creation. The README states it is an independent project, not affiliated with, endorsed by or sponsored by YouTube or Google.

### How do I install YouTube Pro?

You need Node.js 22.12 or newer. Copy .env.example to .env, run npm install, then npm run dev, and open http://127.0.0.1:5000. A YouTube Data API v3 key is required for Research and a Gemini API key for the AI features, and you can also enter both in Settings.

### How do I use YouTube Pro?

The workflow runs in one direction: search up to 50 public videos, let Gemini analyze the active snapshot, pick one of the ideas that generate automatically, write and edit the script, then create a thumbnail with up to three references. There is no standalone Ideas screen; the legacy /ideas path redirects into Research.

### Is YouTube Pro safe?

API keys stay server-side, .env is ignored, request and response bodies are not logged, and Settings writes replacements to .env with owner-only permissions without returning saved values to the browser. Settings accepts direct loopback, same-origin requests only and rejects forwarded or reverse-proxy requests, so do not bind it to 0.0.0.0 without a gateway.

### Is YouTube Pro an alternative to YouTube Premium?

No. YouTube Premium is a paid subscription tier of the YouTube platform, while this repository is a self-hosted Node.js research and scripting workspace with no subscription, no mobile client and no playback. The README's disclaimer about trademark and affiliation exists because the names collide.

### How much does YouTube Pro cost?

The project itself is Apache-2.0 and free to run locally, so there is no licence fee. Your costs are the YouTube Data API v3 and Gemini API usage on your own Google accounts, and the README notes that billable YouTube and Gemini routes allow 10 requests per client address per 60 seconds.

## Sources

- [AgriciDaniel/youtubepro on GitHub](https://github.com/AgriciDaniel/youtubepro)
- [License: Apache-2.0](https://github.com/AgriciDaniel/youtubepro/blob/main/LICENSE)
- [Project website](https://www.skool.com/ai-marketing-hub)
- [README](https://github.com/AgriciDaniel/youtubepro/blob/main/README.md)
- [Releases](https://github.com/AgriciDaniel/youtubepro/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/agricidaniel-youtubepro
