Last active
April 25, 2025 11:54
-
-
Save kampfgnu/bb7be04b624ed5ddf65d6e7c54f9ce2e to your computer and use it in GitHub Desktop.
batch extract subtitles from mkv files
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash -e | |
# a script that extracts the subtitle file of every mkv movie file and saves it with the same name | |
# copy to the folder where the mkv files live and run "./mkvextractTracks.sh" in terminal | |
# options: [trackID] | |
# example: ./mkvextractTracks.sh 1 | |
# | |
# info: | |
# mkvextract is used to extract the subtitles, so mkvtoolnix app (which contains the mkvextract binary) is used: | |
# https://mkvtoolnix.download/downloads.html | |
# please adjust below path to point to mkvextract or this script won't work | |
extractorPath='/Applications/MKVToolNix-9.0.1.app/Contents/MacOS/mkvextract' | |
defaultTrackID=2 | |
# Ensure we're running in location of script. | |
cd "`dirname $0`" | |
if [ $# -gt 0 ] | |
then | |
defaultTrackID=$1 | |
fi | |
for f in *; do | |
if [[ $f == *.mkv ]]; | |
then | |
echo $f | |
$extractorPath tracks "$f" $defaultTrackID:"${f//mkv/srt}" | |
fi | |
done | |
echo "Complete" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Came here for a potential one-liner but was sadly disappointed that this was just a way to extract subtitles from a single file.
Bananaman's script was borked for some reason, so no love there too.
In the end, the solution using pure Bash was not that hard.
Here's a one-liner:
Or if you prefer a more elegant solution in the form of a script you just execute in a folder:
https://gist.github.com/fevangelou/48da813ac1d5d0d207ff0acab1c09df2
Enjoy :)