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:
http://gdata.youtube.com/feeds/api/users/LetsPlay/uploads
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:
https://github.com/tonyborries/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 ChannelName04 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 / Username09 10 # ./YtChannelRss.py -v -k "Google-API-Key" -c LetsPlay > /var/www/html/LetsPlay.xml
11 ApiKey: Google-API-Key12 Channel: LetsPlay13 Channel ID: UCkxctb0jr8vwa4Do6c6su0Q14 Found 81 Videos
15 Found 1 Channels
16 Found 20 Playlists
17 Building RSS with 81 Items
18