What’s the best streaming service in India for western music?

Entry type: Single project

Country/area: India

Publishing organisation: shijith.com (personal blog)

Organisation size: Small

Publication date: 2022-09-09

Language: English

Authors: Shijith Kunhitty


Shijith Kunhitty is an independent data journalist based in Kerala, India. He has previously worked at Hindustan Times, IndiaSpend and Financial Express.

Project description:

This is an analysis of how well streaming services in India cover western music.

To do this, I compiled lists of albums across several genres (Pop, Rock etc.) and found how many albums from these lists are on each service in India.

The lists cover albums considered the best of all time in a genre, and also acclaimed albums from the past 10 years. Based on how many albums were available, each service was rated out of 10.

Global services — Spotify, Apple Music, YouTube Music and Amazon Music — took the top spots. Of the Indian services, only JioSaavn performed decently.

Impact reached:

Not much to be honest. So this was a piece that combined consumer journalism with data journalism, and was first published on my personal blog, so it didn’t get much attention.

A modified version of the blog post was [later published](https://www.livemint.com/technology/tech-news/for-western-music-lovers-india-s-homegrown-apps-are-a-let-down-here-s-why-11665156172157.html) (paywall) in the Indian business newspaper _Mint_, but that didn’t get much attention either. Of the eight companies whose music streaming services I covered in the blog post, only one actually engaged with me and participated in the newspaper article.

The thing is there is a strong tradition of accountability journalism in India when it comes to elected officials and government decisions, but not when it comes to companies offering goods/services to consumers. So companies aren’t really that responsive to pieces of this nature, and mostly just ignore them.

What I’m trying to say is that it’s tough for such work to make an impact and encourage music streaming services to improve their coverage.

The fact is most companies operate in a pressure-free environment. They don’t really have that institutional drive to want to improve themselves by engaging with public criticism. It’s safer for them to let stories die away by not reacting and drawing attention to them. That’s pretty much what happens most of the time now.

Techniques/technologies used:

I wrote in python for the project, the code is available at this [github repo]((https://github.com/shijithpk/music-streaming-india)). I’ve tried to make the results as reproducible as possible, but because of the number of manual interventions I had to make, running the code may not deliver the results in my blog post, but should give something close to them.

So there were eight music streaming services being compared, including Spotify and Apple Music.

I first compiled lists of albums for each genre (Pop, Rock etc.) The lists cover albums considered the best of all time in a genre, and also acclaimed albums from the past 10 years. I perused various music guides and publications to come up with the lists. For example, for heavy metal, I used publications like _Metal Hammer_ and _Rolling Stone_.

These albums were then searched for, programatically and manually, on each service. Some services like Spotify make it easy for developers to interact with it by offering an external API you can sign up for and query for free.

For other services like Apple and Amazon, however, I had to mimic cURL requests to their internal APIs and scrape data from the json responses. This meant that for a cumulative list of over 3,000 albums, the code would have to run 2-3 days to scrape all the data in a way that’s considerate to their servers.

Having to programatically extract data from 8 different services with their varying APIs, request tolerances etc. was technically complex and gruelling, felt happy once I got it all figured out.

The code was run multiple times and parameters tweaked in different ways to make sure I found as many albums as possible.

Once the data’s scraped, it’s just a matter of running various calculations and computing the overall and genre-wise ratings.

Context about the project:

I’d mentioned this in my previous response, but I’ll get into it more here, the biggest problem I faced was access to data. The project was made needlessly more complex because the various music services didn’t offer APIs I could programatically query for free.

Spotify was the only music service that was developer friendly in that respect, with an easy sign-up and a very simple API.

Apple Music has an API, but you can only access it after enrolling in their developer program for $99 a year, which would’ve been prohibitively expensive for me. Other services don’t even bother to offer external-facing APIs.

I guess by mimicking browser requests to the internal API of a service and scraping data that way, my work might be in a legally gray area. But since I was scraping data in the consumer interest, I feel it is morally justifiable and have no issues defending it.

What can other journalists learn from this project?

I guess if there’s anything I’d want consumer journalists to learn from this project, it is to go beyond the surface details and dig deeper.

This isn’t the first comparison of music services in India. There have been others, but they have been restricted to comparing external specs like stream quality (eg. lossless or not), subscription costs (student discounts available?) and mobile app features.

This might be the first such work that programatically looks at the _content_ offered by these services and comparing them on that basis.

Such work could’ve been done earlier, but publications/websites in India don’t give people the time to code all this up. All the python code I’ve written is in the [public domain](https://github.com/shijithpk/music-streaming-india), so hopefully that makes it easier for others to do their own content comparisons.

For example, I’ve just focused on _western_ music here, but someone can easily use my code to compare music streaming services based on how well they cover music in different _Indian languages_ and make the work more India-relevant.

So in terms of learnings, hope consumer journalists get motivated by this work to take the time and compare products properly, and not just cobble something together based on external specs for a quick turnaround.

And I also hope they get inspired to use more code in their work. Manually searching on each service for over 3,000 different albums would’ve been a pain. Doing this with code is hard too, not going to deny that. But it makes the whole task a lot easier to replicate the next time I or someone else wants to attempt such a comparison.

Project links: