A music player that connects to your cloud/distributed storage.
1{
2 "lexicon": 1,
3 "id": "sh.diffuse.output.track",
4 "defs": {
5 "main": {
6 "type": "record",
7 "record": {
8 "type": "object",
9 "required": ["id", "uri"],
10 "properties": {
11 "id": { "type": "string" },
12 "createdAt": { "type": "string", "format": "datetime" },
13 "ephemeral": { "type": "boolean" },
14 "kind": {
15 "type": "string",
16 "enum": ["audiobook", "miscellaneous", "music", "placeholder", "podcast", "stream"]
17 },
18 "stats": {
19 "type": "ref",
20 "ref": "#stats"
21 },
22 "tags": {
23 "type": "ref",
24 "ref": "#tags"
25 },
26 "updatedAt": { "type": "string", "format": "datetime" },
27 "uri": {
28 "type": "string",
29 "description": "This is a 'semi-permanent' URI. Tracks are typically cached so you can't, for example, use an URL that expires in several hours."
30 }
31 }
32 }
33 },
34 "count": {
35 "type": "object",
36 "required": ["no"],
37 "properties": {
38 "no": { "type": "integer" },
39 "of": { "type": "integer" }
40 }
41 },
42 "stats": {
43 "type": "object",
44 "properties": {
45 "albumGain": { "type": "integer", "description": "Album gain in dB" },
46 "bitrate": { "type": "integer", "description": "Bits per second" },
47 "bitsPerSample": { "type": "integer", "description": "Bit depth" },
48 "codec": { "type": "string", "description": "Compression algorithm" },
49 "container": { "type": "string", "description": "Encoding format" },
50 "duration": { "type": "integer", "description": "Duration in milliseconds" },
51 "lossless": { "type": "boolean", "description": "Is track lossless" },
52 "numberOfChannels": { "type": "integer", "description": "Number of audio channels" },
53 "sampleRate": { "type": "integer", "description": "Samples per second" },
54 "trackGain": { "type": "integer", "description": "Track gain in dB" }
55 }
56 },
57 "tags": {
58 "type": "object",
59 "properties": {
60 "album": { "type": "string" },
61 "albumartist": { "type": "string" },
62 "albumartists": { "type": "array", "items": { "type": "string" } },
63 "albumartistsort": { "type": "string" },
64 "albumsort": { "type": "string" },
65 "arranger": { "type": "array", "items": { "type": "string" } },
66 "artist": { "type": "string" },
67 "artists": { "type": "array", "items": { "type": "string" } },
68 "artistsort": { "type": "string" },
69 "asin": { "type": "string" },
70 "averageLevel": { "type": "integer" },
71 "barcode": { "type": "string" },
72 "bpm": { "type": "integer" },
73 "catalognumbers": { "type": "array", "items": { "type": "string" } },
74 "compilation": { "type": "boolean" },
75 "composers": { "type": "array", "items": { "type": "string" } },
76 "composersort": { "type": "string" },
77 "conductors": { "type": "array", "items": { "type": "string" } },
78 "date": { "type": "string" },
79 "disc": {
80 "type": "ref",
81 "ref": "#count"
82 },
83 "djmixers": { "type": "array", "items": { "type": "string" } },
84 "engineers": { "type": "array", "items": { "type": "string" } },
85 "gapless": { "type": "boolean" },
86 "genres": { "type": "array", "items": { "type": "string" } },
87 "isrc": { "type": "array", "items": { "type": "string" } },
88 "labels": { "type": "array", "items": { "type": "string" } },
89 "lyricists": { "type": "array", "items": { "type": "string" } },
90 "media": { "type": "string" },
91 "mixers": { "type": "array", "items": { "type": "string" } },
92 "moods": { "type": "array", "items": { "type": "string" } },
93 "originaldate": { "type": "string" },
94 "originalyear": { "type": "integer" },
95 "peakLevel": { "type": "integer" },
96 "producers": { "type": "array", "items": { "type": "string" } },
97 "publishers": { "type": "array", "items": { "type": "string" } },
98 "releasecountry": { "type": "string" },
99 "releasedate": { "type": "string" },
100 "releasestatus": { "type": "string" },
101 "releasetypes": { "type": "array", "items": { "type": "string" } },
102 "remixers": { "type": "array", "items": { "type": "string" } },
103 "technicians": { "type": "array", "items": { "type": "string" } },
104 "title": { "type": "string" },
105 "titlesort": { "type": "string" },
106 "track": {
107 "type": "ref",
108 "ref": "#count"
109 },
110 "work": { "type": "string" },
111 "writers": { "type": "array", "items": { "type": "string" } },
112 "year": { "type": "integer" }
113 }
114 }
115 }
116}