The John Curtain Hotel, the pub my friends and I use to go to as uni students, is up for sale. It was a pretty good pub at the time — the $10 parmas were fantastic — but I had no idea how much history it had with Australia’s labour movement. Here’s hoping that history could be preserved in some way.
Casey Newton published a great interview with the dev behind Web3 Is Going Just Great. The whole thing is worth a read, but she made this choice statement that I found especially apt:
In a lot of ways, people are also tying themselves to the technology in ways that I haven’t really seen before. You don’t see a lot of people pick a type of data model—say a linked list—and say “okay, how can I solve [x problem] with a linked list?” But that’s exactly what’s happening in web3
Exactly!
I’m wondering if the Apple Pencil would do well with a dedicated charging case. I only use my Pencil occasionally so I don’t keep it on the iPad, and when I do need it, it’s always flat. Having it on the desk, charged at say 50% to keep the battery healthy, would be nice.
Someone shared a great Q&A video with Seth Godin yesterday. I was hoping to listen to it at the gym but the video — which is hosted by Vimeo and embedded in a webpage — refused to play when the phone screen was off. Not sure if this is Vimeo, or just the web browser, but it’s a bit of a shame that this happens.
I’m converting it into an audio file and have uploaded it to Pocketcasts, so it’s not a huge issue.
This can be done relatively easily using youtube-dl with the -x
flag:
youtube-dl -x --audio-format=mp3 <url-of-webpage-containing-video>
Make sure to set the --audio-format
flag. I didn’t included it at first and it produced an M4A file which was around 100 MB, which I thought was a bit large. The MP3 file was half that, and it’s likely I could have reduced it further, but I figured that it was good enough.
My YouTube Watching Setup
I’m not a sophisticated YouTube watcher but I do watch a lot of YouTube. For a while I was happy enough to simply use the YouTube app with a Chromecast. Yes there were ads, but the experience was nice enough that I tolerated them.
Recently, however, this became untenable.
It started with Google deciding to replace their simple Chromecast target with a Google TV style app, complete with a list of video recommendations I had no interest in watching. This redesign also came with more ads, which themselves would be annoying enough. But with this year being an election year, I started seeing campaign ads from a political party I have absolutely zero interest in seeing ads from. Naturally Google being Google, there was no way for me to block them1. I guess I could have just paid to remove the ads, but this wouldn’t solve the Chromecast problem. Besides, the feeling of paying for something that is arguably not a great use of my time felt wrong. I felt that a bit of friction in my YouTube watching habits wouldn’t be a bad thing to introduce.
It was time to consider an alternative setup.
Plex
Taking inspiration from those on Micro.blog and certain podcasters, I decided to give Plex a go. I had an Intel Nuc that I purchased a few years ago that I wasn’t using and it seemed like a good enough machine for a Plex server. The Nuc is decent enough, but it’s a little loud and I didn’t want it anywhere where I usually spend my time. It’s currently in a wardrobe in my spare bedroom.
After upgrading it to Ubuntu 20.04 LTS, I installed the Plex Media Server. I had to create a Plex account, which was a little annoying, but after doing so, I was able to setup a new library for YouTube videos relatively easily. I configured the library to poll every hour, which would come in handy for the next part of this setup.
I also installed the Plex app on my Android phone to act as the media player. The app has support for Chromecast, which is my preferred setup. Getting the app to talk with the media server was a little fiddly. I can’t remember all the details as it was a couple of months ago, but I do remember it taking several times before the app was listing videos in the library. But once the link was established, it because quite easy to play downloaded videos on my TV. I’ll have more to say about the app near the end of the post.
Youtube-dl And Broadtail
Once Plex was setup, I needed a way to download the YouTube videos. I was hoping to use youtube-dl, but the idea of SSH’ing into the media server to do so was unappealing. I was also aware that it was possible to subscribe to YouTube channels via RSS, which is my preferred way to be notified of new content. I’m tend not to subscribe to channels within YouTube itself as I rather Google didn’t know too much about my viewing preferences (sorry YouTubers).
I figured having a small web-app which will run alongside Plex that would allow me to subscribe to YouTube RSS feeds, and download the videos using youtube-dl to the Plex library, would be ideal. I’m sure that such applications already exist, but I decided to build my own.
So I built a small Go web-app to do this. I called it Broadtail, mainly because I’m using bird-related terms for working project names and I couldn’t think of anything better. It’s pretty basic, and it is ugly as sin, but it does the job.

I can setup an RSS subscription to YouTube channels and playlists, which it will periodically poll and store in a small embedded database. I can get a list of videos for each feed I’ve subscribed to and if it looks interesting, I can start a download from the UI. The app will run the appropriate youtube-dl incantation and provide a running status update, with some really basic job controls.

