Newsboat: RSS & Atom
Newsboat: Supreme for Atom and RSS

RSS (Really Simple Syndication) and Atom are XML-based formats for publishing website updates. They let users subscribe to content via a feed reader instead of visiting each site manually.
Newsboat is a surprisingly customizable RSS/Atom feed reader.
Some things you can do with Newsboat include integrating yt-dlp to download videos on the fly, viewing Reddit threads, and renaming feeds.
For example, to integrate yt-dlp, you could use something like this:
#!/usr/bin/env bash
set -euo pipefail
URL="${1:-}"
[ -z "$URL" ] && exit 1
if [[ "$URL" =~ (^https?://)?(www\.)?(youtu\.be|youtube\.com)(/|$) ]]; then
DOWNLOAD_DIR="${HOME}/Videos"
mkdir -p "$DOWNLOAD_DIR"
# Format selection:
# 1. Try 1080x1920, then 720p, then fallback to best
# 2. Merge best audio with best video if separate
yt-dlp --restrict-filenames -f \
"(bv*[height=1080][width=1920]+ba/bestvideo[height<=1080]+bestaudio/best)[fps>=30]" \
-o "${DOWNLOAD_DIR}/%(uploader)s/%(title)s.%(ext)s" \
"$URL"
FILE=$(ls -t "${DOWNLOAD_DIR}"/*/* 2>/dev/null | head -n 1)
mpv "$FILE"
else
zen "$URL" &
fi
To add feeds, edit ~/.newsboat/urls. An example ~/.newsboat/urls file could look like this:
https://zeq.rocks/feed/feed.atom
https://gitlab.com/zeqqqe.atom "~zeq's GitLab"
https://www.reddit.com/r/linux/hot/.rss "~r/Linux"
https://www.omgubuntu.co.uk/feed "~OMG! Ubuntu!"
https://www.phoronix.com/rss.php "~Phoronix"
https://news.opensuse.org/feed.xml "~openSUSE News"
https://itsfoss.com/feed/ "~It's FOSS"
https://news.ycombinator.com/rss "~Hacker News"
https://planet.gnome.org/rss20.xml "~Planet GNOME"
https://planet.kde.org/rss20.xml "~Planet KDE"
https://www.youtube.com/feeds/videos.xml?channel_id=UCld68syR8Wi-GY_n4CaoJGA "~YouTube: @BrodieRobertson"
https://www.youtube.com/feeds/videos.xml?channel_id=UC5UAwBUum7CPN5buc-_N1Fw "~YouTube: @TheLinuxEXP"
https://www.youtube.com/feeds/videos.xml?channel_id=UCymgNglZHYlS1Aw8Mu3QqaA "~YouTube: @craylor"
https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg "~YouTube: @DistroTube"
Newsboat is packaged on almost every distro. To install it, run one of the following:
openSUSE: sudo zypper install newsboat
Debian: sudo apt install newsboat
Fedora: sudo dnf install newsboat
Arch: sudo pacman -S newsboat
To configure Newsboat, edit ~/.newsboat/config. An example Newsboat configuration file could be:
unbind-key j
unbind-key k
unbind-key h
unbind-key H
unbind-key L
unbind-key c
unbind-key ,
# Feed settings
prepopulate-query-feeds yes
refresh-on-startup yes
ignore-mode "display"
browser zen
macro w set browser "~/.newsboat/yt-dlp.sh %u" ; open-in-browser ; set browser "zen %u"
# bind keys
bind-key h exit
bind-key ; macro-prefix
bind-key BACKSPACE quit
bind-key j down
bind-key k up
bind-key l open
bind-key H prev-feed
bind-key L next-feed
bind-key c toggle-show-read-feeds
color background default default
color listnormal default default
color listnormal_unread default default
color listfocus color16 cyan
color listfocus_unread color16 cyan
color info default black
color article default default
highlight article "(^Feed:.*|^Title:.*|^Author:.*)" cyan default bold
highlight article "(^Link:.*|^Date:.*)" default default
highlight article "https?://[^ ]+" blue default
highlight article "^(Title):.*$" blue default
highlight article "\\[[0-9][0-9]*\\]" white default bold
highlight article "\\[image\\ [0-9]+\\]" blue default bold
highlight article "\\[embedded flash: [0-9][0-9]*\\]" cyan default bold
highlight article ":.*\\(link\\)$" cyan default
highlight article ":.*\\(image\\)$" blue default
highlight article ":.*\\(embedded flash\\)$" magenta default
To export/import a .opml in Newsboat, you can do:
newsboat -e > feeds.opml && newsboat -i feeds.opml
A typical .opml might look like:
<?xml version="1.0"?>
<opml version="1.0">
<head>
<title>Newsboat - Exported Feeds</title>
</head>
<body>
<outline type="rss" xmlUrl="https://zeq.rocks/feed/feed.atom" htmlUrl="https://zeq.rocks/feed/feed.atom" title="zeq's blog" text="zeq's blog"/>
<outline type="rss" xmlUrl="https://gitlab.com/zeqqqe.atom" htmlUrl="https://gitlab.com/Zeqqqe" title="zeq's GitLab" text="zeq's GitLab"/>
<outline type="rss" xmlUrl="https://www.reddit.com/r/linux/hot/.rss" htmlUrl="https://www.reddit.com/r/linux/hot/" title="r/Linux" text="r/Linux"/>
<outline type="rss" xmlUrl="https://www.omgubuntu.co.uk/feed" htmlUrl="https://www.omgubuntu.co.uk/" title="OMG! Ubuntu!" text="OMG! Ubuntu!"/>
<outline type="rss" xmlUrl="https://www.phoronix.com/rss.php" htmlUrl="https://www.phoronix.com/" title="Phoronix" text="Phoronix"/>
<outline type="rss" xmlUrl="https://news.opensuse.org/feed.xml" htmlUrl="https://news.opensuse.org/" title="openSUSE News" text="openSUSE News"/>
<outline type="rss" xmlUrl="https://itsfoss.com/feed/" htmlUrl="https://itsfoss.com/" title="It's FOSS" text="It's FOSS"/>
<outline type="rss" xmlUrl="https://news.ycombinator.com/rss" htmlUrl="https://news.ycombinator.com/" title="Hacker News" text="Hacker News"/>
<outline type="rss" xmlUrl="https://planet.gnome.org/rss20.xml" htmlUrl="https://planet.gnome.org/" title="Planet GNOME" text="Planet GNOME"/>
<outline type="rss" xmlUrl="https://planet.kde.org/rss20.xml" htmlUrl="https://planet.kde.org/" title="Planet KDE" text="Planet KDE"/>
<outline type="rss" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UCld68syR8Wi-GY_n4CaoJGA" htmlUrl="https://www.youtube.com/channel/UCld68syR8Wi-GY_n4CaoJGA" title="YouTube: @BrodieRobertson" text="YouTube: @BrodieRobertson"/>
<outline type="rss" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UC5UAwBUum7CPN5buc-_N1Fw" htmlUrl="https://www.youtube.com/channel/UC5UAwBUum7CPN5buc-_N1Fw" title="YouTube: @TheLinuxEXP" text="YouTube: @TheLinuxEXP"/>
<outline type="rss" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UCymgNglZHYlS1Aw8Mu3QqaA" htmlUrl="https://www.youtube.com/channel/UCymgNglZHYlS1Aw8Mu3QqaA" title="YouTube: @craylor" text="YouTube: @craylor"/>
<outline type="rss" xmlUrl="https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg" htmlUrl="https://www.youtube.com/channel/UCVls1GmFKf6WlTraIb_IaJg" title="YouTube: @DistroTube" text="YouTube: @DistroTube"/>
</body>
</opml>
Newsbeuter: The ancestor
Newsboat didn’t appear out of nowhere. Its predecessor, Newsbeuter, was a terminal RSS/Atom reader that ran like a beast in the 2000s. It did almost everything Newsboat does now-feeds, keybindings, OPML. But it’s dead, development stopped around 2017.
If you have old Newsbeuter configs, Newsboat just picks them up. Same syntax, same files, just newer, faster, and maintained.
This site has Atom/RSS feeds, to get them go to /feed/feed.atom or /feed/feed.rss.
- ← Previous
favicon.ico is Supreme
