From 603870f39e1ccb1b6bcda1ea18ca13d34ae53613 Mon Sep 17 00:00:00 2001 From: Sem Date: Mon, 20 Jul 2026 13:39:48 +0200 Subject: [PATCH] Allow passing filename with each flac file to process on a new line --- fix_unknown_album_and_artist_flac_file.sh | 51 ++++++++++++++++------- 1 file changed, 37 insertions(+), 14 deletions(-) diff --git a/fix_unknown_album_and_artist_flac_file.sh b/fix_unknown_album_and_artist_flac_file.sh index c8076eb..638622d 100755 --- a/fix_unknown_album_and_artist_flac_file.sh +++ b/fix_unknown_album_and_artist_flac_file.sh @@ -1,25 +1,48 @@ #!/bin/bash # script to fix where flac tags are set correctly but navidrome still sees them as having [Unknown album] and [Unknown artist] -# usage: fix_unknown_album_and_artist_flac_file.sh FILENAME [LOCATION] +# usage: fix_unknown_album_and_artist_flac_file.sh FILENAME [LOCATION] [-l] # parameters: -# FILENAME: file to fix -# LOCATION: optional, location of the file, if the script is run from a different directory than where the file to fix is. +# FILENAME: file to fix. Can be a relative or absolute path +# LOCATION: optional, location of the file, if the script is run from a different directory than where the file to fix is. +# -l LISTFILE: optional, location of file containing multiple files to fix, each starting with a new line. +# This is the same as running the script for each single file in the list + + +function fix_flac_file() +{ + echo "Fixing flac file $1" + + echo "running command ffmpeg -i $1 -c:a flac -map_metadata 0 fixed.flac" + + ffmpeg -i "$1" -c:a flac -map_metadata 0 "fixed.flac" + + echo "moving fixed.flac to $1" + mv "fixed.flac" "$1" +} if [ -z "$2" ] then echo "staying in current directory" else - echo "moving to $2" - cd "$2" + if [ "$2" = "-l" ] + then + if [ -z "$3" ] + then + echo "Please provide the location of the file with multiple entries to fix" + exit 1; + else + echo "Looping through $3" + while read flacfile; do + echo "Processing line $flacfile" + fix_flac_file "$flacfile" + done < "$3" + exit 0; + fi + else + echo "moving to $2" + cd "$2" + fi fi -echo "Fixing flac file $1" - -echo "running command ffmpeg -i $1 -c:a flac -map_metadata 0 fixed.flac" - -ffmpeg -i "$1" -c:a flac -map_metadata 0 "fixed.flac" - -echo "moving fixed.flac to $1" -mv "fixed.flac" "$1" - +fix_flac_file $1