SubPlz - Subtitle Pipeline for Everyone
Automatically download YouTube videos and burn clean, professional subtitles into them!
Features
- One-command processing - Just provide a YouTube URL or local video
- Clean burned-in subtitles - Professional white text with black outline
- AI-powered transcription - Uses OpenAI Whisper for accurate subtitles
- Multiple formats - Supports YouTube URLs and local video files
- Smart dependency handling - Guides you through installing missing dependencies
- Automatic cleanup - Removes temporary files after processing
Installation
pip install subtitle-for-everyone
System Requirements
Required Dependencies
- Python 3.8+
- FFmpeg - For video processing
- Windows: Download from ffmpeg.org
- macOS:
brew install ffmpeg - Linux:
sudo apt install ffmpeg
Python Dependencies (Installed Automatically)
yt-dlp- YouTube video downloadingopenai-whisper- AI subtitle generationtorch- Machine learning backendffmpeg-python- Video processingtqdm- Progress bars
Quick Start
Process YouTube Videos
# Single YouTube video
subplz https://www.youtube.com/watch?v=VIDEO_ID
# The command will:
# 1. Download the video
# 2. Generate subtitles using AI
# 3. Burn clean white subtitles into the video
# 4. Save to 'processed_videos' folder
Process Local Videos
# Local video file
subplz /path/to/your/video.mp4
subplz "C:\\Users\\Name\\Videos\\myvideo.mp4"
Custom Output Directory
subplz https://www.youtube.com/watch?v=VIDEO_ID -o my_output_folder
Clean Professional Subtitles
SubPlz creates clean, readable subtitles that look professional:
- White text (#FFFFFF) for maximum visibility
- Black outline for contrast on any background
- No background box - clean appearance
- Arial Bold font at size 24
- Bottom center positioning with proper margins
- Perfect readability on any video content
Output
- Processed videos are saved with
_with_subtitlessuffix - Original video quality is preserved
- Subtitles are permanently burned into the video
- Temporary files are automatically cleaned up
Dependency Troubleshooting
If you get dependency errors, SubPlz will guide you:
Missing FFmpeg
Missing dependencies: ffmpeg
Installation Instructions:
To install FFmpeg:
Windows: Download from https://ffmpeg.org/download.html
macOS: brew install ffmpeg
Linux: sudo apt install ffmpeg
Then add FFmpeg to your system PATH
Missing yt-dlp
Missing dependencies: yt-dlp
Installation Instructions:
To install yt-dlp:
pip install yt-dlp
Advanced Configuration
SubPlz uses sensible defaults, but you can customize behavior by modifying the config:
# In your Python code
from subplz.config import NETFLIX_SUBTITLE_STYLE
# Customize subtitle appearance
NETFLIX_SUBTITLE_STYLE['fontsize'] = 28 # Bigger text
NETFLIX_SUBTITLE_STYLE['primary_colour'] = "&Hffffff" # White text (default)
NETFLIX_SUBTITLE_STYLE['outline'] = 3 # Thicker outline
Examples
Basic Usage
# Download and add subtitles to a YouTube video
subplz "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
Batch Processing Script
import subprocess
urls = [
"https://www.youtube.com/watch?v=VIDEO1",
"https://www.youtube.com/watch?v=VIDEO2",
"https://www.youtube.com/watch?v=VIDEO3"
]
for url in urls:
subprocess.run(["subplz", url])
Local Video Processing
# Add subtitles to local videos
subplz "/Users/name/Movies/lecture.mp4"
subplz "C:\\Downloads\\presentation.mp4"
Troubleshooting
Common Issues
-
"Command not found: subplz"
pip install --upgrade subtitle-for-everyone # Or try: python -m subplz
-
"FFmpeg not found"
- Install FFmpeg and add to system PATH
- Restart terminal after installation
-
Out of memory errors
- Use smaller Whisper model: modify
WHISPER_MODEL = "tiny"in config
- Use smaller Whisper model: modify
-
Video download failures
- Some videos may be region-blocked or private
- Try different video URLs
License
MIT License - see LICENSE file for details.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Support
- GitHub Issues: github.com/guider23/subplz/issues
- Email: sofiyasenthilkumar@gmail.com
Acknowledgments
- OpenAI Whisper - AI transcription
- yt-dlp - YouTube downloading
- FFmpeg - Video processing
Made with care by Sid & Kan
Metadata
Release files for subtitle-for-everyone 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| subtitle_for_everyone-1.0.3.tar.gz | 11.7 kB | Without provenance | Details for subtitle_for_everyone-1.0.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| subtitle_for_everyone-1.0.3-py3-none-any.whl | Python 3 | none | any | Details for subtitle_for_everyone-1.0.3-py3-none-any.whl |
Total release size: 22.1 kB
Release files / subtitle_for_everyone-1.0.3.tar.gz
| Download URL | subtitle_for_everyone-1.0.3.tar.gz |
|---|---|
| Size | 11.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7f89b8c5bad700f1a981b47630ed3d752cab13140e74e9fd0b8a0a269a3a7a97
|
|
BLAKE2b-256 checksum How to use checksums |
b939ace815fd70de7eeb7017159db1e22121933cb5953491bc5e0002173dcec6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.0
|
Release files / subtitle_for_everyone-1.0.3-py3-none-any.whl
| Download URL | subtitle_for_everyone-1.0.3-py3-none-any.whl |
|---|---|
| Size | 10.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
533e2bb29b1de6e9d62f54443115a2e92d6823d29165e063e58acecaf67a5315
|
|
BLAKE2b-256 checksum How to use checksums |
0fb964623b9eec09ba5de397a1f4284c34de901c6fa8388826c3e7a3350a6d3c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.0
|
Security for subtitle-for-everyone 1.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.