Skip to main content

PyNowify

A simple app to display your currently playing Spotify track on a Raspberry Pi, made with python-tk.

This repo is a re-implementation of Nowify in python

PyNowify will:

  • ✅ - Use Spotify Web API to get your current track
  • ✅ - Only access that and no other data
  • ✅ - Use Access and Refresh Tokens to ensure that you're kept logged in between sessions
  • ✅ - Display the current track artist, cover, and a matching vibrant background colour

Preview: Nowify Preview Image 1 Nowify Preview Image 2


How to use

Prerequisites

You will need:

  • Python >= 3.10 (with Tk)
  • Spotify Client Keys
  • A device to display Nowify

Installation

  1. Clone this repository
  2. Install the packeg
  3. Create Spotify client keys
  4. Create the .env file with the keys and you configuration

Usgae

Launch py-nowify from the directory your .env resides

Alternatively you can create a launcher to run it on stratup

Create Spotify Client keys

  • Go to the Spotify Developer Dashboard.
  • Log in and click Create an App.
  • Copy the Client ID and Client Secret.
  • In your app settings on the dashboard, add http://127.0.0.1:3000 (or your custom URI) under Redirect URIs.
  • Copy down the Client Secret and Client ID and save your app in the Spotify Dashboard.
  • Copy your parameters into a file named .env in the root of your project directory.
    • Replace <SPOTIFY_CLIENT_ID> and <SPOTIFY_SECRET> with your actual credentials.

Configuration

This document provides details for configuring the environment variables required by the application. Create a .env file in the directory from which you will run the app.

Variable Reference

🎵 Spotify API Credentials

Variable Type Default Value Description
SPOTIPY_CLIENT_ID String Required Your Spotify Developer Application Client ID. Obtained from the Spotify Developer Dashboard.
SPOTIPY_CLIENT_SECRET String Required Your Spotify Developer Application Client Secret. Keep this secure and never commit it to public repositories.
SPOTIPY_REDIRECT_URI String http://127.0.0.1:3000 The URI to redirect to after user authentication. Must match one of the Redirect URIs specified in your Spotify App settings.

🖥️ Display & Window Settings

Variable Type Default Value Description
FULLSCREEN Boolean false Controls whether the application launches in fullscreen mode (true or false).
WINDOW_HEIGHT Integer 480 Sets the initial vertical height of the application window in pixels.
WINDOW_WIDTH Integer 800 Sets the initial horizontal width of the application window in pixels.
LOCK_ASPECT_RATIO Boolean false Determines whether to enforce a fixed aspect ratio when the window is resized (true or false).
RESIZEABLE Boolean true Allows users to manually resize the application window (true or false).

Example .env File

SPOTIPY_CLIENT_ID="<SPOTIFY_CLIENT_ID>"
SPOTIPY_CLIENT_SECRET="<SPOTIFY_SECRET>"
SPOTIPY_REDIRECT_URI="http://127.0.0.1:3000"
FULLSCREEN=false
WINDOW_HEIGHT=480
WINDOW_WIDTH=800
LOCK_ASPECT_RATIO=false
RESIZEABLE=true

Metadata

Release files for PyNowify 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for PyNowify 0.1.0
File Size Uploaded
pynowify-0.1.0.tar.gz 7.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for PyNowify 0.1.0
File Interpreter ABI Platform
pynowify-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.7 kB

Release files / pynowify-0.1.0.tar.gz

Download URL pynowify-0.1.0.tar.gz
Size 7.0 kB
Tags Source
SHA-256 checksum
How to use checksums
1add0a1e2a6d4b5165154f833de5f7f32604d502d054177bfe2b64054d20ed89
BLAKE2b-256 checksum
How to use checksums
ab6757549a488cc1ee3462410c98539c2596800ea082f71eb4b63fa2afb62140
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release files / pynowify-0.1.0-py3-none-any.whl

Download URL pynowify-0.1.0-py3-none-any.whl
Size 7.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e71297bfda9a80776df706620adf265d55aac2342ca1fb6f8923797ef79ad79d
BLAKE2b-256 checksum
How to use checksums
d904e5ab8261526a66b8522afe9450acc9142368d028ae6826652ebb43677c27
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 9, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page