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.