maloja/README.md

84 lines
3.9 KiB
Markdown
Raw Normal View History

2018-11-27 18:31:52 +03:00
# Maloja
Simple self-hosted music scrobble database to create personal listening statistics. No recommendations, no social network, no nonsense.
2019-08-21 17:47:11 +03:00
You can check [my own Maloja page](https://maloja.krateng.ch) to see what it looks like.
2019-05-17 16:05:17 +03:00
## Why not Last.fm / Libre.fm / GNU FM?
2018-11-27 18:31:52 +03:00
2019-04-04 21:55:12 +03:00
Maloja is **self-hosted**. You will always be able to access your data in an easily-parseable format. Your library is not synced with any public or official music database, so you can **follow your own tagging schema** or even **group associated artists together** in your charts.
2018-11-27 18:31:52 +03:00
2019-04-04 21:55:12 +03:00
Maloja also gets **rid of all the extra stuff**: social networking, radios, recommendations, etc. It only keeps track of your listening history and lets you analyze it.
2018-11-27 18:31:52 +03:00
2019-04-04 21:55:12 +03:00
Maloja's database has one big advantage: It supports **multiple artists per track**. This means artists who are often just "featuring" in the track title get a place in your charts, and **collaborations between several artists finally get credited to all participants**. This allows you to get an actual idea of your artist preferences over time.
Also neat: You can use your **custom artist or track images**.
2018-11-27 18:31:52 +03:00
2019-02-17 18:27:55 +03:00
## Requirements
2018-12-06 15:36:42 +03:00
2019-09-28 06:20:01 +03:00
* Python 3
2019-11-25 04:32:59 +03:00
* Several Pip packages (automatically downloaded)
* If you'd like to display images, you will need API keys for [Last.fm](https://www.last.fm/api/account/create) and [Fanart.tv](https://fanart.tv/get-an-api-key/). These are free of charge!
2018-12-06 15:36:42 +03:00
2019-02-17 18:27:55 +03:00
## How to install
2019-12-10 15:53:05 +03:00
1) Download Maloja with the command `pip install malojaserver`. Make sure to use the correct python version (Use `pip3` if necessary). I've provided a simple .sh file to get Maloja going on an Alpine server (e.g. in Proxmox).
2019-02-17 18:27:55 +03:00
2019-11-25 04:32:59 +03:00
2) Start the server with
2019-03-24 15:45:59 +03:00
maloja start
2018-12-06 15:36:42 +03:00
2019-11-25 04:32:59 +03:00
3) (Recommended) Put your server behind a reverse proxy for SSL encryption.
2019-02-17 18:27:55 +03:00
## How to use
1) If you would like to import all your previous last.fm scrobbles, use [benfoxall's website](https://benjaminbenben.com/lastfm-to-csv/) ([GitHub page](https://github.com/benfoxall/lastfm-to-csv)). Use the command
2019-02-16 23:43:57 +03:00
2019-03-07 02:31:23 +03:00
maloja import *filename*
2019-03-24 15:45:59 +03:00
2019-03-07 02:31:23 +03:00
to import the downloaded file into Maloja.
2) You can interact with the server at any time with the commands
2019-03-24 15:45:59 +03:00
2019-03-07 02:31:23 +03:00
maloja stop
maloja restart
maloja start
2019-03-24 15:45:59 +03:00
2019-12-10 15:53:05 +03:00
3) Update Maloja with `pip install malojaserver --upgrade --no-cache-dir`
2019-11-25 04:32:59 +03:00
4) Various folders have `.info` files with more information on how to use their associated features.
2019-11-25 04:32:59 +03:00
5) If you'd like to implement anything on top of Maloja, visit `/api_explorer`.
2019-05-23 14:13:42 +03:00
## How to scrobble
### Native API
2019-06-25 17:50:09 +03:00
If you use Plex Web, Spotify, Bandcamp, Soundcloud or Youtube Music on Chromium, you can use the included extension (also available on the [Chrome Web Store](https://chrome.google.com/webstore/detail/maloja-scrobbler/cfnbifdmgbnaalphodcbandoopgbfeeh)). Make sure to enter the random key Maloja generates on first startup in the extension settings.
2019-06-24 19:15:24 +03:00
If you want to implement your own method of scrobbling, it's very simple: You only need one POST request to `/api/newscrobble` with the keys `artist`, `title` and `key` - either as form-data or json.
### Standard-compliant API
You can use any third-party scrobbler that supports the audioscrobbler (GNUFM) or the ListenBrainz protocol. This is still very experimental, but give it a try with these settings:
GNU FM |  
------ | ---------
Gnukebox URL | Your Maloja URL followed by `/api/s/audioscrobbler`
Username | Any name, doesn't matter
Password | Any of your API keys
ListenBrainz |  
------ | ---------
API URL | Your Maloja URL followed by `/api/s/listenbrainz`
Username | Any name, doesn't matter
Auth Token | Any of your API keys
2019-05-17 16:05:17 +03:00
These are tested with the Pano Scrobbler and the Simple Last.fm Scrobbler for Android. I'm thankful for any feedback whether other scrobblers work!
It is recommended to define a different API key for every scrobbler you use in `clients/authenticated_machines.tsv` in your Maloja folder.
2019-05-14 14:04:05 +03:00
### Manual
2019-05-17 16:05:17 +03:00
If you can't automatically scrobble your music, you can always do it manually on the `/manual` page of your Maloja server.