We are thrilled to announce the public availability of Fairplayer for Faircamp, the first step in our vision of a #decentralized #music platform.

After a few months of building, and the generous help of artists who have participated in our trial period, https://fairplayer.band is open to the world. If you are an artist that has a #Faircamp site, or someone wanting to listen to music from independent artists, come and tell us what you think!

Special thanks to @radisolar @blankfosk @helenbellmusic @maciac @sofisoft @kidlightbulbs @aymanhamad @laribal @txels @james @Omar @choan who have already contributed their music in this very early stage!

Fairplayer

@fairplayer wow this looks amazing! Are you also working on Bandwagon support? cc @benpate

@liaizon @benpate

Hi! Thanks a lot!

We are not working on it specifically although we have them on the radar. Our idea is to work together with the decentralized musical ecosystem (some of it we are already in contact) towards standardized protocols.

We believe in cooperation rather than competition and we want to take special care on creator's consent.

@fairplayer @liaizon @benpate

there was talk of trying to do this on an @lorenzosmusic episode with @fluffy. yea working out some kind of open protocol seems key.

https://mastodon.social/@lorenzosmusic/115747719713086292

@wjmaggos @fairplayer @liaizon @benpate @lorenzosmusic Hello, yes! The referenced protocol spec is at https://github.com/PlaidWeb/Canimus and I know there’s interest from Simon Repp in adding it to Faircamp. I’ve got some prototype implementations of the protocol up on my own site https://sockpuppet.band/ as well as on https://songfight.org/
GitHub - PlaidWeb/Canimus: Federated music publishing protocol for decentralized streaming platforms

Federated music publishing protocol for decentralized streaming platforms - PlaidWeb/Canimus

GitHub
@fluffy thanks! Yes we are aware of this work! (I am one of the Fairplayer devs).
@txels Good to hear! I'd love to ensure that the spec is actually useful and easy to parse and use, so any feedback you have on it would be greatly appreciated.
@fluffy @wjmaggos @fairplayer @liaizon @benpate I didn't know about the song fight one, I like that concept πŸ˜€
@lorenzosmusic You should enter, we're always looking for new participants! And a new title cycle just started.
@fluffy I will! I'll take a look at it thanks πŸ˜€

@fluffy @wjmaggos @liaizon @benpate @lorenzosmusic

Thanks!

Some of our people were already aware of this protocol and take it into account πŸ˜ƒ.

@fluffy As with each of the many proposals for decentralized streaming popping up all around right now I'm definitely interested to understand, evaluate and discuss it eventually, but maybe let's not jump the gun here re. me adding it to faircamp, I've only had a first, brief glance at it in November. '^^ (https://post.lurk.org/@freebliss/115603679519233706)

@wjmaggos @fairplayer @liaizon @benpate @lorenzosmusic

Simon Repp (@freebliss@post.lurk.org)

@fluffy@plush.city coincidentally I ran into it just two days ago or so ;) (as well as https://beesbuzz.biz/blog/11155-A-fair-independent-streaming-platform). I will have another, closer look eventually, for the time being I'm unfortunately flooded with work. '^^

post.lurk.org

@freebliss @wjmaggos @fairplayer @liaizon @benpate @lorenzosmusic Fair! All I said was you’d expressed interest, not that you’d definitely be doing it. It does seem like Faircamp would be a good spot for something to emerge though, being a static site generator that a lot of people have gotten enamored with.

The main thing I care about is a static protocol that is discoverable. If something else catches on I’m happy to go with that instead.

@freebliss @wjmaggos @fairplayer @liaizon @benpate @lorenzosmusic Also I’ve been looking for an excuse to finally learn Rust and have been tempted to try implementing it for Faircamp myself, if that’s a thing you’d be willing to accept a patch for.
@fluffy In a few weeks from now (with the first 2.0 test build(s)) faircamp will officially expose its internal tree as a JSON file (on request via --export-tree flag), then you could easily implement this in a post-build hook even without having to touch rust! :) For direct integration (and potential PRs) I'd first like to take the time to properly evaluate and ponder this, but right now it's all about (the already packed agenda for) faircamp 2.0. :) Thanks for the offer though, I appreciate it!
@freebliss @fluffy ooh the JSON output and post-build hooks approach sounds like a great way to extend faircamp without taxing (you) the maintainer πŸ‘
@freebliss Nice! Hopefully this is functionality that will lead to even more incredible integrations.
@freebliss for the sake of implementation, since I don’t run faircamp myself could I get an example file to build a converter against?
@freebliss Oh also is there a way to inject added HTML into the page output? Being able to add a <link> tag to the page header is important to make it so that players/receivers know whether and where to look for the feed URL in the first place. Or would it just be best to have the tag be injected by the feed builder and then make sure that the thing always gets run on every page build?
@fluffy For a site-wide feed the https://simonrepp.com/faircamp/manual/catalog-catalog-eno.html#site_metadata and https://simonrepp.com/faircamp/manual/catalog-catalog-eno.html#site_assets options will do the trick. You can then basically run "faircamp --export-tree tree.json", generate the feed from the json and write it somewhere, and then do another regular build (both builds reference the feed file from site_assets/site_metadata, but it's up-to-date only for the second build that actually renders the page). Alternatively there will also be the possibility to do "faircamp --render-tree tree.json" as the second step, and the site_asset stuff can be injected into the tree.json before running that. :)
Catalog (catalog.eno)

Catalog (catalog.eno)

@freebliss awesome, thank you so much!

@fluffy here's one: https://fdpl.io/tree.json

Note that this is just whatever currently comes out of faircamp (I'm rather surprised anything came out just now :D). It will probably be a while until this stuff stabilizes even after 2.0 as well, we'll see what works and doesn't work about this, and adjust accordingly. :)