#!/bin/bash set -eu playlistURL="$1" noItems="$2" playlistJSON=`yt-dlp "$playlistURL" --flat-playlist -J --playlist-end "$noItems"` uploader=`echo "$playlistJSON" | jq -r '.uploader'` if [ "$uploader" = "null" ] || [ "$uploader" = "" ]; then uploader=`echo "$playlistJSON" | jq -r '.title'` fi entries=`echo "$playlistJSON" | jq -r '.entries[] | .id + " " + .title'` if [ "$entries" = "null" ] || [ "$entries" = "" ]; then exit 1 fi echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?> <rss version=\"2.0\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\"> <channel> <title><![CDATA[ $uploader ]]></title> <link><![CDATA[ $playlistURL ]]></link> <description><![CDATA[ $playlistURL ]]></description> " pubdate=`date --rfc-email` echo "$entries" | while read entry; do url=`echo "$entry" | cut -d' ' -f1` title=`echo "$entry" | cut -d' ' -f2-` pubdate=`date --rfc-email -d "$pubdate - 5 seconds"` embedURL="https://www.youtube.com/embed/$url" link="https://www.youtube.com/watch?v=$url" echo " <item> <title><![CDATA[ $title ]]></title> <content:encoded><![CDATA[ <iframe src=\"$embedURL\" allowfullscreen /> ]]></content:encoded> <guid>$link</guid> <link>$link</link> <pubDate>$pubdate</pubDate> </item> " done echo " </channel> </rss> "