📺 My YouTube setup of 2021

2021-01-07

Introduction

Most of my media consumption happens on YouTube. But since i want get rid of Googles grip on my online identity i need to look into alternative ways to use this platform. In this post i describe my way to subscribe and watch channel without relying on the website itself.

Subscribe to channels

This is one of my most used features. I have around 90 subscriptions on YouTube in order to not "miss" a video.

A forgotten feature of YouToube is that they are providing RSS feeds for every channel. You can see them for example via the Firefox plugin Awesome RSS. A typical RSS-URL for a channel looks like this: https://www.youtube.com/feeds/videos.xml?channel_id=UCPxHg4192hLDpTI2w7F9rPg Now comes the fun part. How do i manage all my subscriptions via RSS? The most simple solution would be to throw the URLs into whatever newsreader you'd like and then click on the link to watch the video in your browser. Since i want to use the YouTube Website less this is not really an option for me. So it would be cool to use a combination of youtube-dl and mpv to watch the videos directly from within the newsreader.

In comes Newsboat

Newsboat is a terminal newsreader and was forked from newsbeuter. It is actively maintained and is (with a little configuration) capable of doing what i want to consume my media. Newsboat manages its Rss feeds in a simple file called urls. Here is a small snippet of mine:

https://www.youtube.com/feeds/videos.xml?channel_id=UCDf6reK_hHcz0d7KWBhmPhA "Youtube Subscriptions" music
https://www.youtube.com/feeds/videos.xml?user=FrenchGuyCooking "Youtube Subscriptions"
https://www.youtube.com/feeds/videos.xml?channel_id=UCyI1D9N2OvZif9a2JhV_nrA "Youtube Subscriptions" music
https://www.youtube.com/feeds/videos.xml?channel_id=UCy9m42TK6xAWhCKU-ZxJI1A "Youtube Subscriptions" music

Let's talk about these four lines:

  1. The first part is the URL to the RSS feed of the channel.
  2. After the URL there are either one or two tags. Every channel is tagged with "Youtube Subscriptions" and three out of four are also tagged with music. This allows me to switch between all these tags in Newsboat. I could add more tags and might do so in the future but for now these two tags are everything i need. This is a very basic setup of Newsboat. In order to make my life easier i have added a few things like queries and macros.

Let us talk about queries first. Queries are like virtual RSS feeds that are based on certain filters. I, for example, have added the following query on top of my urls-file:

"query:Unwatched Videos:(unread = \"yes\" and tags # \"Youtube\")"

This query creates a new entry in my feedlist called "Unwatched Videos" an contains every entry that is marked as unread and which tags contains the word "Youtube". While having this query is nice and allows for quick access to all unwatched videos the real part of my workflow are the Newsboat macros. Macros are defined in Newsboats config file:

macro y set browser "youtube-dl -f best -o '/home/mzumquadrat/Videos/Youtube/%(title)s-%(id)s.%(ext)s' %u &>/tmp/newsboat-youtubedl.log &" ; open-in-browser ; set browser "firefox %u"
macro m set browser "mpv %u &>/tmp/newsboat-mpv.log &" ; open-in-browser ; set browser "firefox %u"
macro M set browser "mpv --audio-display=no --video=no %u &>/tmp/newsboat-mpv.log &" ; open-in-browser ; set browser "firefox %u"
macro c set browser "echo %u | xclip -in -selection clipboard" ; open-in-browser ; set browser "firefox %u"

In Newsboat every entry is opened with the configured browser which is Firefox in my case. But by temporarily overwriting the browser variable Newsboat is able to use different programs to achieve different tasks. This is what my macros are for. After each program is executed the browser variable is set back to the original browser. Let's take a look at my four macros:

  1. The first one is to download the selected video via youtube-dl. After selecting an entry i can press , and y to download the video into a special Youtube folder on my filesystem.
  2. The second macro opens the selected entry in mpv. I use playerctl to control mpv from my various terminals even though it is running in the background.
  3. The third macro is similar to the second macro. The only difference between these two is that i suppress every form of video output in this one. This way i can listen to music without having to place a video somewhere.
  4. The last macro is for copying the URL of the YouTube video to my clipboard.

After every macro got invoked (using Newsboats open-in-browser)the browser is then set back to Firefox.

Conclusion

As long as YouTube isn't killing the RSS feature of channels this setup is a comfortable way to watch subscriptions. For every other thing like searching for stuff, trying to discover new things i use several invidious instances. One unsolved problem with this setup is the question how to support the content creators. Not everyone is offering a way to donate besides the YouTube ad money. This is why i would argue that this is a good setup but not a perfekt one. How do you consume your videos on YouTube?

Tags: #web #cli #rss

If you want to send me a message feel free to contact me via my mastodon account. You can find me over at Fosstodon.