summaryrefslogtreecommitdiff
path: root/rmpc/utils/tag_genres.sh
blob: 9d1e012b23442f8046bd519dd9e8b26bf68d789a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/bin/bash

if [[ $# -ne 1 ]]; then
  echo "Usage: $0 <path-to-album-directory>"
  exit 1
fi

DIR="$1"

cd "$DIR" || { echo "❌ Failed to navigate to $DIR"; exit 1; }

# Get all mp3s sorted by eyeD3 track number
FILES=()
while IFS= read -r line; do
  FILES+=("$line")
done < <(
  for f in *.mp3; do
    track_num=$(eyeD3 "$f" 2>/dev/null | grep -i "^track:" | awk '{print $2}' | cut -d/ -f1)
    printf "%03d|%s\n" "${track_num:-999}" "$f"
  done | sort | cut -d'|' -f2
)

for file in "${FILES[@]}"; do
  [[ -f "$file" ]] || continue

  echo ""
  echo "🎵 Now tagging: $file"
  eyeD3 "$file" | grep -Ei "title:|track:|genre:"

  read -rp "Enter genre(s) for this track (comma-separated): " genre

  if [[ -n "$genre" ]]; then
    eyeD3 --genre="$genre" "$file"
    echo "✅ Set genre to: $genre"
  else
    echo "⏭️  Skipped (no genre entered)"
  fi
done