Mario Villalobos

Creating My Own MTV Music Channel

  • Notes

I grew up in the ‘90s, and one of the most popular channels in my household growing up was MTV. Our family loved tuning into MTV and watching music video after music video (yes, MTV used to play music videos!). Every day before school, my mom would turn on the TV, and we would all get ready for school listening to the music from these videos. When I finished getting ready for school, I would sit on the couch waiting for my siblings to finish getting ready and watch music videos by Aerosmith and Jamiroquai and Mariah Carey and Nirvana, and on and on it went, music video after music video. This was my childhood, and I didn’t know I missed it until I inadvertently stumbled into my own music video channel.

A few years ago, I made an attempt to get rid of my reliance on Google and their services. At the time, ever since Google Reader’s demise (RIP), I had began transitioning away from Google, but I never made the full transition. I had switched from Google Search to DuckDuckGo, from Google’s productivity suite to Markdown files and Apple’s capable alternatives, from Gmail to iCloud Mail, but the one service I could not replace was YouTube. For years I kept my Google account active because of YouTube. I wanted to keep track of my subscriptions, to like videos, to create playlists—to use YouTube, essentially. But there was a way I could delete my Google account and still use YouTube without having to visit their website and watch their ads and train their algorithm.

That way was by using youtube-dl.

Using a command-line and a bit of configuration, I could use youtube-dl to download any video from YouTube at whatever quality I wanted, with whatever settings I wanted, and watch it later on whatever device I wanted. The original youtube-dl has, sadly, gone dormant, but because the project is open-source, some awesome people have forked it and made their own version, yt-dlp.

yt-dlp picks up where youtube-dl left off, and they have been awesome at keeping this project active and up-to-date.

Once I had yt-dlp setup, the next challenge was to “subscribe” to all my favorite channels so I wouldn’t miss any videos. Fortunately, YouTube has made it so each channel has its own RSS feed, and many RSS readers support YouTube right out of the box. My feed reader of choice, Reeder, supports YouTube, so adding all my favorite channels was a breeze.

Finally, I needed a place to watch my videos, and for me, the best app for this is Plex. Plex has been around forever, unlike others (remember Boxee???), and they have apps for most devices out there. I use them on my Apple TV, and the app has been nothing but great.

With yt-dlp setup, with a way to get all the videos I want, and with a way to watch them, my dependence on my Google account vanished, and I could finally delete my Google account. So a few years ago, I did.

But wait, I might hear you saying, wasn’t this supposed to be about creating my own music video channel?

Why yes! Yes it was. I wanted to get all that out of the way to get to how I do things. First things first, here is the command I use to download my videos:

yt-dlp -o '/path/to/YouTube/%(uploader)s-%(upload_date)s-%(title)s.%(ext)s'
--download-archive '/path/to/archive.md'
-f 'bestvideo+bestaudio/best'
--sub-langs all,-live_chat
--embed-subs
--yes-playlist
--batch-file '/path/to/youtube.md'

I have a dedicated YouTube folder on an external SSD (CALYPSO) that saves each video with the channel name first, the upload date, then the title of the video. For example, downloading this video by Jomboy Media will output as: Jomboy Media-20221117-Tom Brady falls and trips player during botched trick play, a breakdown.webm. I prefer this format because sometimes I can go days or weeks without watching videos, and when I find the time, I like watching a certain channel’s output by the order they were released and catch up that way. It’s how I like to watch my videos.

The --download-archive setting helps ensure I don’t download the same video twice.

The -f 'bestvideo+bestaudio/best' ensures I get the highest quality version available.

I follow lots of foreign-language channels, so --sub-langs all,-live_chat helps download subs, and --embed-subs simply embeds the file in the video itself, and when I go to watch it on Plex, I can select the file and view the video with subtitles.

--yes-playlist downloads playlists. Simple enough.

Finally, --batch-file and the file itself is where some of the magic happens. I can go through my day, and I can simply add the URLs for all the YouTube videos I come across in my various feeds and append them to this file, and when I’m ready to download them, I run my yt-dlp command once, and all my videos start downloading. It’s really nice.

I know there are ways to run this automatically or on a schedule, but I download my videos to an SSD I take with me everywhere, and I don’t want my desktop at home to be my only media server. So I run this command manually when I need to, and it has worked fine for me.

As part of my RSS subscriptions, I subscribe to a lot of music websites and YouTube channels. Whenever there’s a new video out, either from someone I know or, especially, someone I don’t, I add the video to my YouTube.md file, and sometime later, after adding more and more videos to this file, I download all the videos.

Within my main YouTube folder, I have another folder called music, and within this folder, I add every music video and song I have downloaded. I do this for days, weeks, sometimes months, and I don’t watch them. I let them pile up for a while, and when I’m feeling the urge to sit on my couch and jam out to some music videos, I navigate to this folder in Plex—and here’s the fun part—I click on the “shuffle” button.

Music video bliss.

Doing this has brought back all the nostalgia from my childhood, back when I could sit on my couch before having to go to school and simply watch and listen to some amazing music. Those really were the days…