29 lines
629 B
Plaintext
29 lines
629 B
Plaintext
|
#!/usr/bin/env bash
|
||
|
set -euo pipefail
|
||
|
IFS=$'\n\t'
|
||
|
|
||
|
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=$(youtube-dl --get-id "$1")
|
||
|
videos=($videos)
|
||
|
|
||
|
for i in "${videos[@]}"; do
|
||
|
makeline "$i"
|
||
|
echo "ffmpeg2wav:youtube-dl:$i"
|
||
|
done
|