diff --git a/agent b/agent index 1117b25..67659cb 100755 --- a/agent +++ b/agent @@ -49,6 +49,7 @@ case "$app" in -v "$HOME/.local/share/opencode:$HOME/.local/share/opencode" -v "$HOME/.local/state/opencode:$HOME/.local/state/opencode" -v "$HOME/.cache:$HOME/.cache" + -v "$HOME/.config/meridian:$HOME/.config/meridian" -v "$HOME/.claude:$HOME/.claude" # allow access to claude config for hacked auth ) ;; diff --git a/nicesong b/nicesong index 8cbb9e1..06ade86 100755 --- a/nicesong +++ b/nicesong @@ -8,6 +8,9 @@ result="$(songrec recognize -d "$monitor" -j)" artist="$(printf '%s' "$result" | jq -r '.track.subtitle // empty')" title="$(printf '%s' "$result" | jq -r '.track.title // empty')" +album="$(printf '%s' "$result" | jq -r '[.track.sections[]? | select(.type=="SONG") | .metadata[]? | select(.title=="Album") | .text] | first // empty')" +year="$(printf '%s' "$result" | jq -r '[.track.sections[]? | select(.type=="SONG") | .metadata[]? | select(.title=="Released") | .text] | first // empty')" +genre="$(printf '%s' "$result" | jq -r '.track.genres.primary // empty')" if [ -z "$artist" ] || [ -z "$title" ]; then echo "Could not identify song. Even chaos has limits." @@ -50,8 +53,25 @@ if [[ "$confirm" =~ ^[Yy]$ ]]; then tag_album="$(ffprobe -v error -show_entries format_tags=album -of default=nw=1:nk=1 "$file")" tag_title="$(ffprobe -v error -show_entries format_tags=title -of default=nw=1:nk=1 "$file")" + if [[ -z "$tag_artist" && -z "$tag_title" ]]; then + echo "retag found nothing — falling back to songrec tags." + tagged="$tmpdir/tagged.${file##*.}" + ff_args=(-y -i "$file" -c copy + -metadata artist="$artist" + -metadata title="$title") + [[ -n "$album" ]] && ff_args+=(-metadata album="$album") + [[ -n "$year" ]] && ff_args+=(-metadata date="$year") + [[ -n "$genre" ]] && ff_args+=(-metadata genre="$genre") + if ffmpeg "${ff_args[@]}" "$tagged" >/dev/null 2>&1; then + mv "$tagged" "$file" + tag_artist="$artist" + tag_album="$album" + tag_title="$title" + fi + fi + a="${tag_artist:-$artist}" - b="${tag_album:-Unknown Album}" + b="${tag_album:-${album:-Unknown Album}}" t="${tag_title:-$title}" # filesystem-safe: replace path separator