Update README.md

This commit is contained in:
2026-08-03 06:01:10 +00:00
parent 9c47d0ce1b
commit e4988b8132
+18 -19
View File
@@ -1,17 +1,15 @@
# Songs2VID # 🎬 Songs2VID
Payment-free, self-hosted software that turns cover art and audio into YouTube videos 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 (FFmpeg encoding + BullMQ jobs). Every deployment has full entitlements there are no
plans, credits, purchases, subscriptions, paywalls, or Stripe. plans, credits, purchases, subscriptions, paywalls, or Stripe.
Sign in with Google, open the dashboard, and create videos. Settings cover account, Sign in with Google, open the dashboard, and create videos. Settings cover account,
YouTube connection, and API keys only. YouTube connection, and API keys only.
![Songs2VID Dashboard](https://www.atakanozban.com/Content/uploads/projects-media/f59f2b3c290042ceb8d12fe9395b0dda.png) ![Songs2VID Dashboard](https://www.atakanozban.com/Content/uploads/projects-media/f59f2b3c290042ceb8d12fe9395b0dda.png)
## Quick start (Docker) ## 🚀 Quick start (Docker)
Published image: [`atakanozban/songs2vid:latest`](https://hub.docker.com/r/atakanozban/songs2vid) Published image: [`atakanozban/songs2vid:latest`](https://hub.docker.com/r/atakanozban/songs2vid)
@@ -38,22 +36,22 @@ Open http://localhost:3000 → sign in → dashboard.
No Stripe keys, billing env vars, or edition flags are required. Watermarks are optional; No Stripe keys, billing env vars, or edition flags are required. Watermarks are optional;
OSS does not force a free-tier SaaS badge paywall. OSS does not force a free-tier SaaS badge paywall.
## Features ## Features
- Batch: one cover (or per-track covers) + many audio files → YouTube uploads - 📦 Batch: one cover (or per-track covers) + many audio files → YouTube uploads
- Classic letterbox and art-track layouts (blur backgrounds, typography, fine-tuning) - 🖼️ Classic letterbox and art-track layouts (blur backgrounds, typography, fine-tuning)
- Custom watermarks (badge, text, or logo) and curated or uploaded fonts - 💧 Custom watermarks (badge, text, or logo) and curated or uploaded fonts
- YouTube playlists, privacy, tags, resolution, categories - ▶️ YouTube playlists, privacy, tags, resolution, categories
- REST API for automation (keys under **Dashboard → Settings → API key**) - 🔌 REST API for automation (keys under **Dashboard → Settings → API key**)
- Always-on self-hosted entitlements (no quota paywall) - 🔓 Always-on self-hosted entitlements (no quota paywall)
## API documentation ## 📚 API documentation
- In-repo: [docs/api/overview.md](./docs/api/overview.md) and [docs/api/endpoints.md](./docs/api/endpoints.md) - In-repo: [docs/api/overview.md](./docs/api/overview.md) and [docs/api/endpoints.md](./docs/api/endpoints.md)
- Live site: [docs.songs2vid.com/docs/api/overview](https://docs.songs2vid.com/docs/api/overview) - Live site: [docs.songs2vid.com/docs/api/overview](https://docs.songs2vid.com/docs/api/overview)
- Machine-readable discovery: `GET /api/v1` (no auth; no billing routes) - Machine-readable discovery: `GET /api/v1` (no auth; no billing routes)
## Local development ## 🛠️ Local development
```bash ```bash
docker compose -f docker-compose.dev.yml up -d docker compose -f docker-compose.dev.yml up -d
@@ -66,18 +64,18 @@ npm run dev:all
- App: http://localhost:3000 - App: http://localhost:3000
- `dev:all` runs Next.js and the BullMQ worker - `dev:all` runs Next.js and the BullMQ worker
## Environment ## ⚙️ Environment
See [`.env.example`](./.env.example) for the required and optional variables. Matching guide: See [`.env.example`](./.env.example) for the required and optional variables. Matching guide:
[docs.songs2vid.com/docs/environment](https://docs.songs2vid.com/docs/environment). [docs.songs2vid.com/docs/environment](https://docs.songs2vid.com/docs/environment).
## Legal (self-hosted) ## ⚖️ Legal (self-hosted)
In-app **Privacy** and **Terms** pages describe self-hosted responsibility: the operator of In-app **Privacy** and **Terms** pages describe self-hosted responsibility: the operator of
each instance controls data and access; this software does not process payments. They are not each instance controls data and access; this software does not process payments. They are not
the paid cloud terms for [songs2vid.com](https://songs2vid.com). the paid cloud terms for [songs2vid.com](https://songs2vid.com).
## Stack ## 🧱 Stack
- Next.js 15, TypeScript, Tailwind - Next.js 15, TypeScript, Tailwind
- PostgreSQL and Prisma - PostgreSQL and Prisma
@@ -86,12 +84,13 @@ the paid cloud terms for [songs2vid.com](https://songs2vid.com).
- FFmpeg - FFmpeg
- YouTube Data API v3 - YouTube Data API v3
## Links ## 🔗 Links
- Docs: [docs.songs2vid.com](https://docs.songs2vid.com) - Docs: [docs.songs2vid.com](https://docs.songs2vid.com)
- Docker Hub: [atakanozban/songs2vid](https://hub.docker.com/r/atakanozban/songs2vid) - Docker Hub: [atakanozban/songs2vid](https://hub.docker.com/r/atakanozban/songs2vid)
- Source: [git.atakanozban.com/Songs2VID](https://git.atakanozban.com/Songs2VID) - Source: [git.atakanozban.com/Songs2VID](https://git.atakanozban.com/Songs2VID)
- Hosted SaaS (separate product): [songs2vid.com](https://songs2vid.com) - Hosted SaaS (separate product): [songs2vid.com](https://songs2vid.com)
## License ## 📄 License
[MIT](./LICENSE) [MIT](./LICENSE)