Files
scripts/md

38 lines
993 B
Bash
Executable File

#!/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"