2024-04-30 17:07:14 +02:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -x
|
|
|
|
|
|
|
|
# Pfad zum Basisverzeichnis der Musikdateien
|
2024-05-01 00:12:03 +02:00
|
|
|
BASE_DIR="/media/music/Test-Gaming-Soundtracks"
|
2024-04-30 17:42:04 +02:00
|
|
|
|
|
|
|
# Sammle alle Verzeichnisse
|
|
|
|
directories=($(find "$BASE_DIR" -type d -print))
|
2024-04-30 17:07:14 +02:00
|
|
|
|
|
|
|
# Gehe durch jedes Unterverzeichnis
|
2024-04-30 17:42:04 +02:00
|
|
|
for dir in "${directories[@]}"; do
|
2024-04-30 17:07:14 +02:00
|
|
|
echo "Verarbeite Verzeichnis: $dir"
|
|
|
|
# Initialisiere ein Assoziativ-Array für Künstlerzählungen
|
|
|
|
declare -A artist_count
|
|
|
|
|
2024-05-01 00:12:03 +02:00
|
|
|
# Finde alle FLAC-Dateien im aktuellen Verzeichnis und lese die Artist-Tags
|
2024-05-01 00:38:23 +02:00
|
|
|
while IFS= read -r -d $'\0' file; do
|
2024-05-01 00:12:03 +02:00
|
|
|
artist=$(metaflac --show-tag=ARTIST "$file" | sed 's/ARTIST=//')
|
2024-04-30 17:07:14 +02:00
|
|
|
if [[ -n "$artist" ]]; then
|
|
|
|
((artist_count["$artist"]++))
|
|
|
|
fi
|
2024-05-01 00:38:23 +02:00
|
|
|
done < <(find "$dir" -maxdepth 1 -type f -name '*.flac' -print0)
|
2024-04-30 17:07:14 +02:00
|
|
|
|
|
|
|
# Finde den am häufigsten vorkommenden Artist
|
|
|
|
max_count=0
|
|
|
|
common_artist=""
|
|
|
|
for artist in "${!artist_count[@]}"; do
|
|
|
|
if [[ ${artist_count[$artist]} -gt $max_count ]]; then
|
|
|
|
max_count=${artist_count[$artist]}
|
|
|
|
common_artist=$artist
|
|
|
|
fi
|
|
|
|
done
|
|
|
|
|
2024-05-01 00:38:23 +02:00
|
|
|
# Setze den häufigsten Artist-Tag für alle Dateien im Verzeichnis und füge ReplayGain hinzu
|
2024-04-30 17:07:14 +02:00
|
|
|
if [[ -n "$common_artist" ]]; then
|
|
|
|
echo "Häufigster Künstler in '$dir' ist: $common_artist"
|
2024-05-01 00:38:23 +02:00
|
|
|
find "$dir" -maxdepth 1 -type f -name '*.flac' -print0 | while IFS= read -r -d $'\0' file; do
|
|
|
|
metaflac --remove-tag=ARTIST "$file"
|
|
|
|
metaflac --set-tag=ARTIST="$common_artist" "$file"
|
|
|
|
# Entferne vorhandene ReplayGain-Tags
|
|
|
|
metaflac --remove-replay-gain "$file"
|
|
|
|
# Berechne und füge neue ReplayGain-Tags hinzu
|
|
|
|
metaflac --add-replay-gain "$file"
|
|
|
|
done
|
2024-04-30 17:07:14 +02:00
|
|
|
else
|
|
|
|
echo "Kein Künstler gefunden in '$dir'"
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Lösche das Assoziativ-Array für das nächste Verzeichnis
|
|
|
|
unset artist_count
|
|
|
|
done
|