Deploy SubtitlePro
A web service overlaying Korean YouTube subtitles via AssemblyAI & Claude.
subtitle-pro
Just deployed
/app/.cache
Deploy and Host Subtitle Pro on Railway
Subtitle Pro is a Next.js web application designed to automatically generate and overlay Korean subtitles on YouTube videos. By leveraging yt-dlp for audio extraction, AssemblyAI for speech-to-text recognition, and Claude for high-quality translation, it provides a seamless viewing experience for foreign-language content directly in your browser.
About Hosting Subtitle Pro
Hosting Subtitle Pro requires an environment capable of running Node.js and system-level audio processing tools. Railway simplifies this deployment by automatically provisioning the Next.js frontend and backend APIs within a single service using Nixpacks. Because the application extracts and processes media files on the fly, it relies heavily on system dependencies like ffmpeg and yt-dlp. Railway handles this seamlessly via Nixpacks configuration.
Additionally, Subtitle Pro caches completed translations locally to minimize API costs and improve load times for previously processed videos. This requires a persistent Railway Volume mounted directly to the application container. With Railway's HTTP proxy and custom domains, the application is exposed securely over HTTPS, allowing users to simply append a YouTube video ID to the URL and instantly view translated subtitles.
Common Use Cases
- Language Learning
- Accessibility
- Content Analysis
Dependencies for Subtitle Pro Hosting
- Railway Volume
- AssemblyAI API
- Anthropic API
- System packages (ffmpeg, yt-dlp)
Deployment Dependencies
Implementation Details
Docker
No Dockerfile is strictly required. Railway automatically builds the repository using Nixpacks. However, you must instruct Nixpacks to install the required system dependencies via environment variables.
Public Networking
| Proxy Type | Target Port |
|---|---|
| HTTP Proxy | 3001 |
Environment Variables
| Variable | Required | Description |
|---|---|---|
ANTHROPIC_API_KEY | Yes | Your API key for Claude translation (obtained from the Anthropic Console). |
ASSEMBLYAI_API_KEY | Yes | Your API key for STT transcription (obtained from the AssemblyAI Console). |
NIXPACKS_PKGS | Yes | System dependencies required for build and runtime extraction. |
PORT | No | Target port for the application. Defaults to 3001. |
ANTHROPIC_API_KEY=sk-ant-xxx
ASSEMBLYAI_API_KEY=xxx
NIXPACKS_PKGS=ffmpeg yt-dlp
PORT=3001
Persistent Storage
A persistent volume is required to cache generated subtitles in the .cache/ directory to avoid regenerating them on subsequent requests.
- Open Railway Service Settings
- Go to Volumes
- Click Add Volume
- Mount Path:
/app/.cache
Database
No external database is required. Application state relies on an in-memory job store and the disk-based cache volume.
Build & Start
No custom build or start commands are required. Railway's Nixpacks builder will automatically detect the Next.js application, install npm dependencies, and run the default build and start scripts.
Accessing the Application
- Go to Railway Settings → Networking → Generate Domain.
- Access the application by appending a YouTube video ID to your generated URL.
- Example:
[https://your-app.up.railway.app/watch?v=dQw4w9WgXcQ](https://your-app.up.railway.app/watch?v=dQw4w9WgXcQ) - The application will automatically begin the extraction, transcription, and translation pipeline upon opening a valid video link.
Why Deploy Subtitle Pro on Railway?
Railway is a modern app hosting platform that makes it easy to deploy production-ready apps quickly. Railway offers seamless GitHub integration, automatic deployments, and a built-in marketplace. By deploying on Railway, you get instant HTTPS, automated rollbacks, and simple horizontal scaling without managing servers or complex infrastructure.
Template Content
subtitle-pro
bilalnawaz072/subtitle-proANTHROPIC_API_KEY
"your_anthropic_key_here"
ASSEMBLYAI_API_KEY
"your_assemblyai_key_here"
