Your music, beautifully tracked. All yours. (coming soon) teal.fm
teal-fm atproto

start on the getPlay / getPlays lexicon

+225
+111
packages/lexicons/real/fm.teal.alpha.getPlay.json
··· 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
··· 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 + }