1.1.17 • Published 3 months ago

ambient-display v1.1.17

Weekly downloads
-
License
-
Repository
-
Last release
3 months ago

Ambient

An ambient display screen for spotify, with the configurable ability to also non destructively add songs to the communal queue and control basic playback.

Screenshot

Watch a userful video here

Like a Spotify Jam?

Yeah pretty much, in fact much worse. But in some ways better. Gives a more 'there is a Spotify instance running by the host, but if you wanna chuck a couple tunes in, go for it' vibe, rather than full control.

It also protects against the DREADED playlist switch. It then also allows the host to disallow jams, it just turns the tighten up a very little amount.

Installing and running

Option 1: Install globally

npm i -g ambient-display // or any package manager of course

SPOTIFY_CLIENT_ID=[ID_HERE] SPOTIFY_CLIENT_SECRET=[SECRET_HERE] ambient

or load a config file from somewhere

CONFIG=~/.ambient/ambient.config.js ambient

This will build the sveltekit project and then run the express server

Option 2: Install in another project COMING SOON

Hopefully

Option 3: Pull the project locally

npm run build // or any package manager of course

node server/run.mjs

Config

You can configure Ambient with an ambient.config.js file in the root of the folder. All types can be found in this folder

KeyTypeDescriptionDefault
portnumberThe port in which the server runs on3000
originstringThe origin of the server, usually the local ip_Your machine's IP address_
protocolstringhttp:// or https:// (is there another?!)http://
playerRoutestringThe path that the player is routed on/player
verbosebooleanWhether the app shouts a lot more in the stdoutfalse
apiobjectSee below
api.marketstringThe spotify market to use a lot of the functions inGB
api.searchQueryLimitnumberHow many search results of each category to display10
api.centralisedPollingbooleanWhether to turn the info call onto the server and communicate via websocketstrue
api.centralisedPollingTimernumberThe internal timer that calls for the info5000
api.canAddbooleanGives users the ability to add to the playback via the dashboardtrue
api.canControlbooleanGives users the ability to control the playbacktrue
spotifyobjectSee below
spotify.client_idstringThe spotify Client ID from your appprocess.env.SPOTIFY_CLIENT_ID
spotify.client_secretstringThe spotify Client Secret from your appprocess.env.SPOTIFY_CLIENT_SECRET
spotify.routePrefixstringThe prefixed sub route that the spotify mounting sits on/spotify
spotify.routeTokenstringThe path that spotify redirects to with the token/token
spotify.authenticatedRedirectstringThe route that the app redirects too after a successful auth with spotify/
spotify.accessTokenJsonLocationstringThe path to save the access token file, for caching./server/spotify_auth.json
spotify.scopestring[]Any additional scopes to initiate spotify with[]
pluginsPluginItem[]An array of plugins to run[]
pluginOptionsobjectRefer to any plugin options for what to place here{}
suppressErrorsstring[]Any error events to catch and not send to the frontend, because perhaps a plugin will handle them[]

Plugins

NameDescription
Kiosk ModeOpens fullscreen kiosk mode of app after running
Sonos FallbackControls sonos directly, if spotify's api errors while using Sonos as playback device

Reasoning

Spotify's API is excellent, but without being approved for the expanded API grant, its limited to really only hobbyist stuff. This means that you can register your own app, and run this locally and have a customised Spotify Jam scenario, because its running through your credentials. Locally served

1.1.17

3 months ago

1.1.16

3 months ago

1.1.15

3 months ago

1.1.13

3 months ago

1.1.12

3 months ago

1.1.11

3 months ago

1.1.10

3 months ago

1.1.9

3 months ago

1.1.8

3 months ago

1.1.7

3 months ago

1.1.6

3 months ago

1.1.5

3 months ago

1.1.4

3 months ago

1.1.3

3 months ago

1.1.2

3 months ago

1.1.1

3 months ago

1.1.0

3 months ago