Simply add the following snippet to your Github profile readme (or anywhere else you'd like to embed your last.fm activity):
<img src="https://toru.kio.dev/api/v1/{your_lfm_username}" alt="Last.fm Activity" />
You can append ?res=json
to get a JSON response:
GET https://toru.kio.dev/api/v1/{your_lfm_username}?res=json
->
{
status: 200,
data: {
url: "https://last.fm/music/X",
title: "X",
streamable: false,
playing: true,
cover_art: {
mime_type: "image/png",
data: "X"
},
artist: "X",
album: "X"
}
}
You can also connect to the Websocket endpoint - recieved frames will be of the "data" field above. Minute-interval pings are required to stay connected.
wss://toru.kio.dev/api/v1/ws/{your_lfm_username}
Toru has a few parameters you can customize through query parameters:
The theme can be specified with theme=<str>
. Available themes are:
- dark/light
- shoji
- dracula
- nord
- solarized
- monokai
The border radius of the embed can be specified as an integer with border_radius
The border radius of the album art can be specified as an integer with cover_radius
A blurred background can be enabled using blur
:
The width of the borders can be specified (or removed by setting to '0') with border_width
:
You can alternativly specify a custom SVG asset with svg_url=<str>
. Toru will fill in the artist name, track title, album title, and cover art resource using the following template strings:
- Cover art ->
${cover_art}
(should be the 'src' attr, as it's sent as a b64-encoded image string) - Artist ->
${artist}
- Album ->
${album}
- Track ->
${title}
- Clone the repo
- Run
make install
to pull & compile needed dependencies
- Make sure you have an
.env
file in the project root, withLFM_TOKEN
set to your last.fm API key, and optionallyPORT
set to the port you want to run the dev server on (default is 4000) - Run
make dev
to run the livereload dev server, andmake test
to run all unit tests.
- Environment variables
LFM_TOKEN
andPORT
are required to build a release make release
compiles environment variables and builds a docker image with the releasemake run
stops any previuosly running docker container, and runs the new release
Feel free to open an issue or pull request if you have suggestions or find any bugs!