diff --git a/.aliases b/.aliases index 74b5184..1dc9b1e 100644 --- a/.aliases +++ b/.aliases @@ -63,6 +63,7 @@ expand_path() { ret=$(readlink -m "$ret") echo $ret } + is_absolute_unix_path() { if [[ $1 =~ ^/ ]]; then echo 1; else echo 0; fi } @@ -119,6 +120,16 @@ open_explorer_here() { fi } +remove_extra_spaces() { + # Replace consecutive spaces with a single space. + # + # We're using this in the various vid/audio download functions because + # Windows seems to strip extra spaces when creating a file, so we need + # to match this behaviour in order to do post-processing after downloading. + ret=$(echo "$1" | tr -s ' ') + echo "$ret" +} + ################## # Building code ################## @@ -352,6 +363,8 @@ make_vid_dir_and_cd_into() { fi fi + dir_name=$(remove_extra_spaces "$dir_name") + printf "${BOLD}Creating directory ${YELLOW}'$dir_name'${NORMAL}\n" mkdir "$dir_name" 2>/dev/null cd "$dir_name" @@ -466,9 +479,10 @@ download_youtube_vid() { # Get the video filename. local filename=$(yt-dlp.exe --get-filename -f $format -o "$name_format.%(ext)s" $opts $url) + filename=$(remove_extra_spaces "$filename") printf "filename: $filename\n" - # Download + # Download the video. local cmd="yt-dlp.exe -f $format -o \"$filename\" $opts $url" eval $cmd # Need to eval in order to preserve the quotes wrapping the filename format string. error=$? @@ -604,8 +618,10 @@ function download_youtube_audio() { # Get the audio filename. local filename=$(yt-dlp.exe --get-filename -f $format -o "$name_format.%(ext)s" $opts $url) + filename=$(remove_extra_spaces "$filename") printf "filename: $filename\n" + # Download the audio. local cmd="yt-dlp.exe -f $format -o \"$filename\" $opts $url" eval $cmd # Need to eval in order to preserve the quotes wrapping the filename format string. error=$? @@ -625,6 +641,7 @@ function download_youtube_audio() { actually_download_twitch_chat() { local url="$1" local filename="$2" + filename=$(remove_extra_spaces "$filename") rechat.exe -d $url "$filename.json" if [[ -f "$filename.json" ]]; then @@ -738,16 +755,18 @@ download_twitch_vid() { # Get the video filename. local filename=$(yt-dlp.exe --get-filename -f $yt_dlp_format -o "$name_format.%(ext)s" $opts $url) + filename=$(remove_extra_spaces "$filename") + printf "filename: $filename\n" - # Download + # Download the video. if [[ $subscriber_vod == "0" ]]; then - local cmd="streamlink.exe --twitch-low-latency --twitch-disable-ads --twitch-disable-hosting --force --force-progress $opts $url $streamlink_format -O | ffmpeg -i pipe:0 -c copy \"$filename\"" + printf "${YELLOW}${BOLD}\nUsing streamlink to download...${NORMAL}\n" + local cmd="streamlink.exe --twitch-low-latency --twitch-disable-ads --twitch-disable-hosting --force --progress=force $opts $url $streamlink_format -O | ffmpeg -i pipe:0 -c copy \"$filename\"" else + printf "${YELLOW}${BOLD}\nUsing yt-dlp to download...${NORMAL}\n" local cmd="yt-dlp.exe -f $yt_dlp_format -o \"$filename\" $opts $url" fi - printf "${YELLOW}${BOLD}Downloading video\n${NORMAL}" - eval $cmd # Need to eval in order to preserve the quotes wrapping the filename format string. error=$? @@ -759,9 +778,9 @@ download_twitch_vid() { if [[ $compress == "1" ]]; then local temp_name="temp_${RANDOM}" + extension="${filename##*.}" # 0=cpu, 1=gpu compress-video "$filename" "$temp_name" 0 - extension="${filename##*.}" mv "$filename" "orig_$filename" mv $temp_name.$extension "$filename" printf "${BOLD}Make sure to delete the original video file\n${NORMAL}" @@ -818,9 +837,12 @@ download_vimeo_vid() { local name_format="%(upload_date>%Y-%m-%d)s-shortname-vimeo-%(id)s" fi - # Download the video. + # Get the video filename. local filename=$(yt-dlp.exe --get-filename -f $format -o "$name_format.%(ext)s" $opts $url) + filename=$(remove_extra_spaces "$filename") + printf "filename: $filename\n" + # Download the video. local cmd="yt-dlp.exe -f $format -o \"$filename\" $opts $url" eval $cmd # Need to eval in order to preserve the quotes wrapping the filename format string. @@ -885,9 +907,12 @@ download_twitter_vid() { format="b" fi - # Download the video. + # Get the video filename. local filename=$(yt-dlp.exe --get-filename -f $format -o "$name_format.%(ext)s" $opts $url) + filename=$(remove_extra_spaces "$filename") + printf "filename: $filename\n" + # Download the video. local cmd="yt-dlp.exe -f $format -o \"$filename\" $opts $url" eval $cmd # Need to eval in order to preserve the quotes wrapping the filename format string. @@ -934,9 +959,12 @@ download_instagram_vid() { format="b" # best available - # Download the video. + # Get the video filename. local filename=$(yt-dlp.exe --get-filename -f $format -o "$name_format.%(ext)s" $opts $url) + filename=$(remove_extra_spaces "$filename") + printf "filename: $filename\n" + # Download the video. local cmd="yt-dlp.exe -f $format -o \"$filename\" $opts $url" eval $cmd # Need to eval in order to preserve the quotes wrapping the filename format string.