#!/usr/bin/env dash # shellcheck source=/dev/null SHELL_LIBRARY_VERSION="1.1.3" . %SHELL_LIBRARY_PATH DOWN_DIR="/home/soispha/media/music/down"; download_url="$1"; already_downloaded_files="$(mktmp)" fd . "$DOWN_DIR" --exclude spotdl.log > "$already_downloaded_files"; config="$(mktmp)" cat << EO > "$config" --log-level INFO --cache-path /home/soispha/.local/share/spotdl/.spotipy --audio youtube-music youtube --lyrics genius musixmatch azlyrics --ffmpeg ffmpeg --format mp3 --output {artists}_-_{title} --overwrite skip --client-id 5f573c9620494bae87890c0f08a60293 --client-secret 212476d9b0f3472eaa762d90b19b0ba8 --threads 16 --print-errors --preload EO if [ -z "$NO_CHECK" ] && [ "$(wc -l < "$already_downloaded_files" )" -ne 0 ];then die "something is already downloaded" fi rm "$DOWN_DIR/spotdl.log" cd "$DOWN_DIR" || die "BUG: no $DOWN_DIR" # The sub shell needs to be unquoted, as the arguments may not be treated as one. # shellcheck disable=2046 unbuffer spotdl $(cat "$config") download "$download_url" | tee "$DOWN_DIR/spotdl.log" [ -d ~/.spotdl ] && rm -r ~/.spotdl # vim: ft=sh