Skip to content

glossary

plyr.fm-specific terms and ATProto concepts you’ll encounter in the docs. for the full protocol glossary, see atproto.com/guides/glossary.

an application-level service that indexes and serves data from across the ATProto network. plyr.fm acts as an AppView for audio — it reads track records from user PDSes and presents them as a streaming platform. Bluesky is the AppView for social networking.

a named group of records in a user’s data repo, identified by an NSID. plyr.fm uses collections like fm.plyr.track, fm.plyr.like, and fm.plyr.list. each collection holds records of a single type.

Decentralized Identifier. a persistent, globally unique identifier for an account (e.g. did:plc:abc123). unlike handles, DIDs don’t change when you switch PDS providers or update your domain. plyr.fm uses DIDs internally to identify artists and users.

see: atproto.com/specs/did

a human-readable identifier for an atproto account, formatted as a domain name (e.g. artist.bsky.social or yourname.com). sometimes called an internet handle. handles can change — DIDs are the stable identifier underneath.

a real-time event stream that broadcasts all record changes across the ATProto network. plyr.fm subscribes to Jetstream to detect tracks, likes, and other records created outside its own interface (e.g. from another ATProto client). see docs.bsky.app/blog/jetstream.

ATProto’s schema system for defining record types and API methods. each lexicon has an NSID and specifies the shape of a record type (required fields, types, constraints). plyr.fm’s lexicons define what a track, like, comment, etc. look like. see lexicons overview.

see: atproto.com/guides/lexicon

Namespace Identifier. a reverse-DNS-format string that uniquely identifies a lexicon, collection, or API method (e.g. fm.plyr.track). the namespace authority (fm.plyr) maps to the domain that controls the schema (plyr.fm).

plyr.fm’s namespaces are environment-aware: fm.plyr (production), fm.plyr.stg (staging), fm.plyr.dev (development).

Personal Data Server. the server that stores your ATProto data repo — your records, blobs (files), and identity information. when you upload a track on plyr.fm, the audio blob and track metadata record are stored on your PDS. you can self-host a PDS or use a provider like bsky.social.

see: atproto.com/guides/self-hosting

a bundle of OAuth scopes under a human-readable name. instead of seeing individual scope strings, users see something like “plyr.fm Audio Library”. plyr.fm defines fm.plyr.authFullApp to cover all required permissions.

a single data entry in a user’s repo, belonging to a collection. a track upload creates a record in the fm.plyr.track collection. records are JSON objects conforming to their lexicon schema. each record has a unique key (usually a TID).

Record Key. the identifier for a specific record within a collection. plyr.fm uses TIDs as rkeys for most records, and self for singleton records like profiles.

a reference to a specific version of a record, consisting of a URI (at://did/collection/rkey) and a CID (content hash). used when one record points to another — e.g. a like references the track it’s about.

Timestamp Identifier. a base32-encoded timestamp used as a record key. TIDs are generated client-side and sort chronologically. plyr.fm uses TIDs as rkeys for tracks, likes, comments, and lists.

an API authentication token generated at plyr.fm/portal. tokens have their own OAuth credentials and don’t expire when your browser session refreshes. used for scripts, bots, and integrations. see auth guide.

a shared listening room where multiple users control playback together in real time. one participant’s browser plays audio (the “output device”) while everyone else is a remote control. state syncs via WebSocket + Redis Streams.

semantic search powered by CLAP audio embeddings. instead of matching keywords, it understands descriptions like “rainy afternoon jazz” and finds tracks with similar audio characteristics. currently feature-flagged (vibe-search) — not available to all users.

the artist dashboard at plyr.fm/portal. manage your tracks, albums, playlists, developer tokens, and account settings.

tracks locked behind supporter status via ATProtoFans. listeners who support the artist get access; everyone else sees a lock. currently a binary check — any support relationship unlocks all gated tracks.