In early 2021, I had the great opportunity to volunteer in an effort to make the shiurim (Jewish classes) of Rav Aaron Lopiansky more accessible to the public. The project required organization, technology architecture, research, vendor relationships, and more. Here’s the story behind Shiurim.EshelPublications.com!
As of November 2022, the site houses the following:
And of course, the archive keeps growing!
My relationship to the website began after a very sad event – a close Rabbi and teacher of mine, Mattisyahu Rosenblum, passed away due to cancer in November of 2020. I had remained involved in my yeshiva (a Jewish religious school) after graduating, and given that COVID was in full swing at the time, I was asked to run a Zoom session for alumni, family, and friends, where each could give a brief eulogy for our beloved teacher. I was recording those eulogies in order to provide them to Rav Rosenblum’s family afterwards.
Unfortunately, during one particular eulogy, my internet went out. The Zoom meeting continued, but my recording was missing half of a eulogy. My internet had never gone out before or since – I had been working remotely that entire year, so I would have noticed! Because my recording was incomplete, I had to call the individual who had been speaking very emotionally about his teacher and ask him to do it over again, which I felt terrible about, but he was extremely gracious and agreed. After we were done, we started talking about why I was the one running the Zoom meeting and what else I knew how to do, and the subject eventually came up that Rav Lopiansky needed a new website.
Rav Rosenblum, the Rabbi that had passed away, had been a close student of Rav Lopiansky, and had digitized and listened to hundreds of hours of tapes of his classes in order to categorize them and post them online. At the time, the website was just a theme on top of a directory served up by Apache, see below. Now that he had passed away, there was an effort beginning to modernize the website, both to increase the listenership and make it more accessible, as well as to provide a memorial for Rav Rosenblum.
The first step was to download the original MP3’s and organize them. At this stage there were already over 5,000 MP3s and roughly 140GB worth of audio, but unfortunately many of these were duplicates. I wrote a script to look through them and clean them up – fixing filenames, mapping duplicate MP3s by file hash, and more. This process took about two weeks to finish, but we ended up with a well-organized list of MP3s that were in a folder structure that mapped to what we wanted on the website.
At this stage, I had to make some decisions about how I wanted to build the site. There were two major pieces of functionality to the site:
Because I would not be responsible for the day-to-day running of the site or the uploading of new lessons as they were recorded, it was important that the site be easy to use for the site administrators, and in addition, that the two bullet points above be managed in as close to the same workflow as possible.
My first effort was in trying to find a host for the audio, in addition to a podcast management service, and the two ended up being the same company, Blubrry. I had looked at a few other sites, such as Transistor – the problem we ran into with many of them is the 150GB of audio that would need to be uploaded initially. I actually ended up talking to the CEO of Transistor via their sales chat, and although he was super nice about it, unfortunately he was unable to accommodate the amount of audio we’d need to upload right from the beginning.
The runner-up was Anchor.fm, which is a product from Spotify. They are apparently free, and seemingly have no limits, although I would have to imagine that I would have hit some kind of limitation with the 150GB initial upload. That being said, the big selling point of Blubrry over Anchor is Blubrry’s WordPress plugin, PowerPress. I have used this free plugin in the past without Blubrry’s podcast management or hosting, which is a paid service, and found it easy and intuitive to use. I considered self-hosting the audio via Amazon S3 or a similar service, but Blubrry’s low cost ($100 for pro-hosting, $10 for each additional show, of which we have 10) came out to $200 a month for:
Finally, Blubrry’s integration with WordPress allowed us to create new lessons via standard WordPress posts, uploading an MP3 from within WordPress, and having it show up on the site. Alternatively, checking off a podcast category (still within WordPress) would add that MP3 to the podcast RSS feed, also handled by Blubrry. We could then submit those feeds to Audible, iTunes, Google Podcasts, and others, and they’d be automatically updated. Overall, the value proposition of Blubrry made it the winner, so we began working with them.
For web hosting, I chose Digital Ocean, because their $5/month droplet (which is just a VPS) was hard to beat. At least initially, we didn’t need much computational power, but I eventually used DO’s easy droplet resize tool to give us some more RAM, because 5,000 individual posts made the database quite large!
Sitting in front of the Digital Ocean web server is CloudFlare, specifically their free tier, which caches much of the site. This means that:
The next stage was to actually upload all of the initial audio. I used C# because it’s the language with which I’m most familiar on WordPress.org’s list of client API libraries. I first walked through the file system, which was already organized the way I needed, and created WordPress categories which mapped to the directory structure. Then, walking through each directory, when I came upon an MP3, I created a new WordPress post with the name of that MP3, and the categories corresponding to its folder name. I then used a combination of the WordPress API and the Blubrry FTP server to upload that MP3 and attach it to the WordPress post. In the end, I was able to upload all of the MP3s in just a handful of batches, taking roughly a week to sort out.
The main categories present on the website are under a top-level category that we named “Audio”. In addition, there is a second top-level category called “Podcasts”, under which we have subcategories that represent our podcasts. We can upload an MP3 and tag it under Audio for it to show up on the website, tag it with a podcast category for it to show up in a podcast feed, or both, which makes things much easier for the people running the website day-to-day.
We maintain an archive of all of the MP3s in this folder structure in case we ever need to move away from Blubrry, but overall, we’re very happy with their service.
At this point, the site was up and running in terms of having all of the necessary content, but unfortunately, it wasn’t so nice to look at. My design skills were extremely lacking, see an early screenshot of the site below:
We brought on Creative Web Services to work with us and develop the look and feel of the site, and over the next few weeks we ironed out what we were looking for, and we ended up with the beautiful site we have today. Check out our work – Shiurim.EshelPublications.com!