#!/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