Mosaics for Spotify

crates.io

A CLI tool for generating Spotify playlist covers using album artworks.

Examples

NOTE: The tool is capable of generating images up to size of 4096x4096, however the examples below are shown in an extremely low resolution, to place focus on the tool's features and not on artworks (which I do not own) themselves. The cover images all come from this Spotify playlist.

Default arguments

When only the required arguments are passed, the generated image will be identical to the default art set by Spotify for all new playlists:

![](./.github/img/default.png)

Tile count

You can customize the count of mosaic tiles using the --tiles <TILE_SIDE_LEN> argument.

| -t 2 (default) | -t 4 | -t 8 | |:------------------------------:|:-------------------------:|:--------------------------:| | | | |

Arrangement

You can order the tiles in predefined ways with --arrange <ARRANGEMENT>.

| -a first (default) | -a last | -a random | |:----------------------------:|:---------------------------:|:-----------------------------:| | | | |

Blur

The generated cover can be blurred with --blur <PERCENTAGE> to reduce visual clutter.

| -b 5 | -b 25 | -b 100 | |:-------------------------:|:--------------------------:|:---------------------------:| | | | |

Installation

NOTE: All of the current methods of installation require an installation of Rust. Precompiled binaries may be shipped in the future.

From crates.io

cargo install spotifymosaic

From GitHub

git clone https://github.com/tchojnacki/spotifymosaic.git cargo install --path spotifymosaic

Usage

Basic

spotifymosaic <PLAYLIST_URI> [AUTHORIZATION]

Where: - <PLAYLIST_URI> - URI of the playlist (in the form of spotify:playlist:ID) - [AUTHORIZATION] - any form of authorization, described below

Authorization

NOTE: The tool requires authorization, so you should create an app following the Spotify App Settings Guide.

Argument Client Credentials Flow

Currently, the only supported form of authorization is passing the client_id and client_secret from the Spotify Client Credentials Flow. Generate a pair of id and secret and pass them to the --creds CLI argument, separated by a colon (:).

Help

``` USAGE: spotifymosaic [OPTIONS] <--creds >

ARGS: Spotify playlist URI

OPTIONS: --creds Spotify client's ID and secret delimited by a colon

-t, --tiles <TILE_SIDE_LEN>
        Number of tiles forming the mosaic's side [default: 2]

-o, --out <OUTPUT_PATH>
        Output image file path [default: mosaic.png]

-a, --arrange <ARRANGEMENT>
        Ordering of mosaic's squares [default: first] [possible values: first, last, random]

-r, --res <RESOLUTION>
        Output image's resolution, may be rounded down [default: 640]

-b, --blur <PERCENTAGE>
        Amount of blur applied to cover images [default: 0]

-h, --help
        Print help information

```

Disclaimers