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")
 | 
			
		||||
    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.
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user