Article submitted by Andreas Krennmair. We are running out of articles ! Please help DPOTD and submit good articles about software you like !
RSS is a set of XML-based formats to describe articles (including title, link to the original article, description, etc.) which are usually transported via the HTTP protocol. These days, the majority of blogs and news websites provide RSS feeds. In order to read these feeds in a useful way, special programs, called RSS feed readers or RSS aggregators, can be used.
Newsbeuter is an RSS feedreader for the text console. It comes with a user interface in the style of such popular text tools such as mutt and slrn, and aims to be the text-mode RSS feedreader with the most features, providing the greatest flexibility for its users.
Starting with newsbeuter
After installing newsbeuter with a simple aptitude install newsbeuter (currently in Debian unstable, only), you can run newsbeuter for the first time, and is presented with the following message:
Error: no URLs configured. Please fill the file /home/ak/.newsbeuter/urls with RSS feed URLs or import an OPML file.
newsbeuter 0.6
usage: ./newsbeuter [-i <file>|-e] [-u <urlfile>] [-c <cachefile>] [-h]
-r refresh feeds on start
-e export OPML feed to stdout
-i <file> import OPML file
-u <urlfile> read RSS feed URLs from <urlfile>
-c <cachefile> use <cachefile> as cache file
-C <configfile> read configuration from <configfile>
-v clean up cache thoroughly
-h this help
This means that newsbeuter needs to be configured with the RSS feed URLs that you want to read. This can either by achieved by manually filling
~/.newsbeuter/urls with RSS feed URLs (one by line), or by importing an OPML file by running newsbeuter -i blogroll.opml. OPML is a XML-based format for describing outlines, and is in wide use to import and export lists of RSS subscriptons between RSS feedreaders.
Newsbeuter can be configured via its configuration file ~/.newsbeuter/config. A wide range of properties and behaviour can be configured, so it’s wise to have a look into the provided documentation.
A reasonable configuration to start with is the following setup. The manpage lists all available configuration options, so there’s a lot to experiment with.
# This is an example configuration file for newsbeuter
# save this as ~/.newsbeuter/config
auto-reload yes # automatically start a "reload all" thread at a defined interval
reload-time 30 # reload all feeds every 30 minutes
confirm-exit yes # always ask the user whether he really wants to quit
Advanced Features
What makes newsbeuter so interesting are the advanced features it comes with. For previous users of SnowNews (another console-based RSS feedreader), newsbeuter supports snownews extensions, which are easy to develop and of which a huge collection is readily available.
Newsbeuter also comes with support for podcasts. Newsbeuter contains functionality to help collect podcast download URLs (either automatically or manually), which can then be downloaded with a separate tool called “podbeuter”.
Another very interesting feature is the internal filter language. It’s a generic expression language that makes it easy to define complex search criterias, which cannot only be used both for searching for feeds and articles, but also for defining rules for ignoring certain articles (think of killfiles for RSS feeds), or configuring “meta feeds”, feeds that contain only articles from other feeds which match a filter expression. The documentation comes with plenty of examples for these use cases.
Other features supported by newsbeuter are a flexible categorization functionality based on tags (every RSS feed can be tagged with keywords, and the displaying of RSS feeds can be filtered by tags), notifications about new articles via external programs or directly to a GNU screen session, free configurability of key bindings and colors, and an internal command line.
Screenshots
The typical feedlist of newsbeuter, giving the user an overview over configured feeds and the number of downloaded and unread articles per feed:
Newsbeuter renders the HTML that is contained in article descriptions, and lists all links that are contained in the article (these links can even be opened with a simple keypress in a freely configurable web browser):
Colors can be freely configured, as demonstrated by this screenshot:
Internationalization (I18N) and localization (L10N) are important in the newsbeuter project. Newsbeuter can perfectly handle Unicode characters, and its user interface is currently available in English (default), German, Italian, French and Russian. The screenshot shows a Russian newsbeuter, displaying a Japanese RSS feed:
Comparison with other RSS Feedreaders
A few other text-mode RSS feedreaders beside newsbeuter exist. The most prominent ones are Snownews and raggle. Both Snownews and raggle have in common that they are no longer under active development. Snownews itself is hard to maintain and extend, and raggle is relatively slow (even on new, fast computers), because it is purely implemented in the Ruby scripting language. Especially Snownews lacks a lot of features compared to newsbeuter, such as support for the Atom XML format and HTTPS support.
One goal of newsbeuter development was to build a feed reader that does not only fix the deficiencies of the existing tools and integrate all the useful features, but that is also easily extensible. This goal has been achieved, and now development is aiming at more advanced features: future releases will contain a flexible and extensible bookmarking support, improved support for notification frameworks such as Growl, and synchronization with web RSS feed readers such as Bloglines.
More Information
Since newsbeuter is relatively new (development started in November 2006, the first Debian package entered unstable in February 2007), it is only available in unstable and testing (in a completely outdated version). It will be available in Ubuntu Gutsy, but the version is outdated already as well.