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
2026-08-03 07:03:17 +02:00
app Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
assets Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
components Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
hooks Initial OSS scaffold from Songs2VID (pre-strip) 2026-08-03 06:15:05 +02:00
lib Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
prisma Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
public Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
scripts Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
types Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
worker Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
.dockerignore Initial OSS scaffold from Songs2VID (pre-strip) 2026-08-03 06:15:05 +02:00
.env.example Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
.eslintrc.json Initial OSS scaffold from Songs2VID (pre-strip) 2026-08-03 06:15:05 +02:00
.gitignore Initial OSS scaffold from Songs2VID (pre-strip) 2026-08-03 06:15:05 +02:00
docker-compose.dev.yml Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
docker-compose.yml Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
Dockerfile Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
DOCKERHUB_OVERVIEW.md Document payment-free OSS self-host quick start and Docker Hub overview. 2026-08-03 07:03:17 +02:00
next-env.d.ts Initial OSS scaffold from Songs2VID (pre-strip) 2026-08-03 06:15:05 +02:00
next.config.ts Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
package-lock.json Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
package.json Strip Songs2VID to a payment-free self-hosted OSS core. 2026-08-03 06:52:00 +02:00
postcss.config.mjs Initial OSS scaffold from Songs2VID (pre-strip) 2026-08-03 06:15:05 +02:00
README.md Document payment-free OSS self-host quick start and Docker Hub overview. 2026-08-03 07:03:17 +02:00
tailwind.config.ts Initial OSS scaffold from Songs2VID (pre-strip) 2026-08-03 06:15:05 +02:00
tsconfig.json Initial OSS scaffold from Songs2VID (pre-strip) 2026-08-03 06:15:05 +02:00

Songs2VID OSS

Payment-free, self-hosted software that turns cover art and audio into YouTube videos (FFmpeg encoding + BullMQ jobs). Every deployment has full entitlements — there are no plans, credits, purchases, subscriptions, paywalls, or Stripe.

Sign in with Google, open the dashboard, and create videos. Settings cover account, YouTube connection, and API keys only.

Quick start (Docker)

Published image: atakanozban/songs2vid:latest

  1. Clone this repo (or copy docker-compose.yml + .env.example).
  2. Copy .env.example to .env and set at least:
    • NEXTAUTH_SECRET
    • GOOGLE_CLIENT_ID
    • GOOGLE_CLIENT_SECRET
  3. In Google Cloud Console, enable YouTube Data API v3 and add an OAuth redirect URI:
    • Local: http://localhost:3000/api/auth/callback/google
    • Production: https://YOUR_DOMAIN/api/auth/callback/google
  4. Start the stack (web + worker + Postgres + Redis):
docker compose up -d --build

Or pull the published image and run Compose after pointing services at atakanozban/songs2vid:latest (same env and volumes).

Open http://localhost:3000 → sign in → dashboard.

No Stripe keys or billing env vars are required.

Features

  • Batch: one cover (or per-track covers) + many audio files → YouTube uploads
  • Classic letterbox and art-track layouts (blur backgrounds, typography, fine-tuning)
  • Custom watermarks (badge, text, or logo) and curated or uploaded fonts
  • YouTube playlists, privacy, tags, resolution, categories
  • REST API for automation (keys under Dashboard → Settings → API key)
  • Always-on self-hosted entitlements (no quota paywall)

Local development

docker compose -f docker-compose.dev.yml up -d
cp .env.example .env   # then edit secrets / Google OAuth
npm install
npm run db:migrate
npm run dev:all

Stack

  • Next.js 15, TypeScript, Tailwind
  • PostgreSQL and Prisma
  • Redis and BullMQ
  • NextAuth with Google OAuth (YouTube scopes)
  • FFmpeg
  • YouTube Data API v3