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 or install from Pypi
  2. Create Spotify client keys
  3. 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.1

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.1
File Size Uploaded
pynowify-0.1.1.tar.gz 7.0 kB Details

Built distribution (wheel)

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

Total release size: 14.7 kB

Release files / pynowify-0.1.1.tar.gz

Download URL pynowify-0.1.1.tar.gz
Size 7.0 kB
Tags Source
SHA-256 checksum
How to use checksums
d937c12e1bc228207ec261b6c6e3f28cc10c2c0c69fc1db1485413ca91293988
BLAKE2b-256 checksum
How to use checksums
416cd97aced800d5d5fec7886146c1dae2d616df4be268d0abbb49775ff02dd7
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.1-py3-none-any.whl

Download URL pynowify-0.1.1-py3-none-any.whl
Size 7.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2970c04543cb0176fc3b58f44359f2d51a8fcb2e8fd649a14712bcd9f30a18ba
BLAKE2b-256 checksum
How to use checksums
bfc699f5b6b6850565d4f946afa2b5a2ba88cbe94ecfe8043b2766beccee3558
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

This release

0.1.1 This release

2 release files

0.1.0

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