Gemini Lesson Video Pipeline
Turn a lesson plan into narrated videos and Shorts, then publish them to YouTube automatically.
- Stars
- ★ 365
- Last updated
- today
- Primary language
- Python
- FA score
- 41/100 · Major gaps
At a glance
- How it runs
- Works with
- Platform-specific
- Cost
- Free software; you pay for model usage
- Setup effort
- Medium · a few setup steps
- You'll need
- Typical use
- An independent creator publishing a daily introductory AI course can use a lesson plan to drive video and Short production.
- Not a fit if
- Teams that do not use YouTube or want to avoid automatic publishing
- Creators who require human review before each upload
- Source review
- 41/100 · Major gaps 2 safety controls not found
What does this agent do, and when should you use it?
This Python 3.11 pipeline creates educational videos from a course plan and uploads them to YouTube. A GitHub Actions schedule starts it daily at 7:00 AM UTC, selects the next pending lesson from content_plan.json, and asks Gemini 2.5 Flash for a slide script, Short copy, and metadata. MoviePy, PIL, and FFmpeg combine narration, Pexels imagery, and background music into a landscape lesson, a vertical Short, and thumbnails. Uploads use YouTube Data API v3; after success, the pipeline updates the plan and commits it back to the repository. The README also documents a local invocation, while scheduled publishing requires GitHub Actions, API keys, and YouTube OAuth credentials.
The run reads the next lesson marked pending in content_plan.json. Gemini 2.5 Flash generates a 7–8 slide lesson script, a one-sentence Short script, hashtags, and video metadata. The pipeline uses gTTS for per-slide narration and the Pexels API for background images, then renders a 1920×1080 landscape lesson and a 1080×1920 vertical Short with MoviePy, PIL, and FFmpeg, mixing in background music and creating thumbnails. It uploads both formats and their thumbnails through YouTube Data API v3, then marks the lesson complete and commits the updated content_plan.json.
- An independent creator publishing a daily introductory AI course can use a lesson plan to drive video and Short production.
- A small educational channel team can reduce manual scripting, narration, editing, and upload work for a list of planned topics.
- A channel operator who needs both landscape lessons and vertical Shorts can produce the two formats from one lesson.
- A developer already using GitHub Actions can run scheduled content production on a CI runner without setting up a separate always-on server.
How do you install or deploy this agent?
The README documents local installation and a GitHub Actions deployment. Clone the repository and install the requirements:
git clone https://github.com/ChaitanyaEswarRajeshJakki/gemini-youtube-automation.git
cd gemini-youtube-automation
pip install -r requirements.txtFor scheduled deployment, add these secrets under the repository's Settings → Secrets and variables → Actions:
GOOGLE_API_KEY
PEXELS_API_KEY
CLIENT_SECRET_B64
CREDENTIALS_B64The README describes the last two as base64-encoded YouTube OAuth client_secrets.json and credentials.json files. The stated runtime is Python 3.11; rendering uses MoviePy, FFmpeg, PIL, and ImageMagick.
How do you use this agent?
Run locally with:
python main.pyBefore running, provide GOOGLE_API_KEY and PEXELS_API_KEY, plus the YouTube OAuth client_secrets.json and credentials.json files (for GitHub Actions, supplied as CLIENT_SECRET_B64 and CREDENTIALS_B64). The documented scheduled job runs daily at 7:00 AM UTC, reads the next pending lesson in content_plan.json, and uploads the resulting videos. The README does not describe manual workflow triggers, retries, or a video review step.
What are this agent's strengths and limitations?
- One lesson plan produces both a 16:9 lesson video and a 9:16 YouTube Short.
- The scheduled pipeline connects script generation, gTTS narration, Pexels imagery, rendering, thumbnails, and YouTube upload.
- After a successful run, it updates and commits content_plan.json to track completed lessons.
- Script generation depends on Google Gemini 2.5 Flash, imagery on Pexels, and publishing on YouTube Data API v3.
- Setup requires several secrets and YouTube OAuth credentials; local execution also requires video-rendering dependencies.
- The README describes unattended generation and publishing but does not explain content review, failure recovery, or least-privilege permissions.
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| Gemini Lesson Video Pipeline This agent | 41 · Major gaps | Self-hosted serviceFree + model costs | ★ 365 | today | Python | — |
| ODS Private AI Server | 71 · Some gaps | CLIFree | ★ 7.6k | today | Python | OpenAI API · Claude API |
| Xiaobei | 56 · Major gaps | CLIFree + model costs | ★ 8.6k | 3d ago | Python | — |
| Node9 | 82 · Good | CLIFreemium | ★ 219 | today | TypeScript | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
The workflow grants contents: write, restores YouTube OAuth credentials, calls Gemini and Pexels, uploads videos, and pushes repository changes. The README claims zero human input; no pre-upload confirmation or rollback mechanism is shown, so least privilege is only partial and confirmation and external-effect controls score zero. The README and workflow describe the main data flow and explain Secrets use, but credential rotation, cleanup, and stronger handling are not documented. A few dependencies are pinned while most are not. The README declares MIT and provides a contribution path, but attribution and maintenance responsibility remain unclear.
The README’s scheduled workflow, dual-format outputs, and content-plan update broadly align with the workflow steps. Concurrency control and up to three push retries show some operational coordination. Most requirements are unpinned, and handling details for installation, API, and upload failures are limited, so dependency availability and failure diagnostics receive only partial credit.
The stated scenario is daily beginner-oriented AI developer lessons, with manual workflow_dispatch available; the runtime, Python version, and external services are specified. Capability boundaries, content-review options, and configuration for other courses or publishing strategies are not adequately described.
The README organizes features, workflow, stack, and setup, and gives clone, installation, and Secrets steps; names and paths are broadly consistent across the README and workflow. There is no FAQ, thorough limitations section, or change history. The README claims MIT, but the metadata is unknown and no LICENSE contents are provided, so the license file cannot be confirmed. The contribution section mentions issues and pull requests, but ownership and update cadence are unclear.
The described outputs include narrated, illustrated long-form lessons and vertical Shorts with thumbnails, followed by automatic upload, giving the pipeline a clear intended use. Automation reduces routine manual steps, but costs, quotas, content-quality controls, and human handling after failures are not quantified, limiting credit for value and cost-benefit.
The README makes specific workflow and feature claims, and the workflow corroborates scheduling, dependency installation, running the main program, and committing after success. Core implementation files are absent, so generation, upload, and content-plan logic cannot be checked. The demo and promotional claims lack independent corroboration in the supplied sources, and fact-versus-inference boundaries are only lightly marked, so these criteria receive partial credit.
- Not found in source: confirmation before actingTurn on (or add) a confirmation step before it acts, and try it in a sandbox or test environment before real data.
- Not found in source: disclosed external effectsEstablish which external systems it writes to, sends to or changes, and verify with test accounts or repos before production.
- Automatic uploads and repository writes have external effects; review YouTube OAuth scopes, GitHub write access, and video review procedures before enabling the workflow.
- The core program source and LICENSE text were not provided, so implementation details, license terms, and failure handling cannot be verified.