The downloaded videos are saved as MP4s in a directory configured as a Plex library. The one hour scan will pick them up, although I occasionally need to trigger a rescan manually if the video was downloaded relatively recently. During the day, I look for any new videos which look interesting, and start downloads in Broadtail. The videos would (usually) be ready and available in Plex by evening. The only exception are videos which are 3 to 4 hours long, which usually take around a day to download thanks to YouTube’s throttling.
How It’s Working Out
Putting this together took roughly a month or so, and I’ve been using it for my YouTube viewing for a couple of months now. In general, it’s working OK. The Plex media server is working quite well, as is the Plex mobile app. Broadtail is pretty bare bones but I’ve been slowly making changes to it over time as my needs evolve.
There are a few annoyances though. One large one is that the Plex app for Android is a little buggy. It gets into a state in which it is unable to start playback of a video, and the only way I know of fixing this is by rebooting the Chromecast device. This is really annoying and it’s gotten to the point when I’m doing this almost daily. I contemplated actually setting the Chromecast up on a smart plug so that I can force a restart simply by killing power to it in the middle of the night. It hasn’t quite gotten to the point where I’ve done this, but if Plex doesn’t fix their app soon, I think I may go ahead with this.
Also annoying is that sometimes the Plex app will loose connection with the media server, and will not list the contents of my library. Fortunately a restart of the mobile app is enough to resolve this.
As for the Intel Nuc itself, there have been instances when it seems to lock up, and I had to hard power it down. I don’t know what’s causing this. It could be that either Plex or Broadtail is causing a kernel panic of sorts, or it could be something in the the Nuc itself: it’s reasonably low cost hardware that is tailored more for Windows. I may eventually replace the Nuc with the Mac Mini I’m currently using as a desktop, once it’s time to upgrade.
But all in all, I think this is working for me. Not seeing any ads or crappy recommendations is a major win, and it’s also nice to actually run out of things to watch, forcing me to do something productive. Sometimes question whether the time it took to set this all up was worth it. Maybe, maybe not. But it feels a little better having something a little more in my control, than simply paying YouTube to remove the ads.
Finally, if Broadtail sounds interesting to you, it’s available on GitHub. I’ve only recently open-sourced it, so there’s a lot of missing things like decent documentation (it only got a README today). So please consider it in a bit of a “here be dragons” state at the moment. But if you have any questions, feel free to contact me.
-
Hey Google, having a way to indicate zero interest in seeing ads from someone is signal of intent. Consider making this option available to us and you get more info for your user profiles. ↩︎
Apparently household solar panels are so prevalent in some states that it’s at risk of destabilising the grid. It’s a bit of a shame that this wasn’t foreseen by those responsible for the grid, and that energy storage systems weren’t considered to deal with the excess, instead of requiring a remote kill switch on the inverters.
I was entering a commit message in GitHub, when I was shown the following tip:
ProTip! Great commit summaries contain fewer than 50 characters. Place extra information in the extended description.
Maybe it’s just me but it would be nice if the message provided a link to a style guide explaining why great commit summaries have fewer than 50 characters. There must be a reason, since someone has gone to the trouble of coding up this message. Tell me what that reason is, and I’ll determine whether it’s a good enough style to adopt.
If there isn’t a reason, maybe it’s best not to bother me about this.
It may not have cooled down quite yet but with the days getting shorter, Autumn is feeling really close now. Time to break out the Hot Cross Buns again.
Reminder That Your Content Isn't Really Yours on Medium #3
Looks like Medium has had a redesign recently, with recommended posts now being featured more prominently. Instead of appearing at the end of the post, they’re now in a right-hand sidebar, which doesn’t scroll, that is directly below the author of the post you’re reading.
And let me be clear: as far as I can tell, these are not recommendations from the same author. They can be from anyone, covering any topic that I can only assume Medium algorithmically thinks you’d be interested in. It reminds me a lot of the anxiety supplier that is Twitter Trending Topics.
Thank goodness. Here I was, reading someone’s post on UI design, without being made aware of, or being constantly reminded of whenever I move my eyes slightly to the right, of another post by a different author informing me that NFTs have been superseded by “Super NFTs”. Thank you for that, Medium. My reading experience has been dramatically improved! (Sarcasm test complete)
Honestly, I’m still wondering why people choose to use Medium for publishing long-form writing. And yes, I acknowledge that it could be worse: their “post” could just as easily been a Twitter thread1. But from this latest redesign, it seems to me that Medium is doing it’s best to close the reading experience gap between the two services.
-
Please don’t publish your long form writing as a Twitter thread. ↩︎
There’s nothing quite as deflationary as returning home from a holiday. After the drive and the unpacking, I always find myself having nothing to do until dinner time.
I wish I had more to say today, on this, our last day of our summer holiday. So in leau of a better post, here’s a photo of a wallaby I saw on my evening walk.

Played golf for the first time in roughly 9 years. I’m terrible at the game but got a little better near the end thanks to my sister’s excellent coaching. Will probably be another 9 years until I play again though.
A collection of useful writing tips for journalists, but I think would also be helpful for anyone else writing online.
Last year, when we were on our holiday in Phillip Island, my parents suggested that I do the Churchill Island walk. I added that as a reminer in my calendar and set the date to be roughly a year from then. Yesterday, the reminder showed up, and I can safely say that I marked it as done.
I’m starting to think that the 1x zoom on this Pixel 6 might be a bit too wide. I was scrolling through some photos I took this morning, hoping to post them here, but the subject is too hard to see. I may need to move to 2x or even 4x for future shots.
Reading buddy.

These signs were up around town today. We went to the usual places they have markets but there was nothing there: no stalls or anything. It’s only just now that I realised we may have looked at the wrong places.
Probably need more signs around those other market spots.

Had the opportunity to play Ticket To Ride, Europe today. It took a little while to get my head around the rules, particuarily around how cards should be drawn, but it eventually clicked once we started playing.
I’d recommend playing one or two rounds without stations first, just so that the core mechanics of the game could be practiced without too many moving parts.
I tried walking around with a notebook yesterday to… you know… be the type of person that carries a notebook. First attempt did not go well: got in the way of my phone a fair bit. I might try carrying it in my other pocket with my keys.
I used the BBEdit diffing tool for the first time today, and I must say that it’s actually quite good. Shame I didn’t try it sooner. It would have saved me a couple of hours trying to debug the CI/CD problem I’m trying to fix.