Day: October 12, 2021

Write words. Press publish.

One popular trend is to implement a what I would consider a software development pipeline and not a blogging system. I love technology as much as the next nerd, but I do not understand this trend of increasing the dependencies and technical infrastructure for turning Markdown into HTML.

The Modern Complexity of the Simple Blog – Macdrifter

This is why I still use WordPress despite the block editor being hostile to wanting to type words in Markdown. I look at the plain text options of the world and wonder when it became so hard to turn text into slightly different looking text.

I don’t want to be a developer or install Docker and 15 tools. Hugo, Pelican, Jekyll are all needlessly complex ways to make blog posts out of words. There’s a reason WordPress powers the blogging web outside of walled social mediums.

I want to write words.
I want to style them with Markdown.
I want to add the occasion picture.
I want to publish those words with pictures.
WordPress makes that easy.

Downloading audio from Youtube using youtube-dl

I saw Mike over at Initial Charge link to Listenbox Turns YouTube Channels Into Podcasts. This is a neat idea and something I’ve been doing sparingly with longer-form Youtube content that is mainly audio.

However, I don’t need to pay a subscription for another thing in my life I’ll use on occasion. So I tweaked my Youtube-dl setup to pull audio from Youtube videos instead of the video itself.

First, I have to thank Jason for his youtube-dl setup which I replicated in a container on my server at home. He’s updated his configuration to support M1 Macs and some fancy iPhone shortcuts.

I have mine running on Ubuntu sitting in a container in proxmox in my office.

I’ve created a small shell script called music.sh. The contents are below, which I’ll explain.

# YTDL-Music Playlist - Audio Only - Goes to Music folder
/usr/local/bin/youtube-dl \
--extract-audio  --audio-format mp3  --embed-thumbnail --ignore-errors \
-o "/mnt/Youtube/Music/%(title)s.%(ext)s" \
--download-archive /var/www/video/music.txt \
https://www.youtube.com/playlist?list=PL9C818BCBDA822A24

The first line is a comment reminding me of what this is and does.

/usr/local/bin/youtube-dl – The location where I have youtube-dl installed.

--extract-audio – Downloads only the audio and discards the video.

--audio-format mp3 – Sets the format to MP3 for compatability.

--embed-thumbnail – Embeds the thumbnail from the Youtube video. Sometimes useful, sometime not. But it’s nice to have some kind of artwork on the file.

--ignore-errors` – Skips errors like if a video is removed or not able to be downloaded for some reason.

-o "/mnt/Youtube/Music/%(title)s.%(ext)s" – The -o stands for output and tells youtube-dl where to save the file. In my case, I have it saved to my NAS mounted through NFS at /mnt/Youtube/Music.

The title and extension are pulled right from an example output. I don’t know what the lowercase s means. I just used it because the examples showed it.

--download-archive /var/www/video/music.txt – I write a log of everything I download so if I delete it after watching it, it doesn’t get pulled back down every single time. The file logs the youtube ID as opposed to the title or something human-readable but it’s better than nothing.

Finally, the URL links to the Youtube playlist where I want to download from. This makes triggering the downloads as simple as adding a file to that playlist and letting youtube-dl do the rest.

How does youtube-dl know to check the list for new videos? I have a cron job set to run the script every 10 minutes. So anything newly added to the playlist will get downloaded.

*/10 * * * * sh /var/www/video/music.sh

Once I download the audio, it gets picked up by Plex. Plex is set to watch that folder and add new content it finds to the library as audio. So I can download music, podcasts uploaded to Youtube, or technical shows where the content is largely audio.

It works well other than the hiccups any self-hosted setup can run into and it costs my nothing additional since I’m already paid for the computer and pay for the electricity/internet anyway at home.