First things first, you should be listening to Cal Newport and reading his books too!
His recent episode on books and reading was lovely!1

If I remember right, he started doing the podcast, a couple of months after the pandemic broke out and the world shut down. And it felt very much at the time, like one of those friendly voices across the waves in some post apocalyptic movie.
It felt warm, personal and gave me something to do in those dark days.
Ergo, I have a strong connection to it and I began saving every episode, at around episode 10 or so.

Oh, and speaking of slow productivity, it’s amazing to see what Cal has fashioned the podcast into. A slow steady drumbeat of episodic growth has led to what he call the Cal Newport Empire, with media galore.

So, like I was saying, I’ve been downloading them ever since the beginning, because I’ve some sort of unnatural attachment to them. They’re the thing I want to listen to if I’m marooned on a desert island.2

And now that I have Huginn, the computer downloads it for me, in the folder I want, with the naming convention, I want.

Here’s the scenario that does it.

  1. It scrapes the website, once every twelve hours to check for a new episode, and grabs the url and title.

  2. It uses the url to download the episode to a folder.

  3. And at the same time, sends me a notification. The title tells me what’s new :)

I probably could use Huginn to rename and copy the file to where I want, but it runs from a Docker container and does not have access to the parent filesystem.
So this little Python script3 does it for me.

from pathlib import Path
import shutil

downloads_folder = Path('/path/to/downloaded/episode/directory/')
destination_folder = Path('/path/to/destination/directory/')

for audio_file in downloads_folder.iterdir():
    if audio_file.suffix == '.mp3':
        original_name = audio_file.stem
        original_name = original_name.split('-')[2:]
        episode_number, raw_file_name = f'CNPE{original_name[0]}', (' '.join(original_name[1:])).title()

        new_file_name = episode_number+ ' - ' +raw_file_name +audio_file.suffix

        shutil.move(downloads_folder/audio_file, destination_folder/new_file_name)

It looks for any mp3 files in the specified folder, renames them the way I want them named and then moves them to my packrat archive. Et voilà!

The scenario and scripts are here, if you want them.

Feedback on this post? Mail me at

P.S. Subscribe to my mailing list!
Forward these posts and letters to your friends and get them to subscribe!
P.P.S. Feed my insatiable reading habit.

  1. What else, do you expect a bookworm to tell ya? 😂 ↩︎

  2. with a stock of mp3 players and rechargable batteries ↩︎

  3. scheduled via crontab ↩︎