Feed Type and Version Detection

Universal Feed Parser attempts to autodetect the type and version of the feeds it parses. There are many subtle and not-so-subtle differences between the different versions of RSS, and applications may choose to handle different feed types in different ways.

Accessing feed version

>>> d = feedparser.parse('http://feedparser.org/docs/examples/atom10.xml')
>>> d.version
'atom10'
>>> d = feedparser.parse('http://feedparser.org/docs/examples/atom03.xml')
>>> d.version
'atom03'
>>> d = feedparser.parse('http://feedparser.org/docs/examples/rss20.xml')
>>> d.version
'rss20'
>>> d = feedparser.parse('http://feedparser.org/docs/examples/rss20dc.xml')
>>> d.version
'rss20'
>>> d = feedparser.parse('http://feedparser.org/docs/examples/rss10.rdf')
>>> d.version
'rss10'

Here is the complete list of known feed types and versions that may be returned in version:

rss090

RSS 0.90

rss091n

Netscape RSS 0.91

rss091u

Userland RSS 0.91 (differences from Netscape RSS 0.91)

rss10

RSS 1.0

rss092

RSS 0.92

rss093

RSS 0.93

rss094

RSS 0.94 (no accurate specification is known to exist)

rss20

RSS 2.0

rss

RSS (unknown or unrecognized version)

atom01

Atom 0.1

atom02

Atom 0.2

atom03

Atom 0.3

atom10

Atom 1.0

atom

Atom (unknown or unrecognized version)

cdf

CDF

If the feed type is completely unknown, version will be an empty string.