audio streaming app
plyr.fm
1---
2title: plyr.fm docs
3description: documentation for plyr.fm — audio streaming on ATProto
4template: splash
5hero:
6 title: plyr.fm docs
7 tagline: audio streaming on ATProto
8 actions:
9 - text: get started
10 link: /local-development/setup/
11 icon: right-arrow
12 - text: contributing
13 link: /contributing/
14 variant: minimal
15---
16
17import Stats from '../../components/Stats.astro';
18import TrackSearch from '../../components/TrackSearch.astro';
19
20<div class="landing-section">
21 <h2>platform stats</h2>
22 <Stats />
23</div>
24
25<div class="landing-section">
26 <h2>try it — search tracks</h2>
27 <TrackSearch />
28</div>
29
30<div class="landing-section">
31 <h2>your music, your data</h2>
32 <p style="color: var(--sl-color-gray-2); font-size: 0.9rem; margin-bottom: 1rem;">
33 every track on plyr.fm is an ATProto record in the artist's personal data repo. here's what one looks like:
34 </p>
35 <div class="record-example">
36
37```json
38{
39 "$type": "fm.plyr.track",
40 "title": "late night drive",
41 "createdAt": "2026-02-14T03:22:00.000Z",
42 "audio": {
43 "$type": "blob",
44 "ref": { "$link": "bafkrei..." },
45 "mimeType": "audio/mpeg",
46 "size": 8420196
47 },
48 "tags": ["electronic", "ambient"]
49}
50```
51
52 </div>
53 <p style="color: var(--sl-color-gray-3); font-size: 0.8rem; margin-top: 0.75rem;">
54 the API is public. build your own player, analytics, or recommendation engine — the data is open.
55 </p>
56</div>