Playlist Objects
A playlist file is a JSON object containing an array of track objects. Each track represents a piece of music that can be played across the decentralized web.
View live playlist example β
Inside A Playlist Object
Structure Overview
Every playlist contains these core elements:
Metadata: Name, description, genre, tags, creator info
Tracks Array: Collection of music tokens and files
Version Control: Tracking format changes over time
π Complete Playlist Object
// Example playlist object
{
"type": "Serverless-Playlist",
"name": "House Jams - Spinamp",
"tracks": [
{
"title": "I'm With The DJ",
"chain_name": "ethereum",
"platform": "sound",
"token_address": "0xF956b9B324ec32BFeC53cF4eEf33578371692658",
"token_id": "1",
"metadata": "{...stringified metadata object...}",
"id": "ethereum/0xF956b9B324ec32BFeC53cF4eEf33578371692658/1",
"uuid": "00537132-5b69-46ae-9789-e0dc7213f341",
"playlist_index": 1
},
...
],
"nextIndex": 6,
"description": "Originally created on Spinamp.xyz\nCreated by Eva Myra May",
"genre": "House",
"tags": ["spinamp", "eva myra may", "house"],
"image": "https://arweave.net/vMOPd7UKmBR20pItrgIFIb9RgU57poiP3eQqYokevE0",
"creator": "0x44b32db7c365d99ee8a5d5cc28875ad2008813e0",
"version": "0.3"
}
type
String
Always "Serverless-Playlist"
name
String
Playlist title
tracks
Array
Collection of track objects
nextIndex
Number
Next available track position
description
String
Playlist description
genre
String
Musical genre classification
tags
Array
Discovery and search tags
image
String
Playlist artwork URL
creator
String
Wallet address of creator
version
String
Metadata format version
π΅ Track Objects
Track Object Fields
Essential Fields:
metadata
- Stringified JSON containing audio links and track infotitle
- Track nameplaylist_index
- Position in playlistuuid
- Unique identifier for duplicate handling
Token Fields (when track is an NFT):
chain_name
- Blockchain networktoken_address
- Contract addresstoken_id
- Token identifierplatform
- Minting platformcontract_type
- Contract standard
Technical Fields:
id
- A unique identifier for each tracktoken_uri
- Metadata URLname
- Contract namesymbol
- Contract symbol
π Track Metadata Structure
The track can be a token or a file. The track's metadata is it's own object which is then stringified when put into the larger track object.
Adding A Token
It probably follows nft metadata standards (like opeasea). The most important thing is if the token has audio in it or not. The audio will be checked at the most standard field "animation_url" and then also "audio_url", "lossless_audio", "mp3_url", and "lossy_audio". If nothing is found in those fields in the stringified object in the metadata field then it won't show up in the player. The player only shows tokens that have something in those fields.
Adding A File
It won't follow any metadata standards. Tracks in playlists fall anywhere in the spectrum from undocumented file to thicc metadata, and it's when the file is added that it's formatted like metadata so everything all works. What happens is the raw file gets put into an object into the field "animation_url", to the same standards as an NFT metadata. But it's just a normal file with some extra info.
A file that's added to a playlist will have a json objected created when it's added.
If the track is a metadata file then it already has been prepared correctly and is then turned into a string and added to the metadata field.
Track metadata follows the ultimate bedrock of nft metadata standards the opensea metadata standards. That is where "animation_url" comes from, among other stuff.
The closer it is to thicc metadata the better.
Last updated