For a long time I was never attracted to the concept of youtube “channels”, being put off by the required buy-in to the youtube ecosystem and by their awful web player, unskippable ads, and more.
Until one day I realised that I could subscribe to youtube channels using my own RSS reader, and without the need for any google account. With that, my interest in youtube channels experienced a resurgence, and within a few months, my RSS reader listed over a 100 video feeds.
Unfortunately, although most RSS readers are excellent for following mostly text-based content, the experience of watching videos leaves something to be said about ease of use. This is how a typical session could look like in TinyTinyRSS, with all video feeds organised into a single category, i.e., a single list):
In this post I will describe the simple tool that I have unimaginatively named
ttrss-video-mpv
and which I glued together from
the TinyTinyRSS API,
a Python library
to access said API, and a few lines of bash to tie it into my desktop environment
of choice, i3wm.
RSS is awesome!
But first, a short primer on why RSS is awesome. RSS is just XML (that is, structured data, no styling) which makes it easily machine-readable and easy to let your reader/client software apply whatever styling/layout suits you best. This is valuable for anyone who wants to control their viewing/reading experience to their own needs or likes.
RSS is a de facto standard syndication system for websites (it has been around since before social media).
All of this makes RSS accessible and useful. I don’t recall where I read the following, so I hope I am not mischaracterising here, but in essence, an RSS feed is just another way to publish a website:
- HTML (plus CSS, JS, etc.) + HTTP → website
- XML + HTTP → RSS feed
RSS is an umbrella term, and encompasses several different versions of both the RSS and Atom formats. In this post I’ll simply use the label “RSS”, and by that mean both Atom and RSS.
All websites should publish RSS feeds!
Let’s round off this ode to RSS with the unimitable words of Felicia Day:
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!
ttrss-video-mpv
If you just want to see the code, it’s available on codeberg.
And here is how it looks in action, when used with the rofi application launcher on the i3 window manager:
This way, following your youtube channels becomes almost as easy as following any other stream.
Note that this tool only works for the TinyTinyRSS feed reader, and assumes you have installed bash, python, mpv and youtube-dl.
Folllowing non-youtube video channels is straight-forward, assuming they offer
an RSS feed, thanks to the
massive list of websites supported by youtube-dl
.
Ideas for future development?
Could we achieve similar functionality on Android devices? Today, on Android, I watch videos by browsing the TTRSS app and opening videos in NewPipe.
But creating a functionally similar playback of all videos in Android would require developing our own app for starters (and I’ve no experience with that) and a way to access the TinyTinyRSS API plus some way to use youtube-dl.
Notes and links
I created the screencast GIFs using peek and screenkey. My linkblog has a list of screen capture software as well as a short note on how to subscribe to Youtube channels using RSS.
To just watch a random collection of recent Youtube videos, there’s Astronaut, code repo here and NY Magazine article here.
Use RSS to follow new content
- RSS makes the web tolerable again, Jamie Adams, 2019
- How to read RSS in 2020, Laura Kalbag, 2020
- Consuming News, Amolith, 2021
- Turn to RSS Feeds to Regain Control of the World Wide Web, Roy Schestowitz, 2012. HackerNews thread
- Reports of RSS’s demise have been greatly exaggerated
Self-host your RSS reader
Watch youtube using non-google clients (e.g., RSS readers)
- Replacing YouTube & Invidious, Amolith, 2021
- Youtube RSS, Egg Freckles, 2020
- Vivaldi browser comes with Youtube channel RSS subscription built-in
- Introduction to web feeds and how to subscribe to Youtube channels using RSS
- Consuming YouTube through RSS: Reclaim control of your subscriptions
- Drew DeVault uses RSS, an RSS-to-email program along with some filters in his email inbox, and a custom keybinding in his mail client (mutt) that identifies the youtube URL and plays it with mpv.
- Listen to any Youtube/Vimeo channels in podcast format
Watch youtube videos via RSS in mpv or youtube-dl
- Elfeed + MPV + YouTube, r/emacs
- Youtube subscriptions using elfeed & mpv, r/emacs
- Use Newsboat rss reader and mpv to subscribe and play bsdnow youtube feed, FreeBSD forums
- Youtube without (personalized) recommendations, The Privacy Captain
- https://reddit.com/r/rss/comments/j3qn9k/opening_youtube_videos_with_mpv_in_liferea/