RSS scraper with immediate RESTful access to feed items

Django, RSS, RESTful API
pip install django-rss2rest==0.1



  • Configure your feeds in the settings file
  • Turns RSS feeds into a RESTful API with the use of TastyPie and Feedparser (perfect for use with backbone.js)
  • Map feeds to Django models, few convenienve models are provided (see below)
  • Write your own mdels representing a feed item, you just need to provide a mapping from feed nodes to model fields
  • Harvest feeds using ./ syncdb command
  • Access your feeds direct via tastypie API resource


Install via PIP:

$ pip install django-rss2rest

Add to your INSTALLED_APPS the following:


Define your feeds:

    {'feed': 'http://feedurl/',
     'model': 'rss2rest.FeedItem'},

Add RESTful routing to your

from rss2rest.api import FeedItemResource
feed_item_resource = FeedItemResource()
urlpatterns += patterns('rss2rest',
    (r'^api/', include(feed_item_resource.urls)),


Synchronise Feeds:

./ syncrss2rest

Consume feeds go to:<resource_name>

Models for your feeds

In order for the feed to be exposed as a RESTful resource the feed must be mapped to a django model. rss2rest provides a few pre-defined models that fit some typical scenarios.

Generic feed item models:

  • FeedItem - generic feed item
  • VimeoFeedItem - maps well to Vimeo Likes RSS feed
  • FlickrFeedItem - maps well to Flickr Likes RSS feed

Writing your own feed item model:

  • Create your own model for the feed to provide custom mapping, etc
  • Simply extend the abstract AbstractFeedItem class present in the rss2rest.models file.
  • Put MAPPING dictionary as a class property and you're ready to go
  • Make sure you put your new model class name (as string in the format of app.ModelName) into the RSS2REST_FEEDS setting
  • If your model is pretty generic and maps to a public feed - make sure you submit it as a pull request with accompanying tests to be included in the rss2rest

Generic tasty pie resources

  • FeedItemResource - resource name: feed_item
  • FlickrItemResource - resource name: flickr
  • VimeoItemResource - resource name: vimeo

Custom resources


Set up in development mode:

$ git clone git://
$ cd rss2rest
$ mkvirtualenv rss2rest
$ python develop
$ cd sandbox/
$ cp
$ ./ syncdb
$ ./ test rss2rest

Planned development

  • More tests for all types of feeds
  • More generic feed item models to cater for other common use cases
  • published flag on abstract model to drive presence in the RESTful API (configurable with publish/unpublish flag using django admin panel); way to define default behaviour using a setting
  • Defining your feeds in the database