Skip to content

Neeshant01/auto-yt

AutoYT

An AI-assisted YouTube automation dashboard for trend discovery, scripting, thumbnail ideation, metadata generation, and upload workflow experiments.

Problem It Solves

YouTube creation often breaks across too many disconnected tools: research, scripting, metadata, thumbnails, scheduling, and publishing all happen in separate places. AutoYT brings those steps together into one product-style workflow so creators can move faster while keeping control of the final output.

Key Features

  • Google sign-in and YouTube channel connection flow
  • Trend discovery based on niche, country, and language inputs
  • AI-generated scripts in English, Hindi, and Hinglish
  • Metadata generation for titles, descriptions, tags, hashtags, and pinned comments
  • Thumbnail concept generation and image workflow experiments
  • Voiceover generation using Gemini TTS models
  • Video upload flow powered by YouTube APIs
  • Firestore-backed user profile and pipeline state handling

Tech Stack

  • React 19
  • TypeScript
  • Vite
  • Express
  • Firebase Auth and Firestore
  • Google Gemini API
  • YouTube Data API
  • Tailwind CSS

Architecture Overview

  • src/ contains the React application, dashboards, and AI workflow UI
  • server.ts handles OAuth, YouTube APIs, uploads, cron scheduling, and local serving
  • src/services/geminiService.ts contains content generation helpers
  • src/lib/firebase.ts initializes authentication and Firestore access
  • firebase-applet-config.json connects the frontend to the configured Firebase project

Project Structure

.
|-- src/
|   |-- App.tsx
|   |-- main.tsx
|   |-- index.css
|   |-- lib/
|   |   `-- firebase.ts
|   `-- services/
|       `-- geminiService.ts
|-- server.ts
|-- package.json
|-- firebase-applet-config.json
|-- firestore.rules
|-- .env.example
|-- vite.config.ts
`-- metadata.json

Requirements

  • Node.js 20+
  • npm
  • A Firebase project with Google authentication enabled
  • A Google Cloud project with YouTube API credentials
  • A Gemini API key

Configuration

Create a local .env file based on .env.example.

Required values:

  • YOUTUBE_CLIENT_ID
  • YOUTUBE_CLIENT_SECRET
  • GEMINI_API_KEY
  • APP_URL
  • SESSION_SECRET

Optional:

  • DISABLE_HMR=true for environments where file watching causes instability

You also need a valid firebase-applet-config.json connected to your Firebase project.

Run Locally

  1. Install dependencies.
npm install
  1. Create a .env file from .env.example.
  2. Add your Firebase config to firebase-applet-config.json.
  3. Start the development server.
npm run dev
  1. Open http://localhost:3000.

Typical Workflow

  1. Sign in with Google
  2. Connect the YouTube channel
  3. Configure niche, location, language, and automation mode
  4. Discover trends
  5. Generate scripts, thumbnails, and metadata
  6. Review everything carefully
  7. Upload or schedule content with manual judgment

Deployment

Recommended platforms:

  • Google Cloud Run
  • Render
  • Railway

Deployment notes:

  • set NODE_ENV=production
  • provide all required environment variables
  • use HTTPS for OAuth and secure cookies
  • keep APP_URL aligned with the deployed domain

Performance, Security, and Compliance Notes

  • SESSION_SECRET now uses an environment variable instead of a hardcoded value
  • OAuth and upload flows should only run over HTTPS in production
  • Review YouTube API policies and platform rules before enabling real publishing
  • AI-generated titles, scripts, and thumbnails should always be reviewed by a human before upload
  • Store tokens and user data responsibly if this project moves beyond demo use

Demo Plan

Suggested demo title:

  • AutoYT Demo: From Trend Discovery to YouTube Upload

Suggested screenshot filenames:

  • docs/images/dashboard-overview.png
  • docs/images/trend-discovery.png
  • docs/images/script-generation.png
  • docs/images/upload-flow.png

Suggested Open Graph preview idea:

  • Dark dashboard UI with trend cards, a script editor preview, and a red AutoYT mark in the corner

Roadmap

  • Add clearer job orchestration and queue management
  • Add safer token storage and production-grade secret handling
  • Add review checkpoints before upload and publish steps
  • Add more transparent status tracking for every pipeline stage

Contributing

Contributions are welcome for documentation, UX polish, type safety, and production-readiness improvements.

See CONTRIBUTING.md for contribution guidelines.

License

This repository is available under the MIT License.

Author

Built by Nishant Kumar

About

AI-assisted YouTube automation dashboard for trend discovery, scripting, thumbnail ideation, metadata generation, and upload workflows.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages