a couple music library scripts

main
Gabe Farrell 7 months ago
parent 3f43a3ecc8
commit 3d6811784c

@ -0,0 +1,52 @@
#!/bin/bash
# Ensure metaflac is installed
if ! command -v metaflac &> /dev/null; then
echo "metaflac is required but not installed. Exiting."
exit 1
fi
# Find the first .flac file
first_flac=$(find . -maxdepth 1 -type f -iname "*.flac" | sort | head -n 1)
if [ -z "$first_flac" ]; then
echo "No FLAC files found in the current directory."
exit 1
fi
echo "Using '$first_flac' as source for tags."
# Extract tags from the first FLAC
declare -A tags
for field in DATE ARTIST ORIGINALDATE ALBUMARTIST ALBUM; do
value=$(metaflac --show-tag="$field" "$first_flac" | sed "s/^$field=//")
tags[$field]="$value"
done
# Print extracted tags
echo "Extracted tags:"
for field in "${!tags[@]}"; do
echo " $field: ${tags[$field]}"
done
# Apply tags to other FLAC files
for flac in *.flac; do
# Skip the first FLAC file
if [ "$flac" == "$(basename "$first_flac")" ]; then
continue
fi
echo "Tagging '$flac'..."
for field in "${!tags[@]}"; do
# Remove existing tag
metaflac --remove-tag="$field" "$flac"
# Set new tag if it exists
if [ -n "${tags[$field]}" ]; then
metaflac --set-tag="$field=${tags[$field]}" "$flac"
fi
done
done
echo "Tagging completed."

@ -0,0 +1,39 @@
#!/bin/bash
# Ensure metaflac is installed
if ! command -v metaflac &> /dev/null; then
echo "metaflac is required but not installed. Exiting."
exit 1
fi
# Get the current directory name
album_name=$(basename "$PWD")
album_artist="Various Artists"
echo "Setting ALBUM to '$album_name', ALBUMARTIST to '$album_artist', DISCNUMBER to 1, and TRACKNUMBER incrementally."
# Initialize track counter
track_number=1
# Process each .flac file, sorted alphabetically
for flac in *.flac; do
# Skip if no flac files
[ -e "$flac" ] || continue
echo "Updating '$flac'..."
# Remove old ALBUM, ALBUMARTIST, DISCNUMBER, and TRACKNUMBER tags
metaflac --remove-tag=ALBUM --remove-tag=ALBUMARTIST --remove-tag=DISCNUMBER --remove-tag=TRACKNUMBER "$flac"
# Set new tags
metaflac --set-tag="ALBUM=$album_name" \
--set-tag="ALBUMARTIST=$album_artist" \
--set-tag="DISCNUMBER=1" \
--set-tag="TRACKNUMBER=$track_number" "$flac"
# Increment track number
track_number=$((track_number + 1))
done
echo "All files updated."
Loading…
Cancel
Save