Ok, I’m not too happy with the current title, “make a video stream” is ambiguous. Alternative title suggestions:

  • Stream your TinyTinyRSS video feeds to yourself using mpv and scripting

If you, like me, use TinyTinyRSS to subscribe to video channels via RSS (from youtube or otherwise), then this blog post will be right up your alley. And if you don’t already subscribe to RSS wink wink will this blog post aim to teach how to get there?

I have been following and reading sites across the web using a self-hosted instance of TinyTinyRSS (a web-based RSS reader) since Google Reader shuttered its doors in 2013. If you aren’t familiar with RSS, suffice it to say that it’s a neutral, standards-based syndication system for websites.

Reports of RSS’s demise have been greatly exaggerated

The interesting feature of the [Google RSS] reader for our purposes is that the j key will let you go down in the list of headlines. Yes, j, as in jo down. k, as in kup goes up in the list. No, there is absolutely nothing mnemonic about the j and k keys, but they feel wonderful. I assume you know how to type properly, with hands on the home keys; I generally find my hands are on the home keys even when I’m just staring at the screen, and my hand doesn’t need any help from my brain to find the little nubbin on the j key. But that j key. It’s the index finger of 90% of the world’s dominant hand, and the keyboard is designed so that that index finger knows exactly where to rest. Moving down on the page is the most common operation, both in reading and even editing, so it makes complete ergonomic sense to attach this to the strongest finger of the strongest hand. Even the lefties will have no problem with it. […] I personally think the use of the j key is easy to learn because of its ergonomic delight. But it throws ease of initial use out the window–almost belligerently. You want to use the nifty hotkeys? Then RTM.

Excerpt from “Why Word is a terrible program” by Ben Klemens, 2009 (original article URL is broken, link above is to the full-text saved on my Wallabag).

Can’t really say it better than Felicia Day’s rant:

RSS is a way to consume a LOT of information very quickly, and STORE it in nice categories if you miss it. So I can catch up with a small blog’s output at the end of the week and, if I so choose, read EVERY article easily in one sitting. You think on Friday I’m gonna go browse that same site’s Twitter feed on their page (digging through all the messy @ replies) and see what they did that week?! Or go to their Facebook page that is littered with contests? No way dude, I’m too busy for that!

setup using TinyTinyRSS and Wallabag

One of the main reasons I’ve been able to stick to the same RSS reader software for so long, partly because it is self-hosted so no one else can yank it out from under me, but also because it is FOSS and so in principle completely configurable to suit your particular needs. In reality, few have the programming skills nor the time to configure anything from scratch, and here is where an added benefit of FOSS manifests itself: the sharing of code, add-on plugins, . Well, it’s not so much a benefit of FOSS in general as it is one of TinyTinyRSS in particular, givent that TTRSS offers not only a plugin system but also an API.

The whole reason this

As time has gone by, and I’ve continued to discover more interesting websites, the number of feeds in my reader steadily grew.

If you already subscribe to video channels (youtube or otherwise) using RSS,1

Nearly two hundred video channel feeds (from youtube and otherwise), which I have leading to around 10 new videos per day in my 173 video feeds, perhaps 10-20 new videos every day

In effect, to use a slightly outdated term, we achieve our own TV channel.

I recorded a screencast

The following screencast shows the default (TinyTinyRSS web-UI) way to watch new video feeds (all added into one category so that all videos show up in one list).

Some text.

Admittedly, this tool I have written only works for TinyTinyRSS, and assuming you have bash and python on your system. But this limited scope is by design — this is a tool aimed at a very specific use-case. In addition, I have integrated it into my program launcher, rofi, and into my window manager, i3.

Lovingly built with…

TinyTinyRSS Python (ttrss-python library) Shell scripting mpv video player (depends on youtube-dl)

and integrating with: i3 window manager rofi application launcher

  1. footnote↩︎