Skip to content

Instantly share code, notes, and snippets.

@bretth18
Created July 13, 2022 21:43
Show Gist options
  • Save bretth18/df8358c840fa94946ec212f753e290dd to your computer and use it in GitHub Desktop.
Save bretth18/df8358c840fa94946ec212f753e290dd to your computer and use it in GitHub Desktop.
catalog-20220222 Metadata Schema
{
"$id": "http://catalog.works/schemas/2022022.json",
"type": "object",
"title": "catalog-20220222",
"description": "This schema defined version 20220222 of the Catalog Metadata Schema",
"required": [
"version",
"title",
"artist",
"duration",
"mimeType",
"losslessAudio",
"image",
"name",
"external_url",
"animation_url"
],
"properties": {
"version": {
"type": "string",
"description": "Calendar version of the schema so that consumers can correctly parse the json",
"const": "catalog-20220222"
},
"title": {
"type": "string",
"description": "The title of the track",
"examples": [
"Our Taproot"
]
},
"artist": {
"type": "string",
"description": "The artist who created the track",
"examples": [
"Omari Jazz"
]
},
"description": {
"type": "string",
"description": "An optional property for describing the track"
},
"duration": {
"type": "number",
"description": "Length of the audio file in seconds (must be > 1ms)"
},
"mimeType": {
"type": "string",
"description": "MimeType of the audio file. Only lossless formats (aif, wav, flac) are supported.",
"enum": [
"audio/x-aiff",
"audio/aiff",
"audio/wav",
"audio/x-wav",
"audio/flac"
],
"examples": [
"audio/aiff"
]
},
"trackNumber": {
"type": "integer",
"description": "The place which the track appears in its project (e.g. track 4 off an album)",
"minimum": 1,
"examples": [
1,
9,
null
]
},
"project": {
"type": [
"object",
null
],
"description": "Describes the body of work the record is a part of (e.g. an album, EP, or compilation)",
"required": [
"title"
],
"properties": {
"title": {
"type": "string",
"description": "The name of the project this record is on"
},
"artwork": {
"type": "object",
"description": "Artwork for the project (e.g. an album cover)",
"required": [
"uri",
"mimeType"
],
"properties": {
"uri": {
"type": "string",
"description": "The uri of the artwork (ipfs://<CID>)"
},
"mimeType": {
"type": "string",
"description": "The mime type of the artwork"
},
"nft": {
"type": "string",
"description": "The NFT of the artwork (caip19)"
}
}
},
"description": {
"type": "string",
"description": "The description of the project"
},
"type": {
"type": "string",
"description": "The type of the project",
"examples": [
"EP",
"LP",
"Compilation",
"Single",
"Other"
]
},
"originalReleaseDate": {
"type": "string",
"description": "The original release date of the project (DateTime ISO8601)",
"format": "date-time"
},
"recordLabel": {
"type": "string",
"description": "The record label of the project"
},
"publisher": {
"type": "string",
"description": "The publisher of the project"
},
"upc": {
"type": "string",
"description": "The UPC of the project"
}
}
},
"artwork": {
"type": "object",
"description": "The artwork of the track (album cover, track art, etc.)",
"required": [
"uri",
"mimeType"
],
"properties": {
"uri": {
"type": "string",
"description": "The uri of the artwork (ipfs://<CID>)"
},
"mimeType": {
"type": "string",
"description": "The mime type of the artwork"
},
"nft": {
"type": "string",
"description": "The NFT of the artwork (caip19)"
}
}
},
"visualizer": {
"type": [
"object",
null
],
"description": "The visualizer of the track",
"required": [
"uri",
"mimeType"
],
"properties": {
"uri": {
"type": "string",
"description": "The uri of the visualizer (ipfs://<CID>)"
},
"mimeType": {
"type": "string",
"description": "The mime type of the visualizer"
},
"nft": {
"type": "string",
"description": "The NFT of the visualizer (caip19)"
}
}
},
"genre": {
"type": "string",
"description": "The genre of the track",
"examples": [
"Electronic",
"Rock",
"Pop",
"Hip-Hop",
"Jazz",
"Funk",
"Classical",
"Other"
],
"maxLength": 50
},
"tags": {
"type": "array",
"description": "The tags of the track",
"items": {
"type": "string",
"description": "The tag of the track"
}
},
"lyrics": {
"type": [
"object",
null
],
"description": "The lyrics of the track",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"description": "The text of the lyrics"
},
"nft": {
"type": "string",
"description": "The NFT of the lyrics (caip19)"
}
}
},
"bpm": {
"type": "number",
"description": "The BPM of the track",
"minimum": 0
},
"key": {
"type": "string",
"description": "The key of the track",
"examples": [
"C",
"G#",
"6A",
"12B"
]
},
"license": {
"type": "string",
"description": "The license of the track",
"examples": [
"CC-BY-NC-SA",
"CC-BY-NC-ND",
"CC-BY-NC",
"CC-BY-SA",
"CC-BY-ND",
"CC-BY",
"CC0",
"PD",
"Other"
]
},
"isrc": {
"type": "string",
"description": "The ISRC of the track"
},
"locationCreated": {
"type": "string",
"description": "The location where the track was created"
},
"originalReleaseDate": {
"type": "string",
"description": "The original release date of the track (DateTime ISO8601)",
"format": "date-time"
},
"recordLabel": {
"type": "string",
"description": "The record label of the track"
},
"publisher": {
"type": "string",
"description": "The publisher of the track"
},
"credits": {
"type": [
"array",
null
],
"description": "The credits of the track",
"items": {
"type": "object",
"required": [
"name",
"collaboratorType"
],
"properties": {
"name": {
"type": "string",
"description": "The name of the credit"
},
"collaboratorType": {
"type": "string",
"description": "The type of the collaborator",
"examples": [
"Producer",
"Engineer",
"Composer",
"Arranger",
"Mixer",
"Other"
]
}
}
}
},
"losslessAudio": {
"type": "string",
"description": "The lossless audio URI of the track"
},
"image": {
"type": "string",
"description": "The image URI of the track"
},
"name": {
"type": "string",
"description": "The name of the track (<artist> - <title>)"
},
"external_url": {
"type": "string",
"description": "The external url of the track"
},
"animation_url": {
"type": "string",
"description": "The animation url of the track"
},
"attributes": {
"type": "object",
"description": "OpenSea NFT Metadata standard attribute tags",
"required": [
"artist"
],
"properties": {
"artist": {
"type": "string",
"description": "The artist of the track"
},
"project": {
"type": "string",
"description": "The project of the track"
},
"bpm": {
"type": "number",
"description": "The BPM of the track",
"minimum": 0
},
"key": {
"type": "string",
"description": "The key of the track",
"examples": [
"C",
"G#",
"6A",
"12B"
]
},
"genre": {
"type": "string",
"description": "The genre of the track",
"examples": [
"Electronic",
"Rock",
"Pop",
"Hip-Hop",
"Jazz",
"Funk",
"Classical",
"Other"
]
},
"recordLabel": {
"type": "string",
"description": "The record label of the track"
},
"license": {
"type": "string",
"description": "The license of the track",
"examples": [
"CC-BY-NC-SA",
"CC-BY-NC-ND",
"CC-BY-NC",
"CC-BY-SA",
"CC-BY-ND",
"CC-BY",
"CC0",
"PD",
"Other"
]
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment