This is a Next.js project bootstrapped with create-next-app.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun devOpen http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
To avoid server freezes when processing large videos, configure these env vars in production:
# Max simultaneous transcribe jobs on one server process
TRANSCRIBE_MAX_CONCURRENCY=1
# Reject overly large audio files early (MB)
TRANSCRIBE_MAX_AUDIO_MB=60
# Download timeout for Bilibili audio stream (ms)
AUDIO_DOWNLOAD_TIMEOUT_MS=300000
# Transcribe process timeout (ms)
TRANSCRIBE_TIMEOUT_MS=900000TRANSCRIBE_MAX_CONCURRENCY=1prevents CPU/RAM spikes from multiple concurrent transcribe tasks.TRANSCRIBE_MAX_AUDIO_MBblocks huge files before exhausting memory/disk.- Download and transcribe timeout split improves failure diagnosis and avoids hanging worker processes.
For SSE endpoints (for example /api/transcribe and batch analyze stream), increase read timeout:
location /api/transcribe {
proxy_read_timeout 900s;
proxy_send_timeout 900s;
proxy_buffering off;
}Set a memory restart threshold and keep one app instance for this workload:
pm2 start npm --name subtitle -- start --max-memory-restart 700M