diff --git a/remove_english_audio.sh b/remove_english_audio.sh new file mode 100644 index 0000000..65c3344 --- /dev/null +++ b/remove_english_audio.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +# Script zum Entfernen der englischen Audiospur aus MKV-Dateien +# Benötigt: mkvmerge (Teil von mkvtoolnix) + +set -euo pipefail + +# Prüfen ob mkvmerge installiert ist +if ! command -v mkvmerge &> /dev/null; then + echo "Fehler: mkvmerge ist nicht installiert." + echo "Installiere es mit: sudo apt install mkvtoolnix" + exit 1 +fi + +# Zähler für verarbeitete Dateien +count=0 +skipped=0 + +echo "Starte Verarbeitung aller MKV-Dateien..." +echo "" + +# Alle MKV-Dateien im aktuellen Verzeichnis verarbeiten +shopt -s nullglob +files=(*.mkv) + +if [ ${#files[@]} -eq 0 ]; then + echo "Keine MKV-Dateien gefunden." + exit 0 +fi + +# Deaktiviere 'exit on error' für die Schleife +set +e + +for file in "${files[@]}"; do + echo "Verarbeite: $file" + + # Temporäre Ausgabedatei + temp_file="${file%.mkv}_temp.mkv" + + # Entferne Track ID 1 (die englische Audiospur) + # --audio-tracks !1 bedeutet: behalte alle Audio-Tracks außer Track 1 + mkvmerge -o "$temp_file" --audio-tracks '!1' "$file" 2>&1 + exit_code=$? + + # Prüfe ob die Ausgabedatei erfolgreich erstellt wurde + if [ -f "$temp_file" ] && [ $exit_code -eq 0 -o $exit_code -eq 1 ]; then + # Ersetze Original mit neuer Datei + mv "$temp_file" "$file" + echo "✓ Erfolgreich: $file" + ((count++)) + else + echo "✗ Fehler bei: $file (Exit-Code: $exit_code)" + [ -f "$temp_file" ] && rm -f "$temp_file" + ((skipped++)) + fi + + echo "" +done + +# Aktiviere 'exit on error' wieder +set -e + +echo "==========================================" +echo "Fertig!" +echo "Erfolgreich verarbeitet: $count Datei(en)" +[ $skipped -gt 0 ] && echo "Übersprungen (Fehler): $skipped Datei(en)" +echo "=========================================="