Initial commit from Create Next App
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# s2yt
|
||||
|
||||
Create YouTube videos from an image and audio files.
|
||||
|
||||
## Stack
|
||||
|
||||
- Next.js 15 (App Router, TypeScript, Tailwind)
|
||||
- PostgreSQL + Prisma
|
||||
- Redis + BullMQ
|
||||
- NextAuth (Google OAuth with YouTube scopes)
|
||||
- FFmpeg for video encoding
|
||||
- YouTube Data API v3
|
||||
|
||||
## Setup
|
||||
|
||||
1. Copy environment variables:
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
```
|
||||
|
||||
2. Start PostgreSQL and Redis:
|
||||
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
3. Install dependencies and run migrations:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
npm run db:push
|
||||
```
|
||||
|
||||
4. Configure Google OAuth in [Google Cloud Console](https://console.cloud.google.com/):
|
||||
- Enable YouTube Data API v3
|
||||
- Create OAuth 2.0 credentials
|
||||
- Add redirect URI: `http://localhost:3000/api/auth/callback/google`
|
||||
- Set `GOOGLE_CLIENT_ID` and `GOOGLE_CLIENT_SECRET` in `.env`
|
||||
|
||||
5. Install FFmpeg on your system (required for the worker).
|
||||
|
||||
6. Start the web app and worker in separate terminals:
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
npm run worker
|
||||
```
|
||||
|
||||
## Free Plan
|
||||
|
||||
- 14 videos/month (each audio = 1 video)
|
||||
- Max 720p resolution
|
||||
- 30 MB max per file
|
||||
- Watermark required
|
||||
- Per-video metadata (title auto-filled from audio filename)
|
||||
|
||||
## Scripts
|
||||
|
||||
- `npm run dev` — Next.js dev server
|
||||
- `npm run worker` — Background job processor
|
||||
- `npm run db:push` — Push Prisma schema to database
|
||||
- `npm run build` — Production build
|
||||
Reference in New Issue
Block a user