Project Category: Individual Project (Personal Productivity Tool)
I built a smart Python wrapper around FFmpeg that implements intelligent fallback logic: check for subtitles → extract if found → fallback to MP3 audio if not. My design philosophy: never fail empty - always produce usable output regardless of input video structure.
A complete cross-platform solution for recording, converting, and streaming audio/video. FFmpeg can decode virtually any media format, probe file metadata, extract individual streams (audio, video, subtitles), and transcode between formats. It's the industry-standard tool for media manipulation, used by YouTube, VLC, and thousands of applications. I use it for two operations: extracting SRT subtitle tracks from video containers, and converting audio streams to MP3 format.
Python's subprocess module allows me to spawn new processes and connect to their input/output/error pipes. I use it to execute FFmpeg commands, capture output, and parse results. This lets me integrate FFmpeg's powerful media processing into a Python workflow with error handling and conditional logic.
extracted_captions/
extracted_audio/
FFmpeg alone requires knowing if subtitles exist beforehand. My wrapper handles detection and decision-making automatically
I implemented try-except logic: attempt subtitle extraction → if fails → extract audio instead
I created drag-and-drop batch files for non-technical users - no command-line knowledge required
My code creates separate directories (extracted_captions/
vs extracted_audio/
) for easy file management
extract_cc.bat "path\to\video.mp4"
py cc_extractor.py "video.mp4"
Video-subtitle&mp3-extractor/
├── extracted_captions/ # Created if subtitles found
│ └── video_name.srt
├── extracted_audio/ # Created if no subtitles
│ └── video_name.mp3
C:\ffmpeg\bin\ffmpeg.exe
py
)