Using Newsboat, Podboat, and mpv

I go over three programs and how they help me keep my web browsing under control

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.

Footnotes

  1. RDF Site Summary, Really Simple Syndiation, Radical Samurai Slugs, the precise definition of those letters doesn't really matter these days
  2. Or you're just getting started. Web browsing can turn into an endless rabbit warren if you let it
  3. I used to use Tiny Tiny RSS for this, but it required running a webserver with PHP and MySQL which was a headache. I bailed after the author stopped releasing packages and decided that I should just git pull the main branch for updates. I just checked again and it turns out that's no longer supported. Now you're supposed to use Docker.
  4. Unless the site uses Javascript to load the entire site and the page is blank without it. That's annoying.
  5. I just shamelessly copied this from the newsboat documentation
  6. You can do a lot more with the url list than I'm going to go into here. I highly recommend that you look at the documentation (It's a lot. If just looking at it makes you woozy, just lie down for a while and come back to it later)


Read more articles · Go back to the homepage