# Songs2YT Self-hosted tool that turns a cover image + audio files into YouTube videos and uploads them to your channel. This is the **open-source edition**: no video quotas, no API rate limits, playlists and REST API unlocked (`S2YT_EDITION=selfhosted`). Hosted product: [songs2yt.com](https://songs2yt.com) ## Requirements - Docker (recommended), or Node 20+, Postgres, Redis, FFmpeg - Google Cloud OAuth client with YouTube Data API v3 enabled ## Quick start (Docker) ```bash cp .env.example .env # set GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET, NEXTAUTH_SECRET, NEXTAUTH_URL docker compose up -d --build ``` Open http://localhost:3000 OAuth redirect: `{NEXTAUTH_URL}/api/auth/callback/google` ## Local development ```bash cp .env.example .env docker compose -f docker-compose.dev.yml up -d # Postgres + Redis npm install npm run db:push npm run dev # terminal 1 npm run worker # terminal 2 ``` ## Stack Next.js · Postgres · Redis/BullMQ · NextAuth (Google) · FFmpeg · YouTube Data API ## License MIT