Sometimes, a download would abort for unknown reasons, leaving me with a corrupt file. I discovered that podcast feeds contain file lengths, so I wrote some code to compare the reported length of the file to the actual length of the file. What I quickly learned was, those numbers aren’t accurate. Some hosting websites add advertisements to their shows, so the length presented in the feed is the length of the file before the advertisement was added. Some feeds don’t include the length at all. And then I found multiple feeds that were being manually generated where every episode was listed as being the same length, which means people were literally lying. Animals!\n<\/ul>\nAlong the way I added a few neat features to Robcast. One, called “leech mode,” downloads every episode in a podcast’s feed — handy for archiving a a show’s entire run, or grabbing all the back episodes of a show you’ve just discovered. I did a couple of other neat things, but more often than not, most of the work I put into the thing was just to keep it working.<\/p>\n
Every few months I would get so fed up with the thing that I would search Google to look for alternatives. There were and are several available, but none of them seemed to do what I wanted them to do. Even the ones that worked didn’t seem to present things in a logical format.<\/p>\n
<\/p>\n
Last week I found a new one (to me) called Grover. I decided to check it out and all I can say it, whoever wrote this program thinks (or at least organizes things) like I do. New episodes are added to an “unplayed” folder and a default playlist. Podcast feeds are easy to add. Podcast refreshes can be scheduled. Frankly it does everything my script does but better, with a slick graphical interface to boot. <\/p>\n
The default version of Grover is free. The professional version, which includes additional features such as the ability to update feeds in the background, limit the number of episodes to keep (per feed), and the ability to sync subscriptions through OneDrive, costs $3. The program is available for Windows 10 and some other Microsoft operating systems (even the Xbox), which met my needs.<\/p>\n
Earlier this week I purchased Grover Pro and have been running both it and RobCast in parallel. Grover Pro hasn’t failed me yet, and in many (most?) ways works much better than the script I wrote. No more checking logs every morning to see if my script ran properly or not. No more messing with code each time someone decided to add a question mark to their show’s title. No more checking each show to see if it properly downloaded.<\/p>\n
This morning, I disabled the daily scheduled task that runs RobCast, and I couldn’t be happier. I never wanted to write my own podcatcher — I did so out of necessity. I’m not jealous that someone did it better than I could. I’m grateful.<\/p>\n","protected":false},"excerpt":{"rendered":"
When it comes to consuming media, there are two types of people: Streamers and Keepers. Streamers are people who consume media via streaming services and have no desire to retain copies of those things. Keepers are people who feel a need to keep a copy of the media they consume, be it in physical or digital format. Streamers are perfectly content to watch movies on Netflix and listen to music on Spotify and feel no sense of loss if or when, like dust in the wind, those things disappear from streaming services. Keepers are still buying physical media and continually… (read more)<\/a><\/p>\n","protected":false},"author":1,"featured_media":13145,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,22],"tags":[],"class_list":["post-13135","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-main","category-podcast"],"_links":{"self":[{"href":"https:\/\/www.robohara.com\/index.php?rest_route=\/wp\/v2\/posts\/13135","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.robohara.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.robohara.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.robohara.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.robohara.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=13135"}],"version-history":[{"count":13,"href":"https:\/\/www.robohara.com\/index.php?rest_route=\/wp\/v2\/posts\/13135\/revisions"}],"predecessor-version":[{"id":13151,"href":"https:\/\/www.robohara.com\/index.php?rest_route=\/wp\/v2\/posts\/13135\/revisions\/13151"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.robohara.com\/index.php?rest_route=\/wp\/v2\/media\/13145"}],"wp:attachment":[{"href":"https:\/\/www.robohara.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=13135"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.robohara.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=13135"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.robohara.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=13135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}