2026-07-17 01:17:06 +00:00
2026-07-17 02:29:14 +02:00
2026-07-17 01:17:06 +00:00

🎵 Songs2YT

Status Docker Self-hosted License

Turn your cover art + audio files into YouTube videos automatically. No manual rendering BS.
The ultimate life-saver for creators who waste hours opening Premiere/Vegas just to upload a single track.


🔥 What's the deal?

Songs2YT is a self-hosted automation beast that takes your audio files (MP3/WAV) and cover images, smashes them together with FFmpeg in a background queue, and uploads them straight to your YouTube channel.

This is the open-source (self-hosted) edition:

  • 🚫 Zero limits: No video upload quotas, no API rate limit bullshit.
  • 🔓 Fully Unlocked: Playlists and REST API are completely unlocked (S2YT_EDITION=selfhosted).
  • ☁️ Full Control: Run it on your own server. Your data, your rules.

Check out the hosted version: songs2yt.com

https://www.atakanozban.com/Content/uploads/projects-media/48c48767246741dda0ce3f67e480882f.png

🛠️ Requirements

  • Docker & Docker Compose (highly recommended, saves your mental health)
  • Or: Node 20+, Postgres, Redis, FFmpeg
  • Google Cloud OAuth client with YouTube Data API v3 enabled

🚀 Quick Start (Docker)

Skip the setup headache. Copy the env, spin it up, and go touch grass:

# Copy env template
cp .env.example .env

# Fill in GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, NEXTAUTH_SECRET, and NEXTAUTH_URL
nano .env

# Fire up the engine
docker compose up -d --build
  • Open http://localhost:3000
  • OAuth Redirect URL on Google Console: {NEXTAUTH_URL}/api/auth/callback/google

💻 Local Development

Want to hack on the codebase? Follow this:

# 1. Prepare env
cp .env.example .env

# 2. Spin up Postgres & Redis
docker compose -f docker-compose.dev.yml up -d

# 3. Get dependencies
npm install

# 4. Push database schema
npm run db:push

# 5. Run it (open two terminals)
npm run dev      # Terminal 1 (Next.js)
npm run worker   # Terminal 2 (BullMQ/FFmpeg Worker)

🏗️ Stack

  • Next.js (Frontend & API)
  • Postgres (Database)
  • Redis / BullMQ (Background render queue)
  • NextAuth (Google OAuth)
  • FFmpeg (The engine merging audio + image)
  • YouTube Data API (The rocket launcher pushing to YT)

📄 License

This project is licensed under the MIT License.

S
Description
Songs2YT is an automation tool that converts your audio and image files into high-quality videos and uploads them directly to YouTube.
Readme MIT 63 MiB
Languages
TypeScript 97.7%
CSS 1.7%
Dockerfile 0.6%