audio streaming app plyr.fm

fix: use 'public blob storage' instead of 'our servers' (#763)

* fix: use "public blob storage" instead of "our servers"

- ToS: clarify audio is in public blob storage we control, can remove
for policy violations, ATProto records may persist but audio is ours
- TermsOverlay: same fix for consistency

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* update some language

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

authored by zzstoatzz.io

Claude Opus 4.5 and committed by
GitHub
3dc4f98a f13e2844

+28 -31
+2 -2
frontend/src/lib/components/TermsOverlay.svelte
··· 35 <ul> 36 <li> 37 <strong>your content:</strong> you own what you upload. audio files are stored 38 - on our servers; track metadata is written to your PDS. delete through {APP_NAME} 39 - and we remove it from our servers. 40 </li> 41 <li> 42 <strong>copyright:</strong> don't upload content you don't have rights to.
··· 35 <ul> 36 <li> 37 <strong>your content:</strong> you own what you upload. audio files are stored 38 + in public blob storage we control; track metadata is written to your PDS. delete 39 + through {APP_NAME} and we remove the audio from storage. 40 </li> 41 <li> 42 <strong>copyright:</strong> don't upload content you don't have rights to.
+26 -29
frontend/src/routes/terms/+page.svelte
··· 16 <p class="last-updated">last updated: january 19, 2026</p> 17 18 <p class="intro"> 19 - these terms govern your use of {APP_NAME}, a music streaming platform built on the 20 - AT Protocol. by using the service, you agree to these terms. 21 </p> 22 23 <section> 24 <h2>1. acceptance of terms</h2> 25 <p> 26 - by accessing or using {APP_NAME}, you agree to be bound by these terms. if you 27 - disagree with any part, you may not use the service. 28 </p> 29 </section> 30 31 <section> 32 <h2>2. accounts</h2> 33 <p> 34 - {APP_NAME} uses AT Protocol for authentication. your identity is your DID 35 - (decentralized identifier), not an account we control. we do not store passwords. 36 </p> 37 <p> 38 - we may terminate or suspend your access at any time, for any reason. termination 39 - removes your content from {APP_NAME} but does not affect your DID or data on your 40 - PDS—we don't control those. 41 </p> 42 </section> 43 44 <section> 45 <h2>3. content</h2> 46 <p> 47 - you retain ownership of content you upload. by uploading, you grant us a 48 - non-exclusive, worldwide, royalty-free license to use, reproduce, modify, and 49 - distribute your content as necessary to provide the service. 50 </p> 51 <p> 52 - you represent that you own or have the necessary rights to the content you upload, 53 - and that it does not infringe any third party's rights. 54 </p> 55 </section> 56 ··· 68 69 <section> 70 <h2>5. copyright & DMCA</h2> 71 - <p> 72 - we respond to valid DMCA takedown notices. our designated agent is: 73 - </p> 74 <address class="dmca-agent"> 75 Nathan Nowack<br /> 76 DMCA Registration: {data.dmcaRegistrationNumber}<br /> 77 Email: <a href="mailto:{data.dmcaEmail}">{data.dmcaEmail}</a> 78 </address> 79 <p> 80 - we terminate accounts of repeat infringers. 81 - </p> 82 - <p> 83 - <strong>AT Protocol limitation:</strong> audio files are stored on our servers 84 - and we can remove them at any time. track records on ATProto may be indexed 85 - elsewhere as metadata, but without the audio files they reference. 86 </p> 87 </section> 88 89 <section> 90 <h2>6. disclaimers</h2> 91 <p> 92 - the service is provided "as is" and "as available" without warranties of any kind. 93 - we do not guarantee uptime or that the service will be error-free. 94 </p> 95 <p> 96 - we are not liable for any indirect, incidental, special, or consequential damages 97 - resulting from your use of the service. 98 </p> 99 </section> 100 101 <section> 102 <h2>7. changes</h2> 103 <p> 104 - we may update these terms. material changes will be posted with notice. continued 105 - use after changes constitutes acceptance. 106 </p> 107 </section> 108
··· 16 <p class="last-updated">last updated: january 19, 2026</p> 17 18 <p class="intro"> 19 + these terms govern your use of {APP_NAME}, a music streaming platform built on the AT 20 + Protocol. by using the service, you agree to these terms. 21 </p> 22 23 <section> 24 <h2>1. acceptance of terms</h2> 25 <p> 26 + by accessing or using {APP_NAME}, you agree to be bound by these terms. if you disagree with 27 + any part, you may not use the service. 28 </p> 29 </section> 30 31 <section> 32 <h2>2. accounts</h2> 33 <p> 34 + {APP_NAME} uses AT Protocol for authentication. your identity is your DID (decentralized identifier), 35 + not an account we control. we do not store passwords. 36 </p> 37 <p> 38 + we may terminate or suspend your access at any time, for any reason. termination removes 39 + your content from {APP_NAME} but does not affect your DID or data on your PDS—we don't control 40 + those. 41 </p> 42 </section> 43 44 <section> 45 <h2>3. content</h2> 46 <p> 47 + you retain ownership of content you upload. by uploading, you grant us a non-exclusive, 48 + worldwide, royalty-free license to use, reproduce, modify, and distribute your content as 49 + necessary to provide the service. 50 </p> 51 <p> 52 + you represent that you own or have the necessary rights to the content you upload, and that 53 + it does not infringe any third party's rights. 54 </p> 55 </section> 56 ··· 68 69 <section> 70 <h2>5. copyright & DMCA</h2> 71 + <p>we respond to valid DMCA takedown notices. our designated agent is:</p> 72 <address class="dmca-agent"> 73 Nathan Nowack<br /> 74 DMCA Registration: {data.dmcaRegistrationNumber}<br /> 75 Email: <a href="mailto:{data.dmcaEmail}">{data.dmcaEmail}</a> 76 </address> 77 + <p>we terminate accounts of repeat infringers.</p> 78 <p> 79 + <strong>AT Protocol limitation:</strong> audio files are stored in public blob storage that {APP_NAME} 80 + controls and can remove at any time for policy violations. ATProto records referring to deleted 81 + audio files may persist in user personal data servers (which {APP_NAME} does not control), but 82 + {APP_NAME} will not provide access to violating or deleted content. 83 </p> 84 </section> 85 86 <section> 87 <h2>6. disclaimers</h2> 88 <p> 89 + the service is provided "as is" and "as available" without warranties of any kind. we do not 90 + guarantee uptime or that the service will be error-free. 91 </p> 92 <p> 93 + we are not liable for any indirect, incidental, special, or consequential damages resulting 94 + from your use of the service. 95 </p> 96 </section> 97 98 <section> 99 <h2>7. changes</h2> 100 <p> 101 + we may update these terms. material changes will be posted with notice. continued use after 102 + changes constitutes acceptance. 103 </p> 104 </section> 105