0.2.0 • Published 11 years ago
spotify-crawler v0.2.0
spotify-crawler

Returns pricing data for all available Spotify countries
Crawls the list of countries where Spotify is available. Fetches the listed premium price for each country and finally converts the price into USD.
Thanks to restcoutries.eu and Open Exchange Rates.
Installation
$ npm install spotify-crawlerUsage
Methods:
fetch- returnsarraywith all the countries.getCatalogSize- takes the two-letter country code, returnsnumberof total tracks.
Example:
var spotify = require('spotify-crawler');
spotify.fetch()
.then(saveCountries)
.catch(console.log);
function saveCountries(countries){
console.log('Inserting {0} countries in DB'.format(countries.length));
var save = Country.create(countries);
}Output
The country object consists of:
link- Spotify hreftitle- the country title, localized version(Österreich)originalRel- the rel directly from Spotifyrel- stripped theoriginalRelof the language(be-fr)currency- the currency code from restcoutries.eu, but corrected for the countries that doesn't display price in their own currency on the website.originalCurrency- the raw currency code from restcoutries.eu.countryCode- thealpha3Codefrom restcoutries.eu.internationalName- the international name from restcoutries.eu.region- the region from restcoutries.eu.subRegion- the subregion from restcoutries.eu.demonym- the demonym from restcoutries.eu.originalPrice- the whole text from the HTML elementprice- strip all text fromoriginalPriceconvertedPrice- local price converted into USD with rate from Open Exchange RatescatalogSize- amount of tracks available in the country
Output data example for a single country:
{
"link": "/au/",
"title": "Australia",
"originalRel": "au",
"rel": "au",
"currency": "AUD",
"originalCurrency": "AUD",
"countryCode": "AUS",
"internationalName": "Australia",
"region": "Oceania",
"subRegion": "Australia and New Zealand",
"demonym": "Australian",
"originalPrice": "$11.99 per month",
"price": "11.99",
"convertedPrice": 11.25280616267109,
"catalogSize": 30695608
}todo
- Multiple methods
- getCountries
- getRawPrices
- etc.
- Split up index.js into modules
- Tests
- CLI support
- Supply own
app_idfor Open Exchange Rates