#!/usr/bin/env bash # called from youtube-audio-par-dl and youtube-par-dl with corresponding download command # only works with jq (command line JSON processor) cmd="$1" playlistURL="$2" playlistJSON=`youtube-dl "$playlistURL" --flat-playlist -J` playlistTitle=`echo "$playlistJSON" | jq -r '.title'` playlistInfo="$playlistTitle" output="$(mkdir "$playlistTitle")" status=$? if [ $status -ne 0 ]; then output="$(cd "$playlistTitle")" status=$? if [ $status -ne 0 ]; then playlistTitle=`echo "$playlistJSON" | jq -r '.id'` mkdir "$playlistTitle" fi fi cd "$playlistTitle" urls=`echo "$playlistJSON" | jq -r '.entries[].url'` echo "$urls" | awk '{print "https://www.youtube.com/watch?v=" $0}' | xargs -n 1 -P 10 "$cmd" m3uFile="Playlist - $playlistTitle"".m3u8" echo "#EXTM3U" > "$m3uFile" echo "#PLAYLIST:$playlistInfo" >> "$m3uFile" echo "$urls" | while read url; do find . -name "*$url*" -prune >> "$m3uFile" done