107 lines
2.7 KiB
JSON
107 lines
2.7 KiB
JSON
{
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"$id": "genre_db",
|
|
"title": "Spotify genre tree",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "genre"
|
|
},
|
|
"definitions": {
|
|
"genre": {
|
|
"$id": "genre",
|
|
"description": "Spotify genre",
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"description": "Genre ID",
|
|
"type": "string",
|
|
"pattern": "^[a-z0-9\\-+: '&]+$"
|
|
},
|
|
"name": {
|
|
"description": "Genre name",
|
|
"type": "string"
|
|
},
|
|
"language": {
|
|
"description": "ISO-639-3 language code if the genre implies lyrics in a specific language",
|
|
"type": ["string", "null"],
|
|
"pattern": "^[a-z]{3}$"
|
|
},
|
|
"country": {
|
|
"description": "ISO-3166-1 country code if the genre is dominant in a specific country",
|
|
"type": ["string", "null"],
|
|
"pattern": "^[A-Z]{2}$"
|
|
},
|
|
"region": {
|
|
"description": "Region code if the genre is dominant in a specific region\nRegion codes are not standardized, refer to the documentation for a definition.",
|
|
"type": "string",
|
|
"enum": [
|
|
"AF",
|
|
"BK",
|
|
"BT",
|
|
"CA",
|
|
"CE",
|
|
"CB",
|
|
"CC",
|
|
"CG",
|
|
"CK",
|
|
"CS",
|
|
"DH",
|
|
"DS",
|
|
"EE",
|
|
"EU",
|
|
"HW",
|
|
"LA",
|
|
"ME",
|
|
"ND",
|
|
"NF",
|
|
"OZ",
|
|
"SA",
|
|
"SE",
|
|
"SC",
|
|
"WF"
|
|
]
|
|
},
|
|
"rank": {
|
|
"description": "Position in the popularity ranking (1: most popular)",
|
|
"type": "number",
|
|
"minimum": 1
|
|
},
|
|
"playlists": {
|
|
"description": "Spotify playlist IDs",
|
|
"propertyNames": {
|
|
"description": "Playlist kind",
|
|
"type": "string",
|
|
"enum": [
|
|
"sound",
|
|
"intro",
|
|
"pulse",
|
|
"edge",
|
|
"2018",
|
|
"2019",
|
|
"2020",
|
|
"2021",
|
|
"2022",
|
|
"2023"
|
|
]
|
|
},
|
|
"additionalProperties": {
|
|
"description": "Spotify playlist ID",
|
|
"type": "string",
|
|
"pattern": "^[A-z0-9]{22}$"
|
|
}
|
|
},
|
|
"metagenre": {
|
|
"description": "True if the genre is a metagenre\nMetagenres do not exist at Spotify but are used to group other genres together.",
|
|
"type": "boolean"
|
|
},
|
|
"children": {
|
|
"description": "List of subgenres",
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "genre"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|