audio streaming app plyr.fm
1--- 2title: "for artists" 3description: "upload, manage, and distribute your music on ATProto" 4--- 5 6plyr.fm gives artists a place to share music where **you own your data**. every track you upload is an [ATProto](https://atproto.com) record stored in your personal data server — portable, verifiable, and yours. 7 8## uploading 9 101. sign in at [plyr.fm](https://plyr.fm) with your [Atmosphere](https://atproto.com) account (Bluesky, BlackSky, etc.) 112. click **upload** and drop your audio files 123. add a title, tags, and optional cover art 134. your track is live — stored in your PDS and indexed by plyr.fm 14 15supported formats: MP3, WAV, FLAC, AAC, OGG. 16 17## embeds 18 19share your music anywhere with embed iframes. plyr.fm supports track, playlist, and album embeds. 20 21### track embed 22 23```html 24<iframe 25 src="https://plyr.fm/embed/track/{track_id}" 26 width="100%" 27 height="152" 28 frameborder="0" 29 allow="autoplay; encrypted-media" 30 loading="lazy" 31></iframe> 32``` 33 34### playlist embed 35 36```html 37<iframe 38 src="https://plyr.fm/embed/playlist/{playlist_id}" 39 width="100%" 40 height="352" 41 frameborder="0" 42 allow="autoplay; encrypted-media" 43 loading="lazy" 44></iframe> 45``` 46 47### oEmbed 48 49plyr.fm supports [oEmbed](https://oembed.com/) for automatic embed discovery: 50 51``` 52https://api.plyr.fm/oembed?url=https://plyr.fm/track/{track_id} 53``` 54 55paste a plyr.fm track link into any oEmbed-compatible platform and it will render a player automatically. 56 57## supporter-gated tracks 58 59:::caution[experimental] 60this feature is early and has limitations — see below. 61::: 62 63plyr.fm integrates with [ATProtoFans](https://atprotofans.com) 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. 64 65today 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. 66 67### how it works 68 691. upload a track and toggle **supporter-gated** in the track editor 702. when a listener hits play, plyr.fm checks their support status via ATProtoFans 713. supporters get access; everyone else sees a lock 72 73### what's next 74 75because 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. 76 77the ATProto team is [exploring permissioned data](https://dholms.leaflet.pub/3mfrsbcn2gk2a) 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. 78 79we'd also like to support more expressive gating — tiers, time-limited early access, per-track pricing — as the ecosystem matures. 80 81## your data 82 83because tracks are ATProto records, you can: 84 85- **[export](https://plyr.fm/portal)** your entire catalog from your PDS at any time 86- **migrate** to a different PDS without losing anything 87 88your music lives in your repo under the `fm.plyr.track` collection. see the [lexicons overview](/lexicons/overview/) for the full schema.