Files
songs2vid/website/docs/intro.md
T

48 lines
2.1 KiB
Markdown

---
sidebar_position: 1
slug: /intro
---
# Introduction
**Songs2VID** turns a cover image and one or more audio files into YouTube-ready videos, then uploads them to your channel (FFmpeg encoding + BullMQ jobs).
This documentation is for the **self-hosted / open-source** edition. That build is payment-free: no Stripe, no plans, no credits, and no paywall. Every deployment has full layout, API, and playlist entitlements.
Hosted cloud at [songs2vid.com](https://songs2vid.com) is a separate SaaS product and is not what these self-host guides describe.
## What you can do
- Combine one image with multiple tracks in a batch
- Set per-video metadata (YouTube **video title**, on-video **song title** / **artist**, description, tags, privacy, resolution)
- Art-track layouts with blur backgrounds and fine-tuning (padding, title/artist gap, text offsets)
- Typography: curated or uploaded `.ttf` / `.otf` fonts shared by Layout Studio preview and FFmpeg
- Custom watermarks: Songs2VID badge, text, or logo — positions/offsets match the live preview
- Unique cover image per track
- Add uploads to YouTube playlists
- Use the REST API for automation
See [Video editing](./video-editing.md) for composition controls in the dashboard and API.
## Self-host
Follow [Getting started](./getting-started.md). The recommended path is Docker with image
[`atakanozban/songs2vid:latest`](https://hub.docker.com/r/atakanozban/songs2vid) or a local Compose build from the [Gitea OSS repo](https://git.atakanozban.com/Songs2VID/songs2vid).
After sign-in you land on the dashboard. Settings are limited to **account**, **YouTube**, and **API key** — there is no billing or pricing UI.
Going to a public URL? See [Production notes](./deploy.md) (OAuth redirect, worker, HTTPS). Docker/Caddy samples in the repo are optional.
## REST API
Programmatic uploads and job creation. Generate an API key under **Dashboard → Settings → API key**. Start with [API overview](./api/overview.md).
## Stack
- Next.js 15 (App Router, TypeScript, Tailwind)
- PostgreSQL + Prisma
- Redis + BullMQ
- NextAuth (Google OAuth with YouTube scopes)
- FFmpeg for encoding
- YouTube Data API v3