Can you watch all the shows this year?

Calculating Total Streaming Content

TL;DR- No, unless you have an evil streaming lair

Image for post
Evil Streaming Lair. Photo by Michał Lis on Unsplash

A couple of weeks ago I estimated total available streaming content. It comes out to more than 20 years of continuous content.

I had to make a few assumptions to get to that number. Having come across another resource I thought I’d take another shot at this estimate.

The good people at The Movie Database provided me with an API to download some data to help with this project.

I began with a TV listing. You can get this here, even without an API. The listing is provided in a compressed json.gz file. You can open this with gzip.

with gzip.open(file_name, 'rt', encoding='utf-8') as zipfile:
json_data = [json.loads(line) for line in zipfile]

The result is a massive list of over 100k TV titles.

Image for post
All the TV!

These are worldwide TV shows, so I’m not interested in all of them. Also, I wanted to be responsible and not overuse resources for my project — so I ran the API with only the top titles.

Here’s a couple of interesting title IDs to work with

  • The Mandolorian: 82856
  • Cobra Kai: 77169
  • Game of Thrones: 1399

You can find more about using the API here. Your send request will look something like this.

https://api.themoviedb.org/3/tv/1399?api_key=####&language=en-US&append_to_response=watch%2Fproviders

Sending the request is relatively easy. My methodology was to first set up parameters and a base URL list. Note that each title is a separate URL

Url_list
['https://api.themoviedb.org/3/tv/82856',
'https://api.themoviedb.org/3/tv/44217',
'https://api.themoviedb.org/3/tv/75006',
'https://api.themoviedb.org/3/tv/71712',
'https://api.themoviedb.org/3/tv/77169']
param_dict = {'api_key': api_ky, 'language': 'en-US', 'append_to_response': 'watch/providers'}# send request to The Movie DBtv_data = []
for urls in url_list:
respon = requests.get(url = urls, params = param_dict)
txt = json.loads(respon.text)
tv_data.append(txt)

What Did I Find Out?

My Netflix estimate was surprisingly close. Amazon, Disney+, and HBO Max were probably a bit low. My Hulu estimate could be low but is harder to estimate as it doesn’t always have complete Seasons. For example, Coronation Street has 62 seasons, but only 2 are on Hulu. If Disney+ featured all 31 seasons of America’s Funniest Home Videos, that would be more than 10% of their total content in one show. (Current 9 seasons are on Disney+)

Image for post
Streaming Content Estimate

My new estimate is over 200,000 hours, or 23 years. Yikes, better prepare that evil streaming lair.

Best

Andrew

Resources

Some of my estimates were provided by company press releases. For the rest of the data, I used estimates and data from The Movie Database (TMDb) as the source.

Andrew has an analytics background with over 20 years of experience in various industries, working with world-leading brands.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store