#!/bin/sh checkMetadata() { ffprobe "$1" 2>&1 | grep -e artist -e title while true; do read -p "correct metadata? [Y] | [n]: " yn case "$yn" in [Yy]* ) return 0;; [Nn]* ) return 1;; * ) echo "Please answer yes or no.";; esac done } cd ~/Medien/Musik/2020 download_dir="$(mktemp -d)" file_name="$(youtube-dl "ytsearch:$1 lyrics" \ --extract-audio \ --output "$download_dir/%(title)s.%(ext)s" \ --metadata-from-title "%(artist)s - %(title)s" \ --audio-quality 0 \ --audio-format mp3 \ --embed-thumbnail \ --add-metadata \ |awk '$1 == "[ffmpeg]" && $2 == "Destination:" {print substr($0, index($0,$3))}')" r128gain "$file_name" 2> /dev/null temp_dir="$(mktemp -d)" temp_file="$temp_dir/0.mp3" cp "$file_name" "$temp_file" idntag "$temp_file" temp_file=$(echo "$temp_dir"/*) if checkMetadata "$temp_file"; then mv "$temp_file" . elif checkMetadata "$file_name"; then mv "$file_name" . else echo "enter it manually" fi rm -rf "$temp_dir" "$download_dir"