You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

72 lines
2.5 KiB

#!/usr/bin/env bash
scriptVersion=1.0.010
if [ -z "$lidarr_artist_path" ]; then
lidarr_artist_path="$1"
fi
# auto-clean up log file to reduce space usage
if [ -f "/config/logs/MetadataPostProcess.txt" ]; then
find /config/logs -type f -name "MetadataPostProcess.txt" -size +1024k -delete
sleep 0.01
fi
exec &> >(tee -a "/config/logs/MetadataPostProcess.txt")
touch "/config/logs/MetadataPostProcess.txt"
chmod 666 "/config/logs/MetadataPostProcess.txt"
log () {
m_time=`date "+%F %T"`
echo $m_time" :: MetadataPostProcess :: $scriptVersion :: "$1
}
if [ "$lidarr_eventtype" == "Test" ]; then
log "Tested Successfully"
exit 0
fi
log "Processing :: $lidarr_trackfile_path"
albumFolder=$(dirname "$lidarr_trackfile_path")
if [ -d "$albumFolder" ]; then
if [ ! -f "$albumFolder/folder.jpg" ]; then
ffmpeg -i "$lidarr_trackfile_path" -an -vcodec copy "$albumFolder/folder.jpg" &> /dev/null
if [ -f "$albumFolder/folder.jpg" ]; then
log "Processing :: $albumFolder :: Album Artwork Extracted to: $albumFolder/folder.jpg"
chmod 666 "$albumFolder/folder.jpg"
fi
fi
else
log "Processing :: ERROR :: $albumFolder :: folder missing..."
fi
lrcFile="${lidarr_trackfile_path%.*}.lrc"
if [ -f "$lrcFile" ]; then
rm "$lrcFile"
fi
fileName=$(basename -- "$lidarr_trackfile_path")
fileExt="${fileName##*.}"
if [ "$fileExt" == "flac" ]; then
getLyrics="$(ffprobe -loglevel 0 -print_format json -show_format -show_streams "$lidarr_trackfile_path" | jq -r ".format.tags.LYRICS" | sed "s/null//g" | sed "/^$/d")"
getArtistCredit="$(ffprobe -loglevel 0 -print_format json -show_format -show_streams "$lidarr_trackfile_path" | jq -r ".format.tags.ARTIST_CREDIT" | sed "s/null//g" | sed "/^$/d")"
fi
if [ "$fileExt" == "opus" ]; then
getLyrics="$(ffprobe -loglevel 0 -print_format json -show_format -show_streams "$lidarr_trackfile_path" | jq -r ".streams[].tags.LYRICS" | sed "s/null//g" | sed "/^$/d")"
fi
if [ ! -z "$getLyrics" ]; then
log "Processing :: $lidarr_trackfile_path :: Extracting Lyrics..."
echo -n "$getLyrics" > "$lrcFile"
log "Processing :: $lidarr_trackfile_path :: Lyrics extracted to: $lrcFile"
chmod 666 "$lrcFile"
fi
if [ "$fileExt" == "flac" ]; then
if [ ! -z "$getArtistCredit" ]; then
log "Processing :: $lidarr_trackfile_path :: Setting ARTIST tag to match ARTIST_CREDIT tag..."
metaflac --remove-tag=ARTIST "$lidarr_trackfile_path"
metaflac --set-tag=ARTIST="$getArtistCredit" "$lidarr_trackfile_path"
fi
fi
exit