#!/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 "=========================================="