YtChannelRss: Generating RSS Feeds from YouTube Channels

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 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

This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *