led-matrix-player/main.py
2020-12-19 22:13:19 +01:00

47 lines
1.2 KiB
Python

import sys
import spotipy
import spotipy.util as util
import config as cfg
from PIL import Image
from rgbmatrix import RGBMatrix, RGBMatrixOptions
import requests
from io import BytesIO
client_id = cfg.client_id
client_secret = cfg.client_secret
redirect_uri = cfg.redirect_uri
username = cfg.username
scope = 'user-read-currently-playing'
options = RGBMatrixOptions()
options.rows = 32
options.cols = 64
options.chain_length = 6
options.parallel = 2
options.hardware_mapping = 'regular'
options.pixel_mapper_config = 'U-mapper'
options.limit_refresh_rate_hz = 240
options.gpio_slowdown = 4
screen = RGBMatrix(options = options) #pygame.display.set_mode(self.size, self.flags)
token = util.prompt_for_user_token(username, scope, client_id, client_secret, redirect_uri)
if token:
sp = spotipy.Spotify(auth=token)
track = sp.currently_playing()
print(track['is_playing'])
print(track['item']['name'] + ' - ' + track['item']['artists'][0]['name'])
imageString = requests.get(track['item']['album']['images'][0]['url'])
image = Image.open(BytesIO(imageString.content))
image = image.resize((32,32))
#image.save("thumbnail.jpg","JPEG")
else:
print("Can't get token for", username)
screen.setImage(image.convert('RGB'))