spotify-genres/schema/genre_tree.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"
}
}
}
}
}
}