Skip to content

Instantly share code, notes, and snippets.

@kampfgnu
Last active May 9, 2026 16:39
Show Gist options
  • Select an option

  • Save kampfgnu/bb7be04b624ed5ddf65d6e7c54f9ce2e to your computer and use it in GitHub Desktop.

Select an option

Save kampfgnu/bb7be04b624ed5ddf65d6e7c54f9ce2e to your computer and use it in GitHub Desktop.
batch extract subtitles from mkv files
#!/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"
@caoccao

caoccao commented May 9, 2026

Copy link
Copy Markdown

Try https://github.com/caoccao/BatchMkvExtract which provides much better user experience.

@Uhter

Uhter commented May 9, 2026

Copy link
Copy Markdown

Try https://github.com/caoccao/BatchMkvExtract which provides much better user experience.

I would try, but your AppImage doesn't launch. I opened an issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment