#!/bin/bash # Check if mkvmerge is installed if ! command -v mkvmerge &> /dev/null; then echo "Error: mkvmerge not found. Please install mkvtoolnix." exit 1 fi # Process each .mkv file in the current directory for mkv in *.mkv; do # Skip if no .mkv files exist [[ -e "$mkv" ]] || continue base_name="${mkv%.mkv}" # Unset all subtitle tracks in the MKV file before adding new ones echo "Executing command: mkvmerge -o temp.mkv --no-subtitles \"$mkv\"" if mkvmerge -o temp.mkv --no-subtitles "$mkv"; then echo "Subtitle tracks unset successfully." # Mux the new subtitle files with the language "eng" echo "Executing command: mkvmerge -o out.mkv \"temp.mkv\" --language 0:eng \"${base_name}\"*.srt" if mkvmerge -o out.mkv "temp.mkv" --language 0:eng "${base_name}"*.srt; then echo "Muxing successful, replacing original file and deleting subtitles." mv out.mkv "$mkv" rm -f "${base_name}"*.srt else echo "Muxing failed, keeping original files." fi # Clean up temporary file rm -f temp.mkv else echo "Failed to unset subtitles, keeping original files." fi done