My favorite internet video publisher, RoosterTeeth (and their sister Achievement Hunter) recently launched a new YouTube channel, LetsPlay, dedicated to their LetsPlay series of videos. Unfortunately, I quickly got behind on the videos, and wanted to catch up. Having 80 videos published to their channel already, I wished to somehow subscribe to the channel in an RSS Aggregator to manage viewing the videos in order.
I found that YouTube offered a channel RSS feed, formatted as such for LetsPlay:
However, this only shows the most recent videos. Unfortunately, I was unable to find any offered feed that contained all of the videos.
I decided to make my own feed. Using Google’s API, I was able to generate a list of all of the videos from the channel. Simple enough, now I just had to generate the RSS Feed.
As much as I love Perl, Google provides their API Client Library in Python, and sure enough, an easy-to-use Python module was available to generate RSS XML Files
The result was YtChannelRss:
A single execution builds an RSS feed of all current videos. By subscribing to this static file, and YouTube’s RSS feed, I was able to get a list of all videos. As I catch up on the videos from this static list, the YouTube provided feed will keep up with the new videos… success.
Bash |copy code |?
01 02 # ./YtChannelRss.py -h 03 Usage: ./YtChannelRss.py [ -h ] [ -v ] -k APIKey -c ChannelName 04 05 -h, --help Show this usage message and exit. 06 -v, --verbose Verbose Output to StdErr 07 -k, --apikey YouTube API Key 08 -c, --channel YouTube Channel / Username 09 10 # ./YtChannelRss.py -v -k "Google-API-Key" -c LetsPlay > /var/www/html/LetsPlay.xml 11 ApiKey: Google-API-Key 12 Channel: LetsPlay 13 Channel ID: UCkxctb0jr8vwa4Do6c6su0Q 14 Found 81 Videos 15 Found 1 Channels 16 Found 20 Playlists 17 Building RSS with 81 Items 18