How to Automatically Convert DVD Subtitles to SRT on Mac
me@grafxflow

Written by me@grafxflow

02 Jun, 2026
0
129

How to Automatically Convert DVD Subtitles to SRT on Mac

Ever tried importing old DVD media assets into Adobe Premiere Pro, only to find the subtitles are completely missing or unreadable?

Here is the frustrating truth: DVD subtitles aren’t text. They are actually a layer of VobSub images stored inside your MKV file. Because video editors like Premiere can't read these image files natively, you are usually left with two terrible options: pay for expensive conversion software, or spend hours of your life manually transcribing and typing out the entire movie script by hand.

Fortunately, there is a hidden, 100% free macOS gem that saves your sanity (and your fingers).

By leveraging the open-source power of Subler, you can use Optical Character Recognition (OCR) to automatically translate those graphics into clean, editable text .srt files in just a few clicks.


The Graphical Method: Step-by-Step with Subler

If you prefer using a visual app interface rather than messing with code, Subler is your best friend. It is completely free, open-source, and has a built-in OCR engine that reads your file graphics and translates them to text.

Here is exactly how to do it manually in the application:

Step 1: Install Subler and the Language Dictionary

Head over to subler.org and download the app.

Move it to your Applications folder and open it.

Open the top menu and go to Subler > Settings.

Click on the OCR tab.

Find your required language (e.g., English) and click 'Get' to install the text-recognition dictionary.

Step 2: Import Your MKV File

Open a fresh, blank Subler window.

Drag and drop your .mkv video file directly into the app.

A prompt will appear listing all the data layers inside the video (Video, Audio, Subtitles).

Uncheck everything except for the Subtitle track you want to extract, then click Add.

Step 3: Run the Conversion

Go to the top menu bar and ensure Subler > Settings > Advanced has VobSub to Tx3g checked (this instructs the app to convert the images to text).

Click File > Save (or press Command + S).

Choose a destination on your Mac. Subler will save it as an intermediate .mp4 container.

Click Save. You will see a progress bar appear as the OCR engine reads the graphics and generates the text.

Step 4: Export to Standard SRT

Once the progress bar finishes, close your current project.

Drag and drop that newly created .mp4 file back into Subler.

Highlight the subtitle track in the list.

Go to the top menu and select File > Export.

Choose SRT from the format drop-down list.

Boom! You now have a perfectly timed, fully editable .srt file ready to go, and you didn't have to type out a single word by hand.


The Power-User Method: Automated Batch Conversion via Terminal

Using the Subler app interface is great for a single file, but what if you have a dozen or more video archives to process? Doing the "open, extract, save, reopen, export" routine by hand will quickly eat up your afternoon.

Fortunately, Subler comes with an official command-line tool called SublerCLI. We can use a simple Mac Terminal script to scan an entire folder, automatically find every subtitle track, run the OCR engine, and spit out ready-to-use .srt files in seconds.

Step 1: Install the Tools

First, we need to install SublerCLI. The easiest way to do this on a Mac is via Homebrew, the package manager for macOS.

Open your Terminal app (press Command + Space, type Terminal, and hit Enter) and paste this command to install SublerCLI:

brew install sublercli

(If you don't have Homebrew installed yet, run /bin/bash -c "$(curl -fsSL https://githubusercontent.com)" first).

Step 2: Navigate to Your Video Folder

In Terminal, use the cd command followed by a space, then drag and drop your video folder from Finder directly into the Terminal window to automatically fill in the path. Hit Enter:

cd /path/to/your/video/folder

Step 3: Run the Batch Loop

Now, copy and paste this entire script directly into your Terminal window. It will loop through every .mkv file in the folder, detect all internal subtitle tracks (even if there are multiple languages), and extract them safely as standalone text files:

for file in *.mkv; do
    echo "Processing: $file"
    
    # Let SublerCLI scan the file and look for subtitle tracks
    # VobSub tracks usually appear with a track ID (e.g., 3, 4, 5)
    track_info=$(SublerCLI -i "$file" | grep -i "Subtitle")
    
    if [ -z "$track_info" ]; then
        echo "No subtitles found in $file"
        continue
    fi
    
    # Loop through found subtitle tracks and extract them as SRT
    echo "$track_info" | while read -r line; do
        # Extract the track ID number from Subler's output
        track_id=$(echo "$line" | awk -F: '{print $1}' | tr -d '[:space:]')
        
        echo "Found subtitle track ID: $track_id. Running OCR..."
        
        # SublerCLI handles the VobSub-to-Text conversion natively
        SublerCLI -source "$file" -dest "${file%.mkv}_track${track_id}.srt" -track "$track_id"
    done
done

Step 4 (Optional): Save it as a Reusable Script File

If you plan on doing this often, you don’t need to copy and paste that block of code every time. You can save it as a reusable bash script file:

  1. Open the built-in TextEdit app on your Mac.
  2. Go to the top menu and select Format > Make Plain Text (this is crucial!).
  3. Paste the script code above into the file.
  4. Save the file in your video folder as convert_subs.sh.
  5. Open Terminal in that folder and run this quick command to give the file permission to run:
chmod +x convert_subs.sh

Now, whenever you have a new batch of files, you can just open Terminal in that folder and run ./convert_subs.sh to start the automatic conversion instantly!

How the Output Looks

If you have a file named Interview_Archive.mkv containing two separate subtitle layers, the script will silently work in the background and instantly output:

  • Interview_Archive_track3.srt
  • Interview_Archive_track4.srt

No clicking, no manual exporting, and absolutely zero manual typing required.

Share this article

Add comment...

Smart Search

me@grafxflow Author Profile picture

me@grafxflow

Founder, Grafxflow

I am a Full-stack Developer who also started delving into the world of UX/UI Design a few years back. I blog and tweet to hopefully share a little bit of knowledge that can help others around the web. I build lighting-fast dynamic content engines with Laravel, Winter CMS and Tailwind CSS. Thanks for stopping by!