fm.teal.feed.play

lexicons.opensocial.fyi View official

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "key": "tid",
      "record": {
        "properties": {
          "artistMbIds": {
            "description": "DEPRECATED: USE 'artists' INSTEAD. Array of Musicbrainz artist IDs.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "artistNames": {
            "description": "DEPRECATED: USE 'artists' INSTEAD. Array of artist names in order of original appearance.",
            "items": {
              "maxGraphemes": 2560,
              "maxLength": 256,
              "minLength": 1,
              "type": "string"
            },
            "type": "array"
          },
          "artists": {
            "description": "Array of artists in order of original appearance.",
            "items": {
              "ref": "fm.teal.feed.defs#artist",
              "type": "ref"
            },
            "type": "array"
          },
          "duration": {
            "description": "The length of the track in seconds",
            "type": "integer"
          },
          "isrc": {
            "description": "The ISRC code associated with the recording",
            "type": "string"
          },
          "musicServiceUri": {
            "description": "The canonical URI identifying the listening surface or music service.",
            "format": "uri",
            "type": "string"
          },
          "originUri": {
            "description": "The exact URI where the listening event originated.",
            "format": "uri",
            "type": "string"
          },
          "playedTime": {
            "description": "The datetime at which playback began.",
            "format": "datetime",
            "type": "string"
          },
          "recordingMbId": {
            "description": "The MusicBrainz recording ID URI of the track, formatted as mbid:<uuid>",
            "format": "uri",
            "type": "string"
          },
          "releaseDiscriminant": {
            "description": "Distinguishing information for release variants (e.g. 'Deluxe Edition', 'Remastered', '2023 Remaster', 'Special Edition'). Used to differentiate between different versions of the same base release while maintaining grouping capabilities.",
            "maxGraphemes": 1280,
            "maxLength": 128,
            "type": "string"
          },
          "releaseMbId": {
            "description": "The MusicBrainz release ID URI, formatted as mbid:<uuid>",
            "format": "uri",
            "type": "string"
          },
          "releaseName": {
            "description": "The name of the release/album",
            "maxGraphemes": 2560,
            "maxLength": 256,
            "type": "string"
          },
          "submissionClientAgent": {
            "description": "A metadata string specifying the user agent where the format is `<app-identifier>/<version> (<kernel/OS-base>; <platform/OS-version>; <device-model>)`. If string is provided, only `app-identifier` and `version` are required. `app-identifier` is recommended to be in reverse dns format. Defaults to 'manual/unknown' if unavailable or not provided.",
            "maxGraphemes": 2560,
            "maxLength": 256,
            "type": "string"
          },
          "trackDiscriminant": {
            "description": "Distinguishing information for track variants (e.g. 'Acoustic Version', 'Live at Wembley', 'Radio Edit', 'Demo'). Used to differentiate between different versions of the same base track while maintaining grouping capabilities.",
            "maxGraphemes": 1280,
            "maxLength": 128,
            "type": "string"
          },
          "trackMbId": {
            "description": "The MusicBrainz ID URI of the track, formatted as mbid:<uuid>",
            "format": "uri",
            "type": "string"
          },
          "trackName": {
            "description": "The name of the track",
            "maxGraphemes": 2560,
            "maxLength": 256,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "trackName"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "This lexicon is in a not officially released state. It is subject to change. | A declaration of a teal.fm play. Plays are submitted as a result of a user listening to a track. Plays should be marked as tracked when a user has listened to the entire track if it's under 2 minutes long, or half of the track's duration up to 4 minutes, whichever is longest.",
  "id": "fm.teal.feed.play",
  "lexicon": 1
}

Validate Record

Validate a record against fm.teal.feed.play

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:2gqnilpksz2e7faj3bwvo6qc
CID
bafyreigqm2p2dftaihocdoxneyk7x6j5iijmahh2c7apug47zrhb6tdd3u
Indexed At
2026-09-23 23:24 UTC
AT-URI
at://did:plc:2gqnilpksz2e7faj3bwvo6qc/com.atproto.lexicon.schema/fm.teal.feed.play

Referenced Schemas (1)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • This lexicon is in a not officially released state. It is subject to change. | Misc. items related to feeds.

  • A Last.fm scrobble play record written by Linkname.

  • A music track record on FreeMix

  • A play of a track on a radio show

  • A music track record on FreeMix. Top-level leaf (FM-549 s38: pulled out from under the release.* prefix; release.track -> track).

Lexicon Garden

@