- Mesh is a free, Open Source program for streaming music.
- It contains personal radio functionality (like Pandora, Rdio, etc) as well as on-demand music streaming similar to other popular programs such as Grooveshark.
- All the music on Mesh is completely free, and there are no song, skip, or station limits at all.
Pull requests, bug reports, suggestions, and other forms of contribution or feedback are greatly appriciated.
With so many alternative music services, what makes Mesh so much better? I've compiled a list of pros and cons for Mesh below:
Pros | Cons |
---|---|
No Ads (not even banner ads) | Still in Alpha |
Supports many platforms | Unpolished interface |
Extensible/Hackable Code | Some servers require a Beta Key |
You can host your own Server | May be buggy in some instances |
Unlimited Skips | No Internet Explorer Compatibility |
No monthly limits/song caps | Currently only one developer |
27-36 Million Songs | Varying Quality (Usually HD) |
On-Demand Song Streaming | |
Free! | |
Extreme Customization |
Your either going to need to get a invite code for an existing server or host one yourself. Here's how to do the latter:
- Clone the project: Either run
git clone https://github.com/taconut/mesh
or Extract the zip manually. I personally reccomend the using git clone, since you can rungit pull
to update when there are changes. - Install Dependencies: Mesh also requires FFMPEG (and obviously Node.JS). Most online Node.JS services have these preinstalled, so you only need to worry about this if you're working on a local computer.
- Install NPM Modules: Run
npm install
and wait for all of Mesh's dependancies to install themselves into node_modules. Most errors should be pretty self-explanitory, but feel free to open an issue if something doesn't work right. I won't judge; I promise. - Rename buildoptions: Make a copy of buildoptions.sample.env called buildoptions.env. If you're working in a public environment and do not wish to store these options in a file, you can also inject them directly as environment variables.
- Add API Keys: Below, I've provided a list of places where you can get various API keys needed by Mesh.
- Setup a user database: For the time being, Mesh only supports mongo. There are plenty of free services for using Mongo databases.
- Setup an email service: For email recovery and verification to work, you're also going to need an email account. Gmail should suffice, but there are other options available if you need them. If you're using Gmail, you need to log into your Gmail account and enable support for legacy automated logins via this link.
- Add a Session Secret: Your going to need a value for SESSION_SECRET. Try to use something that people would have a relatively hard time guessing (so not "secret").
- Create an admin account: The first account you create will have admin privlages. Go to /user/signup to create your admin user. You can leave the "invite code" section blank since there are no invite codes yet .
- Add invite codes: Right now, invite codes are mandatory. You can add them by going to /admin/key/CODE. Additionally, you can supply a number of uses and expiry date. Refer to the Admin Reference Page for more information.
- Currently, Mesh retrieves most of its music from YouTube. However, I plan to supplement this with other sources in the near future.
- Mesh is heavily reliant on The Echonest to build a profile of your taste in music. In future versions of Mesh, more of this work will be done locally.
- I'm using Last.fm's API to retrieve the album art, since that seems to have by far the most amount of content available
- Chrome
- Firefox
- Safari*
- Android*
- iOS*
- Squeezebox*
- Windows**
- Mac**
- Linux**
*Currently in Development
**Planned