#!/bin/bash ### Script for downloading albums from Youtube Music ########## ### Usage: ./yt-music-album-download.sh ### # - Converts to MP3 from the best quality audio feed # - Adds track number, album, artist, title, and release year into id3 tags # - Adds album art embedded thumbnails echo "Retrieving album information..." # Downloading the json data of the first track only jsondata=`yt-dlp -j --playlist-items 1 $1` # Grabbing the "release_year" and "release_date" and comparing which is lowest integer. # Sometimes Youtube Music doesn't even populate the "release_date" field, but when it does we need to compare it to "release_year" # If both the "release_date" and "release_year" exist, check which one is the lower integer, and that should be the actual album release year. jq_release_year_1=`echo $jsondata | jq -r '.release_year'` jq_release_date=`echo $jsondata | jq -r '.release_date'` if [ $jq_release_date != 'null' ]; then jq_release_year_2=${jq_release_date::-4}; year=$((jq_release_year_1)" \ --parse-metadata ":(?P)" \ --parse-metadata ":(?P)" \ --add-metadata \ --postprocessor-args "-metadata date='${year}' -metadata artist=\"${artist}\"" \ --embed-thumbnail \ --ppa "EmbedThumbnail+ffmpeg_o:-c:v mjpeg -vf crop=\"'if(gt(ih,iw),iw,ih)':'if(gt(iw,ih),ih,iw)'\"" \ -o "%(playlist_index)s. %(title)s.%(ext)s" "$1"