Files
scripts_serv/thumb.sh
2025-12-19 22:56:37 +00:00

77 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# Ask for the thumbnail filename
echo "=== Album Art Embedder (Recursive) ==="
echo "Current directory: $(pwd)"
read -p "Enter thumbnail filename in this directory (e.g., cover.jpg): " thumbnail
# Full path to thumbnail
thumbnail_path="$(pwd)/$thumbnail"
# Check if thumbnail exists
if [ ! -f "$thumbnail_path" ]; then
echo "Error: Thumbnail not found at $thumbnail_path"
exit 1
fi
# Ask for album artist
read -p "Enter album artist name: " album_artist
# Get album name from current directory
album_name="$(basename "$(pwd)")"
echo ""
echo "Found thumbnail: $thumbnail_path"
echo "Album: $album_name"
echo "Album Artist: $album_artist"
echo "Processing all mp3/mp4 files in subdirectories..."
echo ""
# Counter for processed files
count=0
# Find all mp3 and mp4 files in subdirectories (not current dir)
find . -mindepth 2 -type f \( -name "*.mp3" -o -name "*.mp4" \) | while read -r file; do
echo "Processing: $file"
# Get file extension
ext="${file##*.}"
# Create temporary filename
temp_file="${file}.tmp.${ext}"
# Add thumbnail and metadata using ffmpeg
if [ "$ext" = "mp3" ]; then
ffmpeg -i "$file" -i "$thumbnail_path" \
-map 0 -map 1 \
-c copy \
-metadata album_artist="$album_artist" \
-metadata album="$album_name" \
-disposition:v:0 attached_pic \
"$temp_file" 2>/dev/null
else
# For mp4 files
ffmpeg -i "$file" -i "$thumbnail_path" \
-map 0 -map 1 \
-c copy \
-metadata artist="$album_artist" \
-metadata album="$album_name" \
-disposition:v:0 attached_pic \
"$temp_file" 2>/dev/null
fi
if [ $? -eq 0 ]; then
mv "$temp_file" "$file"
((count++))
echo "✓ Done"
else
echo "✗ Failed"
[ -f "$temp_file" ] && rm "$temp_file"
fi
echo ""
done
echo "Finished! Processed $count files."
echo "Album Artist set to: $album_artist"
echo "Album set to: $album_name"