# dev.openplaylist.playlist

> Published by [openplaylist.dev](https://lexicon.garden/identity/did:plc:giakgvcvljtnasoyluh3pf5a)

✓ This is the authoritative definition for this NSID.

## Description

A collaborative playlist. Holds metadata only; tracks are dev.openplaylist.playlistItem records that point back at this record with a strong reference, the same shape used by fm.teal.feed.social.playlist and app.rocksky.playlist.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:giakgvcvljtnasoyluh3pf5a/dev.openplaylist.playlist)
- [Documentation](https://lexicon.garden/lexicon/did:plc:giakgvcvljtnasoyluh3pf5a/dev.openplaylist.playlist/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:giakgvcvljtnasoyluh3pf5a/dev.openplaylist.playlist/examples)

## Definitions

### `dev.openplaylist.playlist`

**Type**: `record`

Record containing the playlist metadata.

**Key**: `tid`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `collaborators` | `array` | No | Declared collaborators, informational only. The hosting app decides who may add items. |
| `copiedFrom` | `ref` → `com.atproto.repo.strongRef` | No | The record this playlist was copied from, e.g. when an anonymous playlist is claimed into a signed-in user's repo. |
| `cover` | `blob` | No | Optional generated cover image for the playlist. |
| `createdAt` | `string` (datetime) | Yes | Client-declared timestamp when this playlist was created. |
| `createdBy` | `ref` → `dev.openplaylist.defs#contributor` | No | Who created the playlist. For playlists hosted in the Open Playlist app repo this carries the anonymous creator's display name. |
| `description` | `string` | No | Optional free-text description. |
| `mirrors` | `array` | No | Native service playlists that mirror this record. |
| `name` | `string` | Yes | Display name of the playlist. |
| `theme` | `string` | No | Presentation theme the creator chose. Readers that do not recognize a value render their default. Absent means cassette. |

## Raw Schema

```json
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Record containing the playlist metadata.",
      "key": "tid",
      "record": {
        "properties": {
          "collaborators": {
            "description": "Declared collaborators, informational only. The hosting app decides who may add items.",
            "items": {
              "format": "did",
              "type": "string"
            },
            "maxLength": 100,
            "type": "array"
          },
          "copiedFrom": {
            "description": "The record this playlist was copied from, e.g. when an anonymous playlist is claimed into a signed-in user's repo.",
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "cover": {
            "accept": [
              "image/png",
              "image/jpeg",
              "image/webp"
            ],
            "description": "Optional generated cover image for the playlist.",
            "maxSize": 1000000,
            "type": "blob"
          },
          "createdAt": {
            "description": "Client-declared timestamp when this playlist was created.",
            "format": "datetime",
            "type": "string"
          },
          "createdBy": {
            "description": "Who created the playlist. For playlists hosted in the Open Playlist app repo this carries the anonymous creator's display name.",
            "ref": "dev.openplaylist.defs#contributor",
            "type": "ref"
          },
          "description": {
            "description": "Optional free-text description.",
            "maxGraphemes": 300,
            "maxLength": 3000,
            "type": "string"
          },
          "mirrors": {
            "description": "Native service playlists that mirror this record.",
            "items": {
              "ref": "dev.openplaylist.defs#mirror",
              "type": "ref"
            },
            "maxLength": 10,
            "type": "array"
          },
          "name": {
            "description": "Display name of the playlist.",
            "maxGraphemes": 64,
            "maxLength": 640,
            "minLength": 1,
            "type": "string"
          },
          "theme": {
            "description": "Presentation theme the creator chose. Readers that do not recognize a value render their default. Absent means cassette.",
            "knownValues": [
              "cassette",
              "synthwave"
            ],
            "maxLength": 64,
            "type": "string"
          }
        },
        "required": [
          "name",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "description": "A collaborative playlist. Holds metadata only; tracks are dev.openplaylist.playlistItem records that point back at this record with a strong reference, the same shape used by fm.teal.feed.social.playlist and app.rocksky.playlist.",
  "id": "dev.openplaylist.playlist",
  "lexicon": 1
}
```
