Skip to content

My first ever attempt at web scraping and building an API in my last semester of college. Very bad code that hasn't been updated in years and is in need of a rewrite.

Notifications You must be signed in to change notification settings

tobocop2/MetalAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MetalAPI

A REST API for the Metal Archives(http://www.metal-archives.com/), the largest encyclopedic resource for heavy metal music.

This API allows you to have access to all of the data from the "Encyclopaedia Metallum" including every metal band, their releases, lineups and all metadata. We personally scraped the entire archives, so now all metalhead hackers or data enthusiasts can develop awesome things

Table of Contents

Endpoints

Bands

These endpoints all allow access to the bands in our database that we scraped from the Metal Archives. You can use each route as a different or more convenient method of querying all of our bands depending on your interests.

The base route for all band endpoints is /api/bands/

All

URL: /api/bands/all Retrieves all band ids, urls, and names from the Metal Archives currently in our database.

ID

URL: /api/bands/id/<band_id> Retrieves the band whose Metal Archives ID corresponds to band_id.

Name

URL: /api/bands/name/<band_name> Retrieves all bands whose name contains the string given in the route as band_name.

Country

URL: /api/bands/country/<country> Retrieves all bands from country.

Status

URL: /api/bands/status/<status> Retrieves all bands whose current activity status is status.

Lyrical Themes

URL: /api/bands/lyrical_themes/<theme> Retrieves all bands whose lyrical themes contain the string given in the route as theme.

Formation Year

URL: /api/bands/formation_year/<year> Retrieves all bands who were formed in year.

Label

URL: /api/bands/label/<current_label> Retrieves all bands who are currently signed to current_label.

Location

URL: /api/bands/location/<location> Retrieves all bands from location.

Genre

URL: /api/bands/genre/<genre> Retrieves all bands have a genre of genre.

Similar To

URL: /api/bands/similarto/<band_name> Retrieves all bands whose similar artists contain the band, band_name. This is extremely useful for finding relationships between bands.

Musicians

URL: /api/bands/musicians/<musician_name> Retrieves all bands that the given musician belongs to.

Releases

These endpoints all allow access to the releases(albums) in our database that we scraped from the Metal Archives. You can use each route as a different or more convenient method of querying all of our releases depending on your interests.

The base route for all release endpoints is /api/releases/

Release ID

URL: /api/releases/id/<release id> Retrieves all albums/releases corresponding to the Metal Archives ID of release_id.

Band ID

URL: /api/releases/band_id/<band id> Retrieves all albums/releases released by the band corresponding to band_id. This goes hand in hand with the band endpoints. We decided to separate them so the bands JSON was less nested.

Release name

URL: /api/releases/name/<release name> Retrieves all albums/releases whose name contains the string given in the route as release_name.

Lineups

URL: /api/lineups/<band_id>

This allows you to retrieve every distinct lineup for a given band, including live, current and complete lineups(everyone who has ever been in the band). To find out which musicians played on a given release, see the JSON returned from any release endpoint.

About

My first ever attempt at web scraping and building an API in my last semester of college. Very bad code that hasn't been updated in years and is in need of a rewrite.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages