32 lines
		
	
	
		
			627 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			627 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
set -euo pipefail
 | 
						|
IFS=$'\n\t'
 | 
						|
 | 
						|
echo "#EXT3MU"
 | 
						|
 | 
						|
function get_duration {
 | 
						|
	preconvert=$(youtube-dl --get-duration -- "$1" | perl -p -i -e 's/(\d\d?):(\d\d)/$1 minutes+$2 seconds/' 2> /dev/null)
 | 
						|
	convert=$(units "$preconvert")
 | 
						|
	stripped=$(echo "$convert" | grep -o '[0-9]*')
 | 
						|
	echo "$stripped"
 | 
						|
}
 | 
						|
 | 
						|
function get_title {
 | 
						|
	result=$(youtube-dl --get-title -- "$1")
 | 
						|
	echo "$result"
 | 
						|
}
 | 
						|
 | 
						|
function makeline {
 | 
						|
	duration=$(get_duration "$1")
 | 
						|
	title=$(get_title "$1")
 | 
						|
	echo "#EXTINF:$duration,$title"
 | 
						|
}
 | 
						|
 | 
						|
videos=$(cat -)
 | 
						|
videos=($videos)
 | 
						|
 | 
						|
for i in "${videos[@]}"; do
 | 
						|
    makeline "$i"
 | 
						|
    echo "ffmpeg2wav:youtube-dl:$i"
 | 
						|
done
 |