Songs2VID is an automation tool that converts your audio and image files into high-quality videos and uploads them directly to YouTube.
Go to file
Atakan Doğan Özban 5c18d199fd Restrict Google OAuth to youtube.force-ssl and document zero Google data sharing.
Addresses Google OAuth verification feedback on scopes and privacy disclosure.
2026-07-22 18:17:49 +02:00
app Restrict Google OAuth to youtube.force-ssl and document zero Google data sharing. 2026-07-22 18:17:49 +02:00
components Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
lib Restrict Google OAuth to youtube.force-ssl and document zero Google data sharing. 2026-07-22 18:17:49 +02:00
prisma Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
public Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
types Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
worker Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
.env.example Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
.eslintrc.json Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
.gitignore Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
AGENTS.md Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
CLAUDE.md Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
docker-compose.yml Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
eslint.config.mjs Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
next-env.d.ts Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
next.config.ts Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
package-lock.json Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
package.json Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
postcss.config.mjs Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
README.md Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
tailwind.config.ts Initial commit from Create Next App 2026-07-12 15:40:35 +02:00
tsconfig.json Initial commit from Create Next App 2026-07-12 15:40:35 +02:00

s2yt

Create YouTube videos from an image and audio files.

Stack

  • Next.js 15 (App Router, TypeScript, Tailwind)
  • PostgreSQL + Prisma
  • Redis + BullMQ
  • NextAuth (Google OAuth with YouTube scopes)
  • FFmpeg for video encoding
  • YouTube Data API v3

Setup

  1. Copy environment variables:
cp .env.example .env
  1. Start PostgreSQL and Redis:
docker compose up -d
  1. Install dependencies and run migrations:
npm install
npm run db:push
  1. Configure Google OAuth in Google Cloud Console:

    • Enable YouTube Data API v3
    • Create OAuth 2.0 credentials
    • Add redirect URI: http://localhost:3000/api/auth/callback/google
    • Set GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET in .env
  2. Install FFmpeg on your system (required for the worker).

  3. Start the web app and worker in separate terminals:

npm run dev
npm run worker

Free Plan

  • 14 videos/month (each audio = 1 video)
  • Max 720p resolution
  • 30 MB max per file
  • Watermark required
  • Per-video metadata (title auto-filled from audio filename)

Scripts

  • npm run dev — Next.js dev server
  • npm run worker — Background job processor
  • npm run db:push — Push Prisma schema to database
  • npm run build — Production build