Files
songs2vid/README.md
T

73 lines
2.4 KiB
Markdown

# 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`](https://hub.docker.com/r/atakanozban/songs2vid)
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](https://console.cloud.google.com/), 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):
```bash
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
```bash
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
```
- App: http://localhost:3000
- `dev:all` runs Next.js and the BullMQ worker
## Stack
- Next.js 15, TypeScript, Tailwind
- PostgreSQL and Prisma
- Redis and BullMQ
- NextAuth with Google OAuth (YouTube scopes)
- FFmpeg
- YouTube Data API v3
## Links
- Docs: [docs.songs2vid.com](https://docs.songs2vid.com)
- Docker Hub: [atakanozban/songs2vid](https://hub.docker.com/r/atakanozban/songs2vid)
- Source: [git.atakanozban.com/Songs2VID](https://git.atakanozban.com/Songs2VID)
- Hosted SaaS (separate product): [songs2vid.com](https://songs2vid.com)