title: "for artists" description: "upload, manage, and distribute your music on ATProto"#
plyr.fm gives artists a place to share music where you own your data. every track you upload is an ATProto record stored in your personal data server — portable, verifiable, and yours.
uploading#
- sign in at plyr.fm with your Atmosphere account (Bluesky, BlackSky, etc.)
- click upload and drop your audio files
- add a title, tags, and optional cover art
- your track is live — stored in your PDS and indexed by plyr.fm
supported formats: MP3, WAV, FLAC, AAC, OGG.
embeds#
share your music anywhere with embed iframes. plyr.fm supports track, playlist, and album embeds.
track embed#
<iframe
src="https://plyr.fm/embed/track/{track_id}"
width="100%"
height="152"
frameborder="0"
allow="autoplay; encrypted-media"
loading="lazy"
></iframe>
playlist embed#
<iframe
src="https://plyr.fm/embed/playlist/{playlist_id}"
width="100%"
height="352"
frameborder="0"
allow="autoplay; encrypted-media"
loading="lazy"
></iframe>
oEmbed#
plyr.fm supports oEmbed for automatic embed discovery:
https://api.plyr.fm/oembed?url=https://plyr.fm/track/{track_id}
paste a plyr.fm track link into any oEmbed-compatible platform and it will render a player automatically.
supporter-gated tracks#
:::caution[experimental] this feature is early and has limitations — see below. :::
plyr.fm integrates with ATProtoFans to let artists gate tracks behind supporter status. when a listener tries to play a gated track, plyr.fm checks whether they support the artist — if they do, they get access; if not, the track is locked.
today this is a binary check: a listener either supports you or they don't. there are no tiers, amounts, or expiration windows — any active support relationship grants access to all your gated tracks.
how it works#
- upload a track and toggle supporter-gated in the track editor
- when a listener hits play, plyr.fm checks their support status via ATProtoFans
- supporters get access; everyone else sees a lock
what's next#
because ATProto doesn't yet have a permissioned data primitive, gated audio currently lives in plyr.fm-managed storage rather than on your PDS. this is the one exception to the "your music, your data" promise — and we want to fix it.
the ATProto team is exploring permissioned data through concepts like buckets — named containers with access control lists that could let private blobs live on your own PDS. once that ships, gated tracks could move back to artist-controlled storage while still enforcing access rules at the protocol level.
we'd also like to support more expressive gating — tiers, time-limited early access, per-track pricing — as the ecosystem matures.
your data#
because tracks are ATProto records, you can:
- export your entire catalog from your PDS at any time
- migrate to a different PDS without losing anything
your music lives in your repo under the fm.plyr.track collection. see the lexicons overview for the full schema.