The Internet is a vast place, with more content created every minute than I could hope to keep up with in a lifetime, so it's helpful to try and wrangle some of that info into a form that's easily consumable so I don't have to waste time hunting around for it. Enter: RSS Feeds.1. RSS feeds are basically XML files that a website operator can update to let subsribers know when a site was updated and what pages got the updates. It's handy because instead of clicking a mountain of bookmarks every time you open a web browser, you can just look at your RSS reader to see which sites have advertised updates, open the one that looks interesting that day, and you're done2.
There are lots of RSS readers out there, but the one I'm going to focus on today is newsboat. I use Newsboat because I can leave it running on a computer and then SSH back into it wherever I am3. Newsboat is extremely configurable, but I only really use a bare minimum of a configuration. My ~/.newsboat/config
:
auto-reload yes
reload-time 60
reload-threads 2
browser lynx
max-downloads 2
keep-articles-days 14
player "mpv --vid=no"
macro 1 set browser "mpv --vid=no"; one; set browser lynx
Newsboat and podboat share a configuration file, which makes things tidy, if not a little confusing. Most of the options are straightforward.
auto-reload yes
Tells newsboat to automatically check for updated feeds
reload-time 60
Check for updates every 60 minutes
reload-threads 2
Check up to 2 concurrent feeds
browser lynx
Use lynx
to open links. There are other more capable browsers I could use, sure, but lynx
works well enough for me and I can usually find the part of the page I'm interested in pretty quickly4
max-downloads 2
Download up to two files at once
keep-articles-days 14
Delete any articles older than 14 days. If I haven't gotten to the article in 14 days I probably won't get to it. Having an 'unread' counter that grows forever gives me anxiety, so I try to keep that to a minimum
player "mpv --vid=no"
Tells podboat
to use mpv
to play downloaded mediausing mpv
. --vid=no
tells mpv
to disable video output.
macro 1 set browser "mpv --vid=no"; one; set browser lynx
This is a macro that does three things if you press the '1' key while looking at an RSS entry that has a media enclosure. 1. It sets the browser to mpv
, 2. It opens the first link in the RSS entry (one
is short for 'open the first link', and media enclosures are always presented as the first link in newsboat
), 3. Set my browser back to lynx
.5
Once you have some options configured, it's time to add some feeds to newsboat
. You do this by editing a file ~/.newsboat/urls
. This file is very straightforward. At minimum you need one url on each line pointing to an RSS feed you want to follow6. Finding RSS feeds can be tricky. Some sites will link to theirs right on the home page, some hide it in their View → Source
, some hide it even better than that (there are even some sites that don't provide one at all, which is annoying). Once you have a list of feeds you want to check out, start newsboat
, and you'll see a screen similar to the artist's rendering
Newsboat 2.27.0 - Your feeds (8 unread, 20 total) 1 (0/0) ymodem.org 2 (0/0) wyrm.org | It's not what you think, it's what I think 3 (0/0) wyrm.org | Just the media 4 N (3/3) w's timeline 5 (0/0) The Obscuritory 6 N (1/1) Nuclear Monster 7 N (48/48) LWN.net 8 N (2/2) OpenBSD Journal 9 (0/0) Pleroma News 10 (0/0) FreeBSD News Flash 11 N (5/5) XML.com Atom feed for articles and news items 12 N (2/2) Going Terribly q:Quit ENTER:Open n:Next Unread r:Reload R:Reload All A:Mark Read C:Mark All Read /:Search ?:Help
Yours will look different depending on what feeds you follow. Basic usage is to use the arrow keys to find a feed you want to read → hit 'enter' to open it → find the article that you want to read → hit 'enter' to open the summary (or whatever the feed gives you). Once you're done, you can do things like press 'n' to jump to the next unread article (even if it's in a different feed), 'q' to escape from the article you're reading, 'o' to open the link in the browser we defined earlier (if there's more than one link, they're presented as a numbered list and you can use the number keys to open those directly). The context help at the bottom of the screen is your friend.
If you open an item that contains a podcast link, you will see 'e' for 'enqueue'. This puts the link to the media file into podboat's queue for you to listen to later.
Whenever now becomes later, you close newsboat (or open it up in a different terminal) and open podboat. The interface is very similar, but instead of a bunch of news feeds, you'll see all of the media you queued up.
Queue (0 downloads in progress, 1 total) - 0.00 KB/s total - 2 parallel downloads 1 [ 0.0MB/ 0.0MB] [ 0.0 %] [ 0.00 KB/s] queued https://anchor.fm/s/341062cc/podcast/play/5264296 q:Quit d:Download c:Cancel D:Delete P:Purge Finished a:Toggle Automatic Download p:Play m:Mark as Finished ?:Help
From here you can press 'd' to download whichever podcast you've highlighted and 'p' to play it. Playing the file will use the media player we set up earlier, mpv. This is not an mpv guide, but basic usage is 'p' to pause, left and right arrows to skip a few seconds backward and forward, and 'q' to quit. Once you're done with the podcast, you can use capital 'D' to delete it (or keep it around if that's what you want to do.
And that's it. It looks complicated because there are a lot of moving parts, but they all fit together in a way that makes sense once you start digging into it. There are a lot more features here in all of these programs that I haven't touched on. I strongly recommend reading the fantastic manuals and creating your own workflow.