CLI tool for archiving DLN mp3 files

Shameless self-plug. I wrote a tiny CLI application for downloading audio versions of DLN podcasts, figured I’d share it since it was useful for me and could be useful for someone else. Requires python to be installed. This is mostly if you like to listen locally or would like to archive episodes. Enjoy!

If you have any ideas or requests, drop me a message here or on gitlab. Thanks!


Just reading it over, this is very cool. Quite a feature list… must see to appreciate.

  dln-downloader debug
  dln-downloader -h | --help
  dln-downloader --version
  dln-downloader --show-names
  dln-downloader --soft-link
  dln-downloader download-all [-l | --latest] [-a | --all] [--latest-range LATEST_RANGE] [--descending] [debug]
  dln-downloader download SHOW_NAME [-l | --latest] [-a | --all] [--latest-range LATEST_RANGE] [-e EPISODE_NUMBER | --episode EPISODE_NUMBER] [-r EPISODE_RANGE | --range EPISODE_RANGE] [--descending] [debug]

  -h, --help                                   Show this screen
  --version                                    Show version
  --show-names                                 Display show names
  --soft-link                                  A flag that allows the user to create a soft link to the Podcasts directory in their home folder
  -l, --latest                                 A flag for getting the latest episode of a given podcast or all podcasts e.g. dln-downloader download dlnx -l
  --latest-range LATEST_RANGE                  A flag for getting the latest episode(s) of a given podcast where LATEST_RANGE is a number e.g. dln-downloader download-all --latest-range 3
  -a, --all                                    A flag for getting all episodes of a given show, default False
  -e EPISODE_NUMBER, --episode EPISODE_NUMBER  A flag for setting a specific episode number to download, default None
  -r EPISODE_RANGE, --range EPISODE_RANGE      A flag for downloading a range of episodes where EPISODE_RANGE is a number X..Y e.g. dln-downloader download ans -r 200..205
  --descending                                 A flag for setting the order in which podcasts are downloaded, default False (episodes are downloaded in the order they were released)
  -v                                           A flag to set verbosity to gather more information/logging, default False
  --vv                                         A flag to set double verbosity to gather more information/logging, default False

Amazing work. I think the only thing missing is that I don’t see an option to wash the dishes in my kitchen sink – but everything else seems to be covered. LOL.

I wrote bash scripts that poll the episodes on a daily basis and pull the new shows – all running from a cron entry. I echo the challenges associated with the lack of uniformity in episode names.

Well done!

FWIW Reasons I like to have the episodes locally

  • Post processing. I squeeze addition volume from the audio as I often listen in a loud work environment – plus the fact that my ears aren’t 18 anymore.

  • Episode naming. I am so anal about having all of my podcasts in

    • Show-Name_Episode-Number_Title.
  • Security. I aggregate all of my podcasts anonymously.

Thanks! I appreciate the praise. If you or anyone else notices anything, please let me know so I can add it or get it fixed. I think Michael from DLN said he was working on fixing the rest of the consistency issues, but I had trouble keeping his attention so I don’t know if he finished and I haven’t gone to look yet. I figured I would at least put this out so it can be used by someone other than me. I actually use this with cron to get the episodes for the week, usually have it run on Thursday evenings. Works pretty well.
Have a good one and enjoy!