tangled
alpha
login
or
join now
teal.fm
/
teal
109
fork
atom
Your music, beautifully tracked. All yours. (coming soon)
teal.fm
teal-fm
atproto
109
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
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
{
2
+
"lexicon": 1,
3
+
"id": "fm.teal.alpha.getPlay",
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
+
"defs": {
6
+
"main": {
7
+
"type": "query",
8
+
"parameters": {
9
+
"type": "params",
10
+
"required": ["authorDID", "rkey"],
11
+
"properties": {
12
+
"authorDID": {
13
+
"type": "string",
14
+
"format": "at-identifier",
15
+
"description": "The author's DID for the play"
16
+
},
17
+
"rkey": {
18
+
"type": "string",
19
+
"description": "The record key of the play"
20
+
}
21
+
}
22
+
}
23
+
},
24
+
"output": {
25
+
"encoding": "application/json",
26
+
"schema": {
27
+
"type": "object",
28
+
"required": ["play"],
29
+
"properties": {
30
+
"play": {
31
+
"type": "ref",
32
+
"ref": "#result"
33
+
}
34
+
}
35
+
}
36
+
}
37
+
},
38
+
"result": {
39
+
"type": "object",
40
+
"required": ["trackName", "artistName"],
41
+
"properties": {
42
+
"trackName": {
43
+
"type": "string",
44
+
"minLength": 1,
45
+
"maxLength": 256,
46
+
"maxGraphemes": 2560,
47
+
"description": "The name of the track"
48
+
},
49
+
"trackMbId": {
50
+
"type": "string",
51
+
52
+
"description": "The Musicbrainz ID of the track"
53
+
},
54
+
"recordingMbId": {
55
+
"type": "string",
56
+
"description": "The Musicbrainz recording ID of the track"
57
+
},
58
+
"duration": {
59
+
"type": "integer",
60
+
"description": "The length of the track in seconds"
61
+
},
62
+
"artistName": {
63
+
"type": "string",
64
+
"minLength": 1,
65
+
"maxLength": 256,
66
+
"maxGraphemes": 2560,
67
+
"description": "The name of the artist"
68
+
},
69
+
"artistMbIds": {
70
+
"type": "array",
71
+
"items": {
72
+
"type": "string"
73
+
},
74
+
"description": "Array of Musicbrainz artist IDs"
75
+
},
76
+
"releaseName": {
77
+
"type": "string",
78
+
"maxLength": 256,
79
+
"maxGraphemes": 2560,
80
+
"description": "The name of the release/album"
81
+
},
82
+
"releaseMbId": {
83
+
"type": "string",
84
+
"description": "The Musicbrainz release ID"
85
+
},
86
+
"isrc": {
87
+
"type": "string",
88
+
"description": "The ISRC code associated with the recording"
89
+
},
90
+
"originUrl": {
91
+
"type": "string",
92
+
"description": "The URL associated with this track"
93
+
},
94
+
"musicServiceBaseDomain": {
95
+
"type": "string",
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
+
},
98
+
"submissionClientAgent": {
99
+
"type": "string",
100
+
"maxLength": 256,
101
+
"maxGraphemes": 2560,
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
+
},
104
+
"playedTime": {
105
+
"type": "string",
106
+
"format": "datetime",
107
+
"description": "The unix timestamp of when the track was played"
108
+
}
109
+
}
110
+
}
111
+
}
+114
packages/lexicons/real/fm.teal.alpha.getPlays.json
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
{
2
+
"lexicon": 1,
3
+
"id": "fm.teal.alpha.getPlays",
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
+
"defs": {
6
+
"main": {
7
+
"type": "query",
8
+
"parameters": {
9
+
"type": "params",
10
+
"required": ["cursor"],
11
+
"properties": {
12
+
"authorDID": {
13
+
"type": "string",
14
+
"format": "at-identifier",
15
+
"description": "The author's DID for the play"
16
+
},
17
+
"cursor": {
18
+
"type": "string",
19
+
"description": "The cursor to start the query from"
20
+
}
21
+
}
22
+
}
23
+
},
24
+
"output": {
25
+
"encoding": "application/json",
26
+
"schema": {
27
+
"type": "object",
28
+
"required": ["play"],
29
+
"properties": {
30
+
"plays": {
31
+
"type": "array",
32
+
"items": {
33
+
"type": "ref",
34
+
"ref": "#result"
35
+
}
36
+
}
37
+
}
38
+
}
39
+
}
40
+
},
41
+
"result": {
42
+
"type": "object",
43
+
"required": ["trackName", "artistName"],
44
+
"properties": {
45
+
"trackName": {
46
+
"type": "string",
47
+
"minLength": 1,
48
+
"maxLength": 256,
49
+
"maxGraphemes": 2560,
50
+
"description": "The name of the track"
51
+
},
52
+
"trackMbId": {
53
+
"type": "string",
54
+
55
+
"description": "The Musicbrainz ID of the track"
56
+
},
57
+
"recordingMbId": {
58
+
"type": "string",
59
+
"description": "The Musicbrainz recording ID of the track"
60
+
},
61
+
"duration": {
62
+
"type": "integer",
63
+
"description": "The length of the track in seconds"
64
+
},
65
+
"artistName": {
66
+
"type": "string",
67
+
"minLength": 1,
68
+
"maxLength": 256,
69
+
"maxGraphemes": 2560,
70
+
"description": "The name of the artist"
71
+
},
72
+
"artistMbIds": {
73
+
"type": "array",
74
+
"items": {
75
+
"type": "string"
76
+
},
77
+
"description": "Array of Musicbrainz artist IDs"
78
+
},
79
+
"releaseName": {
80
+
"type": "string",
81
+
"maxLength": 256,
82
+
"maxGraphemes": 2560,
83
+
"description": "The name of the release/album"
84
+
},
85
+
"releaseMbId": {
86
+
"type": "string",
87
+
"description": "The Musicbrainz release ID"
88
+
},
89
+
"isrc": {
90
+
"type": "string",
91
+
"description": "The ISRC code associated with the recording"
92
+
},
93
+
"originUrl": {
94
+
"type": "string",
95
+
"description": "The URL associated with this track"
96
+
},
97
+
"musicServiceBaseDomain": {
98
+
"type": "string",
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
+
},
101
+
"submissionClientAgent": {
102
+
"type": "string",
103
+
"maxLength": 256,
104
+
"maxGraphemes": 2560,
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
+
},
107
+
"playedTime": {
108
+
"type": "string",
109
+
"format": "datetime",
110
+
"description": "The unix timestamp of when the track was played"
111
+
}
112
+
}
113
+
}
114
+
}