forked from
rocksky.app/rocksky
A decentralized music tracking and discovery platform built on AT Protocol 馃幍
1{
2 "lexicon": 1,
3 "id": "app.rocksky.scrobble",
4 "defs": {
5 "main": {
6 "type": "record",
7 "description": "A declaration of a scrobble.",
8 "key": "tid",
9 "record": {
10 "type": "object",
11 "required": [
12 "title",
13 "artist",
14 "album",
15 "albumArtist",
16 "duration",
17 "createdAt"
18 ],
19 "properties": {
20 "title": {
21 "type": "string",
22 "description": "The title of the song.",
23 "minLength": 1,
24 "maxLength": 512
25 },
26 "artist": {
27 "type": "string",
28 "description": "The artist of the song.",
29 "minLength": 1,
30 "maxLength": 256
31 },
32 "artists": {
33 "type": "array",
34 "description": "The artists of the song with MusicBrainz IDs.",
35 "items": {
36 "type": "ref",
37 "ref": "app.rocksky.artist.defs#artistMbid"
38 }
39 },
40 "albumArtist": {
41 "type": "string",
42 "description": "The album artist of the song.",
43 "minLength": 1,
44 "maxLength": 256
45 },
46 "album": {
47 "type": "string",
48 "description": "The album of the song.",
49 "minLength": 1,
50 "maxLength": 256
51 },
52 "duration": {
53 "type": "integer",
54 "description": "The duration of the song in seconds.",
55 "minimum": 1
56 },
57 "trackNumber": {
58 "type": "integer",
59 "description": "The track number of the song in the album.",
60 "minimum": 1
61 },
62 "discNumber": {
63 "type": "integer",
64 "description": "The disc number of the song in the album.",
65 "minimum": 1
66 },
67 "releaseDate": {
68 "type": "string",
69 "description": "The release date of the song.",
70 "format": "datetime"
71 },
72 "year": {
73 "type": "integer",
74 "description": "The year the song was released."
75 },
76 "genre": {
77 "type": "string",
78 "description": "The genre of the song.",
79 "maxLength": 256
80 },
81 "tags": {
82 "type": "array",
83 "description": "The tags of the song.",
84 "items": {
85 "type": "string",
86 "minLength": 1,
87 "maxLength": 256
88 }
89 },
90 "composer": {
91 "type": "string",
92 "description": "The composer of the song.",
93 "maxLength": 256
94 },
95 "lyrics": {
96 "type": "string",
97 "description": "The lyrics of the song.",
98 "maxLength": 10000
99 },
100 "copyrightMessage": {
101 "type": "string",
102 "description": "The copyright message of the song.",
103 "maxLength": 256
104 },
105 "wiki": {
106 "type": "string",
107 "description": "Informations about the song",
108 "maxLength": 10000
109 },
110 "albumArt": {
111 "type": "blob",
112 "description": "The album art of the song.",
113 "accept": [
114 "image/png",
115 "image/jpeg"
116 ],
117 "maxSize": 2000000
118 },
119 "albumArtUrl": {
120 "type": "string",
121 "description": "The URL of the album art of the song.",
122 "format": "uri"
123 },
124 "youtubeLink": {
125 "type": "string",
126 "description": "The YouTube link of the song.",
127 "format": "uri"
128 },
129 "spotifyLink": {
130 "type": "string",
131 "description": "The Spotify link of the song.",
132 "format": "uri"
133 },
134 "tidalLink": {
135 "type": "string",
136 "description": "The Tidal link of the song.",
137 "format": "uri"
138 },
139 "appleMusicLink": {
140 "type": "string",
141 "description": "The Apple Music link of the song.",
142 "format": "uri"
143 },
144 "createdAt": {
145 "type": "string",
146 "description": "The date when the song was created.",
147 "format": "datetime"
148 },
149 "mbid": {
150 "type": "string",
151 "description": "The MusicBrainz ID of the song."
152 },
153 "label": {
154 "type": "string",
155 "description": "The label of the song.",
156 "maxLength": 256
157 }
158 }
159 }
160 }
161 }
162}