tangled
alpha
login
or
join now
teal.fm
/
teal
110
fork
atom
Your music, beautifully tracked. All yours. (coming soon)
teal.fm
teal-fm
atproto
110
fork
atom
overview
issues
pulls
pipelines
start on the getPlay / getPlays lexicon
mmatt.net
1 year ago
a1f697b4
cb515170
+225
2 changed files
expand all
collapse all
unified
split
packages
lexicons
real
fm.teal.alpha.getPlay.json
fm.teal.alpha.getPlays.json
+111
packages/lexicons/real/fm.teal.alpha.getPlay.json
···
1
1
+
{
2
2
+
"lexicon": 1,
3
3
+
"id": "fm.teal.alpha.getPlay",
4
4
+
"description": "This lexicon is in a not officially released state. It is subject to change. | Retrieves a play via an author DID and record key.",
5
5
+
"defs": {
6
6
+
"main": {
7
7
+
"type": "query",
8
8
+
"parameters": {
9
9
+
"type": "params",
10
10
+
"required": ["authorDID", "rkey"],
11
11
+
"properties": {
12
12
+
"authorDID": {
13
13
+
"type": "string",
14
14
+
"format": "at-identifier",
15
15
+
"description": "The author's DID for the play"
16
16
+
},
17
17
+
"rkey": {
18
18
+
"type": "string",
19
19
+
"description": "The record key of the play"
20
20
+
}
21
21
+
}
22
22
+
}
23
23
+
},
24
24
+
"output": {
25
25
+
"encoding": "application/json",
26
26
+
"schema": {
27
27
+
"type": "object",
28
28
+
"required": ["play"],
29
29
+
"properties": {
30
30
+
"play": {
31
31
+
"type": "ref",
32
32
+
"ref": "#result"
33
33
+
}
34
34
+
}
35
35
+
}
36
36
+
}
37
37
+
},
38
38
+
"result": {
39
39
+
"type": "object",
40
40
+
"required": ["trackName", "artistName"],
41
41
+
"properties": {
42
42
+
"trackName": {
43
43
+
"type": "string",
44
44
+
"minLength": 1,
45
45
+
"maxLength": 256,
46
46
+
"maxGraphemes": 2560,
47
47
+
"description": "The name of the track"
48
48
+
},
49
49
+
"trackMbId": {
50
50
+
"type": "string",
51
51
+
52
52
+
"description": "The Musicbrainz ID of the track"
53
53
+
},
54
54
+
"recordingMbId": {
55
55
+
"type": "string",
56
56
+
"description": "The Musicbrainz recording ID of the track"
57
57
+
},
58
58
+
"duration": {
59
59
+
"type": "integer",
60
60
+
"description": "The length of the track in seconds"
61
61
+
},
62
62
+
"artistName": {
63
63
+
"type": "string",
64
64
+
"minLength": 1,
65
65
+
"maxLength": 256,
66
66
+
"maxGraphemes": 2560,
67
67
+
"description": "The name of the artist"
68
68
+
},
69
69
+
"artistMbIds": {
70
70
+
"type": "array",
71
71
+
"items": {
72
72
+
"type": "string"
73
73
+
},
74
74
+
"description": "Array of Musicbrainz artist IDs"
75
75
+
},
76
76
+
"releaseName": {
77
77
+
"type": "string",
78
78
+
"maxLength": 256,
79
79
+
"maxGraphemes": 2560,
80
80
+
"description": "The name of the release/album"
81
81
+
},
82
82
+
"releaseMbId": {
83
83
+
"type": "string",
84
84
+
"description": "The Musicbrainz release ID"
85
85
+
},
86
86
+
"isrc": {
87
87
+
"type": "string",
88
88
+
"description": "The ISRC code associated with the recording"
89
89
+
},
90
90
+
"originUrl": {
91
91
+
"type": "string",
92
92
+
"description": "The URL associated with this track"
93
93
+
},
94
94
+
"musicServiceBaseDomain": {
95
95
+
"type": "string",
96
96
+
"description": "The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if not provided."
97
97
+
},
98
98
+
"submissionClientAgent": {
99
99
+
"type": "string",
100
100
+
"maxLength": 256,
101
101
+
"maxGraphemes": 2560,
102
102
+
"description": "A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b (Linux; Android 13; SM-A715F). Defaults to 'manual/unknown' if not provided."
103
103
+
},
104
104
+
"playedTime": {
105
105
+
"type": "string",
106
106
+
"format": "datetime",
107
107
+
"description": "The unix timestamp of when the track was played"
108
108
+
}
109
109
+
}
110
110
+
}
111
111
+
}
+114
packages/lexicons/real/fm.teal.alpha.getPlays.json
···
1
1
+
{
2
2
+
"lexicon": 1,
3
3
+
"id": "fm.teal.alpha.getPlays",
4
4
+
"description": "This lexicon is in a not officially released state. It is subject to change. | Retrieves multiple plays from the index or via an author's DID.",
5
5
+
"defs": {
6
6
+
"main": {
7
7
+
"type": "query",
8
8
+
"parameters": {
9
9
+
"type": "params",
10
10
+
"required": ["cursor"],
11
11
+
"properties": {
12
12
+
"authorDID": {
13
13
+
"type": "string",
14
14
+
"format": "at-identifier",
15
15
+
"description": "The author's DID for the play"
16
16
+
},
17
17
+
"cursor": {
18
18
+
"type": "string",
19
19
+
"description": "The cursor to start the query from"
20
20
+
}
21
21
+
}
22
22
+
}
23
23
+
},
24
24
+
"output": {
25
25
+
"encoding": "application/json",
26
26
+
"schema": {
27
27
+
"type": "object",
28
28
+
"required": ["play"],
29
29
+
"properties": {
30
30
+
"plays": {
31
31
+
"type": "array",
32
32
+
"items": {
33
33
+
"type": "ref",
34
34
+
"ref": "#result"
35
35
+
}
36
36
+
}
37
37
+
}
38
38
+
}
39
39
+
}
40
40
+
},
41
41
+
"result": {
42
42
+
"type": "object",
43
43
+
"required": ["trackName", "artistName"],
44
44
+
"properties": {
45
45
+
"trackName": {
46
46
+
"type": "string",
47
47
+
"minLength": 1,
48
48
+
"maxLength": 256,
49
49
+
"maxGraphemes": 2560,
50
50
+
"description": "The name of the track"
51
51
+
},
52
52
+
"trackMbId": {
53
53
+
"type": "string",
54
54
+
55
55
+
"description": "The Musicbrainz ID of the track"
56
56
+
},
57
57
+
"recordingMbId": {
58
58
+
"type": "string",
59
59
+
"description": "The Musicbrainz recording ID of the track"
60
60
+
},
61
61
+
"duration": {
62
62
+
"type": "integer",
63
63
+
"description": "The length of the track in seconds"
64
64
+
},
65
65
+
"artistName": {
66
66
+
"type": "string",
67
67
+
"minLength": 1,
68
68
+
"maxLength": 256,
69
69
+
"maxGraphemes": 2560,
70
70
+
"description": "The name of the artist"
71
71
+
},
72
72
+
"artistMbIds": {
73
73
+
"type": "array",
74
74
+
"items": {
75
75
+
"type": "string"
76
76
+
},
77
77
+
"description": "Array of Musicbrainz artist IDs"
78
78
+
},
79
79
+
"releaseName": {
80
80
+
"type": "string",
81
81
+
"maxLength": 256,
82
82
+
"maxGraphemes": 2560,
83
83
+
"description": "The name of the release/album"
84
84
+
},
85
85
+
"releaseMbId": {
86
86
+
"type": "string",
87
87
+
"description": "The Musicbrainz release ID"
88
88
+
},
89
89
+
"isrc": {
90
90
+
"type": "string",
91
91
+
"description": "The ISRC code associated with the recording"
92
92
+
},
93
93
+
"originUrl": {
94
94
+
"type": "string",
95
95
+
"description": "The URL associated with this track"
96
96
+
},
97
97
+
"musicServiceBaseDomain": {
98
98
+
"type": "string",
99
99
+
"description": "The base domain of the music service. e.g. music.apple.com, tidal.com, spotify.com. Defaults to 'local' if not provided."
100
100
+
},
101
101
+
"submissionClientAgent": {
102
102
+
"type": "string",
103
103
+
"maxLength": 256,
104
104
+
"maxGraphemes": 2560,
105
105
+
"description": "A user-agent style string specifying the user agent. e.g. tealtracker/0.0.1b (Linux; Android 13; SM-A715F). Defaults to 'manual/unknown' if not provided."
106
106
+
},
107
107
+
"playedTime": {
108
108
+
"type": "string",
109
109
+
"format": "datetime",
110
110
+
"description": "The unix timestamp of when the track was played"
111
111
+
}
112
112
+
}
113
113
+
}
114
114
+
}