snippets/youtube-rss
2020-11-09 21:05:01 +01:00

49 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
playlistURL="$1"
noItems="$2"
set -e
playlistJSON=`youtube-dl "$playlistURL" --flat-playlist -J --playlist-end "$noItems"`
uploader=`echo "$playlistJSON" | jq -r '.uploader'`
if [ "$uploader" = "null" ]; 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[ $uploader ]]></description>
"
entries=`echo "$playlistJSON" | jq -r '.entries[] | .url + " " + .title'`
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>
"