Rebooting Open Downloads (oDL)

Have you looked at Open Downloads (oDL) and considered using it, but were discouraged that no updates have been made in over 3 years? Now there's a fork of the project that brings fixes and improvements in hopes of greater adoption of this spec to foster open and transparent counting of downloads in the podcast community.


About 3 years ago, the Podsights team open-sourced how they counted podcast downloads. Calling the effort Open Downloads (oDL), they released the source code with the goal of coming together as a podcast community so that we all count podcast downloads the same way, openly and transparently.

Unfortunately, since the original release in August 2019, no updates were ever made and the oDL spec and codebase hasn't moved forward.

But... even though it hasn't been updated since its release, oDL does provide a great opportunity upon which to build an open, transparent, and uniform methodology for counting podcast downloads. Even though the IAB defines what should count as a podcast download, every platform has a different method of implementation, with no two providers coming up with exactly the same results. With oDL, there is an opportunity for the industry to remove that variance from the process, fostering trust of the data.

So, when it came to evaluating options for building the analytics pipeline for Growl, the technology platform I'm working on for building podcast products and services, I chose to start with oDL.

oDL Updated

It has now been over 2 years since I started working with the oDL source code, making fixes and improvements as needed to make it production-worthy for the analytics pipeline for Growl.

Recently, I've noticed there have been more inquiries and interest in the original oDL project. Seeing that there might be others in the community interested in adopting oDL, I've been working on merging my updates into a proper fork and making it available for others to see and use.

This fork is now available on Github:
https://github.com/growlfm/odl

With this fork, you'll find all the necessary updates to bring oDL up-to-date after three years of inactivity. This includes updating to Python 3.8, syncing with the latest version of the OPAWG user agent database, and bug fixes.

In addition, you'll find the following new functionality:

  • Add support for optional 'ip' attribute
    • If 'ip' is supplied, then the event is compared against the IP deny list (to prevent counting downloads coming from datacenters, such as AWS and Azure)
  • Support for Open Podcast Prefix Project (OP3) JSON as source events
  • Support for Docker, making it easier to run oDL either locally on a laptop or in production

If there is interest from the community, future improvements to be made include:

  • Updated IP deny list
  • Output individual download records (instead of summaries)
  • Additional output fields, such as 'listener_id', 'device', 'os'
  • Add support for calculating downloads hourly (but look at full 24 hour window to ensure no duplicates counted)