led-matrix-player/main.py

47 lines
1.2 KiB
Python
Raw Normal View History

2020-12-19 20:13:22 +00:00
import sys
import spotipy
import spotipy.util as util
2020-12-19 20:34:44 +00:00
import config as cfg
2020-12-19 20:13:22 +00:00
from PIL import Image
2020-12-19 21:08:07 +00:00
from rgbmatrix import RGBMatrix, RGBMatrixOptions
2020-12-19 20:13:22 +00:00
import requests
from io import BytesIO
2020-12-19 20:34:44 +00:00
client_id = cfg.client_id
client_secret = cfg.client_secret
redirect_uri = cfg.redirect_uri
username = cfg.username
2020-12-19 20:13:22 +00:00
scope = 'user-read-currently-playing'
2020-12-19 21:08:07 +00:00
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
2020-12-19 21:09:02 +00:00
screen = RGBMatrix(options = options) #pygame.display.set_mode(self.size, self.flags)
2020-12-19 21:08:07 +00:00
2020-12-19 20:13:22 +00:00
2020-12-19 20:34:44 +00:00
token = util.prompt_for_user_token(username, scope, client_id, client_secret, redirect_uri)
2020-12-19 20:13:22 +00:00
if token:
sp = spotipy.Spotify(auth=token)
2020-12-19 20:52:10 +00:00
track = sp.currently_playing()
print(track['is_playing'])
2020-12-19 20:13:22 +00:00
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))
2020-12-19 21:13:19 +00:00
#image.save("thumbnail.jpg","JPEG")
2020-12-19 20:13:22 +00:00
else:
print("Can't get token for", username)
2020-12-19 21:20:38 +00:00
while(True):
screen.SetImage(image.convert('RGB'))