diff options
Diffstat (limited to 'amg')
-rwxr-xr-x | amg | 56 |
1 files changed, 28 insertions, 28 deletions
@@ -35,18 +35,18 @@ esac done #{{{ print given args printf "Received Tags: -Artist: $ARTIST -Album: $ALBUM -Song: $TITLE -Number: $TRACKNUM -Year: $YEAR\n\n" +Artist: %s +Album: %s +Song: %s +Number: %s +Year: %s\n\n" "$ARTIST" "$ALBUM" "$TITLE" "$TRACKNUM" "$YEAR" #}}} #{{{ fill in missing variables # prompt to determine later tagging if [ -z "$MODE" ]; then printf "Will the link be for a [p]laylist, a[l]bum video, or [s]ong video? " - read RESPONSE + read -r RESPONSE case "$RESPONSE" in p) MODE='album' ;; l) MODE='split' ;; @@ -59,7 +59,7 @@ fi # prompt to get the URL if [ -z "$URL" ]; then printf "Enter the link: " - read URL + read -r URL printf "\n" fi #}}} @@ -68,10 +68,10 @@ fi # if song, don't download playlist case "$MODE" in s) - SPLITTER_FLAGS="--no-playlist" + NO_PLAYLIST="yes" ;; l) - SPLITTER_FLAGS="--no-playlist" + NO_PLAYLIST="yes" unset TITLE TRACKNUM ;; p) @@ -82,10 +82,10 @@ esac #{{{ download the video(s) printf "Starting download...\n\n" -if [ "$(ls | wc -l)" -gt 0 ]; then +if [ "$(find . | wc -l)" -gt 0 ]; then printf "Already downloaded\n" else - yt-dlp $SPLITTER_FLAGS --format bestaudio --restrict-filenames "$URL" + yt-dlp ${NO_PLAYLIST:+"--no-playlist"} --format bestaudio --restrict-filenames "$URL" fi printf "Download stopped.\n\n" #}}} @@ -93,18 +93,18 @@ printf "Download stopped.\n\n" #{{{ while loop to remove files from list printf "\n\nDo you want to remove any tracks?\n\n" while true; do - ls | nl - echo -n "Enter the line number of the file to remove:\n" - read WHILE_RESPONSE + find . | nl + printf "Enter the line number of the file to remove:\n" + read -r WHILE_RESPONSE [ -z "$WHILE_RESPONSE" ] && break - rm -rf `ls | head -n "$WHILE_RESPONSE" | tail -1` + rm -rf "$(find . | head -n "$WHILE_RESPONSE" | tail -1)" done #}}} #{{{ convert the downloaded files to mp3 printf "\n\nStarting to convert files..." -for i in `ls *.m4a *.webm`; do - imp3=`echo "$i" | sed 's/\.m4a$/.mp3/;s/\.webm$/.mp3/'` +for i in *.m4a *.webm; do + imp3=$(echo "$i" | sed 's/\.m4a$/.mp3/;s/\.webm$/.mp3/') [ ! -f "$imp3" ] && ffmpeg -i "$i" -acodec mp3 "$imp3" || echo "File not converted" done printf "Finished converting files.\n\n" @@ -112,34 +112,34 @@ printf "Finished converting files.\n\n" #{{{ tag files printf "\n\n" -for file in `ls *.mp3`; do - printf "$file\n" +for file in *.mp3; do + printf "%s\n" "$file" if [ -z "$ARTIST" ]; then printf "\nWho is the artist? " - read ARTIST + read -r ARTIST fi if [ -z "$ALBUM" ]; then printf "\nWhat is the album? " - read ALBUM + read -r ALBUM fi if [ -z "$TITLE" ]; then printf "\nWhat is the title? " - read TITLE + read -r TITLE fi if [ -z "$TRACKNUM" ]; then printf "\nWhat is the track number? " - read TRACKNUM_ + read -r TRACKNUM_ TRACKNUM="$(printf "%02d" "$TRACKNUM_")" unset TRACKNUM_ fi if [ -z "$YEAR" ]; then printf "\nWhat is the release date? " - read YEAR + read -r YEAR fi case "$TRACKNUM" in [!0-9]*) unset TRACKNUM - printf "\n$TRACKNUM doesn't look like a track number!\n" 1>&2 + printf "\n%s doesn't look like a track number!\n" "$TRACKNUM" 1>&2 ;; esac FMT_ARTIST="$(echo "$ARTIST" | sed "s/[^[:alnum:].-]/_/g")" @@ -150,13 +150,13 @@ for file in `ls *.mp3`; do [ -n "$TITLE" ] && kid3-cli -c "set \"Title\" \"$TITLE\"" "$file" [ -n "$TRACKNUM" ] && kid3-cli -c "set \"Track Number\" \"$TRACKNUM\"" "$file" [ -n "$YEAR" ] && kid3-cli -c "set \"Date\" \"$YEAR\"" "$file" - printf "\n\n$file\n" + printf "\n\n%s\n" "$file" kid3-cli -c get "$file" NEWFILENAME="${FMT_ARTIST}_-_${FMT_ALBUM}_-_${TRACKNUM:-00}_${FMT_TITLE}.mp3" #NEWFILENAME="$(printf "%s" "$NEWFILENAME" | sed 's/ /_/g;s/[!@#$%^&*()-_=+{}\|;:,.<>/?`~'"\[\]\'\""']//g')" - [ -n "${ARTIST}" -a -n "${ALBUM}" -a -n "${TITLE}" ] && mv "$file" "$NEWFILENAME" + [ -n "${ARTIST}" ] && [ -n "${ALBUM}" ] && [ -n "${TITLE}" ] && mv "$file" "$NEWFILENAME" unset TITLE TRACKNUM - printf "$NEWFILENAME\n\n\n" + printf "%s\n\n\n" "$NEWFILENAME" done printf "\n\nDone.\n" |