Skip to content

gofeed

2,090 2 40 MIT/X
v1.2.0 (29 Jan 2023) Apr 20 2016 58.1 thousand (month)

The gofeed library is a robust feed parser that supports parsing both RSS, Atom and JSON feeds. The library provides a universal gofeed.Parser that will parse and convert all feed types into a hybrid gofeed.Feed model.

You also have the option of utilizing the feed specific atom.Parser or rss.Parser or json.Parser parsers which generate atom. Feed , rss.Feed and json.Feed respectively.

Supported feed types:

  • RSS 0.90
  • Netscape RSS 0.91
  • Userland RSS 0.91
  • RSS 0.92
  • RSS 0.93
  • RSS 0.94
  • RSS 1.0
  • RSS 2.0
  • Atom 0.3
  • Atom 1.0
  • JSON 1.0
  • JSON 1.1

Example Use


// parse feed from URL
fp := gofeed.NewParser()
fp.UserAgent = "MyCustomAgent 1.0"  // we can modify http client with custom headers etc.
feed, _ := fp.ParseURL("http://feeds.twit.tv/twit.xml")
fmt.Println(feed.Title)

// parse feed from string
feedData := `<rss version="2.0">
<channel>
<title>Sample Feed</title>
</channel>
</rss>`
fp := gofeed.NewParser()
feed, _ := fp.ParseString(feedData)
fmt.Println(feed.Title)

// or file
file, _ := os.Open("/path/to/a/file.xml")
defer file.Close()
fp := gofeed.NewParser()
feed, _ := fp.Parse(file)
fmt.Println(feed.Title)

Alternatives / Similar


Other Languages

1,357 2020.1.16 (3 years ago) Dec 14 2008 compare
783 1.4.1 (a month ago) Jul 17 2019 compare
2,222 0.8.1 (2 years ago) Jun 30 2011 compare
12,488 0.2.8 (4 years ago) Dec 28 2012 compare
733 0.14.0 (4 months ago) Oct 27 2015 compare
3,063 0.11.0 (4 months ago) Oct 20 2013 compare
9,417 1.1.9 (4 years ago) Aug 24 2018 compare
74 2.0.7 (3 months ago) Dec 11 2020 compare