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.