33 lines
876 B
Bash
Executable file
33 lines
876 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
url=$1
|
|
|
|
album=$(yt-dlp -I 1:1 --skip-download --print "%(album)s" ${url})
|
|
artist=$(yt-dlp -I 1:1 --skip-download --print "%(artists.0,artist)s" ${url})
|
|
date=$(yt-dlp -I 1:1 --skip-download --print "%(release_date,upload_date)s" ${url})
|
|
|
|
folder="${artist} - ${album}"
|
|
mkdir $folder
|
|
|
|
yt-dlp \
|
|
--parse-metadata "playlist_index:%(track_number)s" \
|
|
--parse-metadata "%(artists.0,artist)s:%(meta_artist)s" \
|
|
--parse-metadata "${date}:%(meta_date)s" \
|
|
--embed-metadata \
|
|
--extract-audio --audio-format opus \
|
|
-o "${folder}/%(playlist_index)s - %(title)s.%(ext)s" ${url}
|
|
|
|
yt-dlp -I 1:0 --write-thumbnail -o "${folder}/cover.jpg" ${url}
|
|
|
|
cd "${folder}"
|
|
|
|
for file in *.opus; do
|
|
ffmpeg \
|
|
-hide_banner \
|
|
-i "${file}" -i "cover.jpg" \
|
|
-map_metadata 0:s:a:0 -disposition attached_pic \
|
|
-c:a copy "0${file}"
|
|
|
|
rm "$file"
|
|
mv "0${file}" "${file#"0"}"
|
|
done
|