"{{datastore.data.user.current.nowPlaying.track.title}}" by {{datastore.data.user.current.nowPlaying.track.artist}} {{stream.newTimeProcessed}} / {{datastore.data.user.current.nowPlaying.track.length}}

Peer-to-peer streaming for the modern Web

A few features that make Peer.fm dope:

Real-time syncing

Every one of your open Peer.fm windows – anywhere in the world – will keep their players synced

Alternatively, you can choose to sync with any other user and listen in on their music

Web-based (exclusively, for now)

Your music collection travels with you

Open source

If Peer.fm were ever abandoned or shut down, the community could immediately rehost it

You won't get arrested

Learn more » (or just start using it now)

{{groupinvite.from}} has invited you to {{groupinvite.groupname}}!
{{message.author}}: {{message.text}} {{message.created}}
Name Listening To
{{member.username}} {{member.listeningTo}}
Title Artist Genre Year Length Last Played By Last Played Plays
{{track.title}} {{track.artist}} {{track.genre}} {{track.year}} {{track.length}} {{track.lastPlayedBy}} {{track.lastPlayed}} {{track.playCount}}
Your library is empty; what are you doing with your life?
Title Artist Genre Year Length Last Played By Last Played Plays
{{track.title}} {{track.artist}} {{track.genre}} {{track.year}} {{track.length}} {{track.lastPlayedBy}} {{track.lastPlayed}} {{track.playCount}}
Sorry mate, no results
Title Artist Genre Year Length
{{track.title}} {{track.artist}} {{track.genre}} {{track.year}} {{track.length}}
Name Listening To
{{member.username}} {{member.listeningTo}}
{{transfer.from.username}} has requested that you add "{{transfer.track.title}}" by {{transfer.track.artist}}!
Title Artist Genre Year Length
{{track.title}} {{track.artist}} {{track.genre}} {{track.year}} {{track.length}}
Name Listening To
{{member.username}} {{member.listeningTo}}
Title Artist Genre Year Length Last Played By Last Played Plays
{{track.title}} {{track.artist}} {{track.genre}} {{track.year}} {{track.length}} {{track.lastPlayedBy}} {{track.lastPlayed}} {{track.playCount}}

Frequently Asked Questions

Will I be sued for using this?


Holy shit, seriously?


Then how does this work?

As far as the streaming music, I'm essentially just grabbing existing content on YouTube based on metadata (titles, artists, etc.) from the Discogs database.

So the entire service is dependent on minor inefficiencies in YouTube's piracy-detection system?

Shhh... They probably don't hurt, but no, not necessarily; just don't be too selective about which version of a song you're after.

Cool. So why does Peer.fm vaguely resemble Windows 8?

Windows 8 introduced some interesting ideas and a nearly passable UX, but for the most part I just think the new Metro style / flat trend looks cool.

Also, I liked the idea of reimagining [redacted] – originally a Windows 95 desktop interface – as a Windows 8-ish modern Web application.

Speaking of the desktop, where are my native and mobile apps? When can I run this on my toaster?

Stay tuned; I have some ideas about that. If you really care, just shoot me an email and I'll let you know as soon as I have an update.

Who are you?

My alias online is buu700, but I most often go by Ryan Lester IRL. I'm a student at Carnegie Mellon, currently taking a few years off to work at SpaceX and do other stuff. In my free time, I contribute to w3sec.

I'd like to make a small inquiry of you / spam you / ask you out on a date / give you money / take you to court / send you a comment. How can I contact you?

Sure, no problem; just scroll to the bottom for my contact information.

I have nothing better to do with my life; how can I contribute to Peer.fm?

As mentioned on the home page, everything is developed in the open on GitHub; any extra hands would be brilliant. Email me or something before sending any pull requests, but please don't hesitate to log any bug reports or feature requests in the issues system.

If I should decide to contribute, what technical specifics regarding Peer.fm should I be aware of?

1. To manage all of our data, I'm using the fantastic real-time "serverless" data store Firebase (YC S11). As a consequence, aside from a set of Firebase validation rules, this is pure client-side engineering; grade-A JS hackers only.

2. Other than the Firebase SDK and the YouTube API, the major libraries and frameworks I'm using are: Google Closure, AngularJS, Sugar, and Bootstrap (they're all brilliant).

3. If you're used to traversing the DOM with jQuery, my Closure-based ClosureQuery may look a bit familiar.

What specifically could you use help with?

To preface, I'm open to any proposed contribution to the project. That being said:

1. Automated testing: Peer.fm currently has zero test coverage and I've no plans to write any myself in the near future; this could be a project for someone else to handle.

2. Artwork: I'm currently borrowing the Akonadi logo for the Peer.fm favicon (no special significance; KDE's just awesome).

3. User documentation: there is none at the moment.

By the way, this entire site has been automatically translated from English. If anything I've written sounds insane or makes no sense, that is probably why. To use Peer.fm in the original English, click here.


- or -
Taking longer than usual to load...