Fix twitch vid compression failing because of extra spaces in filename
This commit is contained in:
		
							parent
							
								
									c773b46cbd
								
							
						
					
					
						commit
						2184b8bf40
					
				
							
								
								
									
										46
									
								
								.aliases
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								.aliases
									
									
									
									
									
								
							| 
						 | 
					@ -63,6 +63,7 @@ expand_path() {
 | 
				
			||||||
    ret=$(readlink -m "$ret")
 | 
					    ret=$(readlink -m "$ret")
 | 
				
			||||||
    echo $ret
 | 
					    echo $ret
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
is_absolute_unix_path() {
 | 
					is_absolute_unix_path() {
 | 
				
			||||||
    if [[ $1 =~ ^/ ]]; then echo 1; else echo 0; fi
 | 
					    if [[ $1 =~ ^/ ]]; then echo 1; else echo 0; fi
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -119,6 +120,16 @@ open_explorer_here() {
 | 
				
			||||||
    fi
 | 
					    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
 | 
					# Building code
 | 
				
			||||||
##################
 | 
					##################
 | 
				
			||||||
| 
						 | 
					@ -352,6 +363,8 @@ make_vid_dir_and_cd_into() {
 | 
				
			||||||
        fi
 | 
					        fi
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    dir_name=$(remove_extra_spaces "$dir_name")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    printf "${BOLD}Creating directory ${YELLOW}'$dir_name'${NORMAL}\n"
 | 
					    printf "${BOLD}Creating directory ${YELLOW}'$dir_name'${NORMAL}\n"
 | 
				
			||||||
    mkdir "$dir_name" 2>/dev/null
 | 
					    mkdir "$dir_name" 2>/dev/null
 | 
				
			||||||
    cd "$dir_name"
 | 
					    cd "$dir_name"
 | 
				
			||||||
| 
						 | 
					@ -466,9 +479,10 @@ download_youtube_vid() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Get the video filename.
 | 
					    # Get the video filename.
 | 
				
			||||||
    local filename=$(yt-dlp.exe --get-filename -f $format -o "$name_format.%(ext)s" $opts $url)
 | 
					    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"
 | 
					    printf "filename: $filename\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Download
 | 
					    # Download the video.
 | 
				
			||||||
    local cmd="yt-dlp.exe -f $format -o \"$filename\" $opts $url"
 | 
					    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.
 | 
					    eval $cmd   # Need to eval in order to preserve the quotes wrapping the filename format string.
 | 
				
			||||||
    error=$?
 | 
					    error=$?
 | 
				
			||||||
| 
						 | 
					@ -604,8 +618,10 @@ function download_youtube_audio() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Get the audio filename.
 | 
					    # Get the audio filename.
 | 
				
			||||||
    local filename=$(yt-dlp.exe --get-filename -f $format -o "$name_format.%(ext)s" $opts $url)
 | 
					    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"
 | 
					    printf "filename: $filename\n"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    # Download the audio.
 | 
				
			||||||
    local cmd="yt-dlp.exe -f $format -o \"$filename\" $opts $url"
 | 
					    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.
 | 
					    eval $cmd   # Need to eval in order to preserve the quotes wrapping the filename format string.
 | 
				
			||||||
    error=$?
 | 
					    error=$?
 | 
				
			||||||
| 
						 | 
					@ -625,6 +641,7 @@ function download_youtube_audio() {
 | 
				
			||||||
actually_download_twitch_chat() {
 | 
					actually_download_twitch_chat() {
 | 
				
			||||||
    local url="$1"
 | 
					    local url="$1"
 | 
				
			||||||
    local filename="$2"
 | 
					    local filename="$2"
 | 
				
			||||||
 | 
					    filename=$(remove_extra_spaces "$filename")
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    rechat.exe -d $url "$filename.json"
 | 
					    rechat.exe -d $url "$filename.json"
 | 
				
			||||||
    if [[ -f "$filename.json" ]]; then
 | 
					    if [[ -f "$filename.json" ]]; then
 | 
				
			||||||
| 
						 | 
					@ -738,16 +755,18 @@ download_twitch_vid() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Get the video filename.
 | 
					    # Get the video filename.
 | 
				
			||||||
    local filename=$(yt-dlp.exe --get-filename -f $yt_dlp_format -o "$name_format.%(ext)s" $opts $url)
 | 
					    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
 | 
					    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
 | 
					    else
 | 
				
			||||||
 | 
					        printf "${YELLOW}${BOLD}\nUsing yt-dlp to download...${NORMAL}\n"
 | 
				
			||||||
        local cmd="yt-dlp.exe -f $yt_dlp_format -o \"$filename\" $opts $url"
 | 
					        local cmd="yt-dlp.exe -f $yt_dlp_format -o \"$filename\" $opts $url"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    printf "${YELLOW}${BOLD}Downloading video\n${NORMAL}"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    eval $cmd  # Need to eval in order to preserve the quotes wrapping the filename format string.
 | 
					    eval $cmd  # Need to eval in order to preserve the quotes wrapping the filename format string.
 | 
				
			||||||
    error=$?
 | 
					    error=$?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -759,9 +778,9 @@ download_twitch_vid() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if [[ $compress == "1" ]]; then
 | 
					    if [[ $compress == "1" ]]; then
 | 
				
			||||||
        local temp_name="temp_${RANDOM}"
 | 
					        local temp_name="temp_${RANDOM}"
 | 
				
			||||||
 | 
					        extension="${filename##*.}"
 | 
				
			||||||
        # 0=cpu, 1=gpu
 | 
					        # 0=cpu, 1=gpu
 | 
				
			||||||
        compress-video "$filename" "$temp_name" 0
 | 
					        compress-video "$filename" "$temp_name" 0
 | 
				
			||||||
        extension="${filename##*.}"
 | 
					 | 
				
			||||||
        mv "$filename" "orig_$filename"
 | 
					        mv "$filename" "orig_$filename"
 | 
				
			||||||
        mv $temp_name.$extension "$filename"
 | 
					        mv $temp_name.$extension "$filename"
 | 
				
			||||||
        printf "${BOLD}Make sure to delete the original video file\n${NORMAL}"
 | 
					        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"
 | 
					        local name_format="%(upload_date>%Y-%m-%d)s-shortname-vimeo-%(id)s"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Download the video.
 | 
					    # Get the video filename.
 | 
				
			||||||
    local filename=$(yt-dlp.exe --get-filename -f $format -o "$name_format.%(ext)s" $opts $url)
 | 
					    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"
 | 
					    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.
 | 
					    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"
 | 
					        format="b"
 | 
				
			||||||
    fi
 | 
					    fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    # Download the video.
 | 
					    # Get the video filename.
 | 
				
			||||||
    local filename=$(yt-dlp.exe --get-filename -f $format -o "$name_format.%(ext)s" $opts $url)
 | 
					    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"
 | 
					    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.
 | 
					    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
 | 
					    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)
 | 
					    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"
 | 
					    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.
 | 
					    eval $cmd   # Need to eval in order to preserve the quotes wrapping the filename format string.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue
	
	Block a user