Need Help? Join our Development Server
Maple is a music library and organization tool. It allows you to upload your music library and watch it be organized into albums, artists, playlists, and more! You are given robust controls to play and organize your music. In the future, it will include optional social and stat-tracking features.
- Head to settings
- Upload your music library
- That's it!
Accounts give you access to social, and other online features! Want to know what your friends are listening to? Share your music to your discord server? Have access to a public API to get your recent listening history? All of that & More is unlocked when you make an account! No email required + free!.
Will my library be sent to anyone?
- No! Your library is completely managed on-device using the Origin Private File System (OPFS). If you enable developer controls in settings, you can interface with this OPFS in a rudimentary terminal-style environment!
Help! I have ___ Bug!
- You can report any bugs in the Issues tab here!
Please note, this site is still early in development. Many features/bugs are known and are actively being worked on. Check our discord here for more information.
How do the account features work?
- By creating an account, and logging in, you unlock the ability to share your currently playing music with a community webhook instance or your own personal webhook. You also can add friends, transfer your library to other devices, and more! All person to person transfers are peer2peer based.
What data is saved on the server?
- Your username, id, hashed & salted password*, pfp, and then friendship status with other users. More information may be stored temporarily, or for other features. Please see our Privacy Policy for more information.
*your plaintext password will NEVER be avalible to anyone, even those with access to our servers.
If you have any other questions, feel free to DM cattn.
on discord, or email me @ [email protected]
API Link: https://maple.kolf.pro:3000
Returns a user based on the given username.
Request Example:
const response = await fetch(`${this.SERVER}/public/get/user/${username}`, {
credentials: 'include',
method: 'GET'
});
const data = await response.json();
Response:
{
id: id,
username: username,
name?: name,
}
Returns a user based on the given id.
Request Example:
const response = await fetch(`${this.SERVER}/public/get/user/id/${id}`, {
method: 'GET'
});
const data = await response.json();
Response:
{
id: id,
username: username,
name?: name,
nowPlaying?: {
title: title,
artist: artist,
album: album
}
}
Returns a profile picture based on the given id.
Request Example:
const response = await fetch(`${this.SERVER}/public/get/pfp/${id}`, {
method: 'GET'
});
const data = await response;
Response:
File Object
Add a given user to your friends list by ID.
REQUIRED: Login Token
*
Request Example:
const response = await fetch(`${this.SERVER}/user/friends/add/${id}`, {
credentials: 'include',
method: 'POST'
});
const data = await response.json();
Response: 200
{ message: 'Request sent successfully' }
Response: 500
{ error: 'Error adding friend' }
Typically you can only get a login token by logging in on our site, however if you extract this cookie you can use it from another site to login.
Maple was inspired by various experiences, such as being on a plane without internet. While I had my music with me, I found local tools like Windows Media Player lacking. This project not only aims to solve that issue but also serves as a learning experience for me.
- Cattn
- Nailington