Fix double-scaled badge preview, bump default watermark to 42% frame width, and update OSS docs/API for title vs songTitle separation and shared typography. Co-authored-by: Cursor <cursoragent@cursor.com>
45 lines
1.8 KiB
Markdown
45 lines
1.8 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.
|
|
|
|
This documentation is for **self-hosted / open-source** deployments (`S2VID_EDITION=selfhosted`).
|
|
|
|
## 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). Set `S2VID_EDITION=selfhosted` for unlimited video allowance, API access, and all layout features (the optional root Compose example sets this for you).
|
|
|
|
For local development, `npm run dev:all` starts the app (port 3000), worker, and this docs site (port 3001).
|
|
|
|
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 access**. 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
|