一个网络应用程序,可在Spotify上显示您当前播放的歌曲。允许您跳过歌曲,播放/暂停和喜欢/不同。分析专辑插图以选择背景和前景颜色以匹配图像。每两秒钟进行一次调查,以刷新显示器,以显示您当前播放的歌曲。使用动态布局缩放显示为显示的大小。
我通过设置一个基本网站来启动我的项目,以显示使用Spotipy(开源Spotify Python API)的Spotify数据的RAW JSON。后来,我写了一些JavaScript,每两秒钟对Spotify API进行调查以检查更改。如果歌曲发生了变化,则页面将带有新信息。
我使用称为ColorThief的JavaScript库来计算调色板,该库抓住了背景的主要颜色,并从调色板中捕获了与文本的对比鲜明的颜色。文本颜色不仅是黑色或白色,而是采样几种替代颜色以形成整个调色板,并从该调色板中找到与所选背景颜色对比的颜色。
我将Google材料符号用于播放控制图标。这允许轻松扩展到不同的屏幕尺寸,而无需单独的图像。
在屏幕上安排元素并进行不同显示是一个挑战。我希望它看起来至少在带有景观屏幕的PC到手机之类的东西上都可以忍受。它不是完美的,但相当坚固。此外,发现文本应该在什么时候是白色而不是黑色。我必须确保不管当时哪首歌曲播放,歌曲的细节都可以读取。
您可以通过许多不同的方式托管此WebApp。我个人使用fly.io。您还需要设置Spotify开发人员应用程序,以获取Spotify客户端ID和客户端秘密。
如果您没有一个帐户,请创建一个Spotify开发人员帐户,并创建一个新应用。您需要注意客户ID和客户端秘密。使用以下3个选项之一托管WebApp:
然后返回Spotify开发人员仪表板,然后输入重定向的URI。确保删除任何落后的斜线。它应该是实用的!
在app.py的顶部发表大量评论,有有关设置环境变量并在本地托管的额外信息。
最初,这是哈佛CS50课程的项目。从那以后,我一直在添加自己的功能。您可以在单独的分支中看到原始的CS50版本。从那时起,我已经大大提高了颜色检测算法。现在,还有一个指定的“ Raspi”分支,其中包含额外的代码行,可以在音乐不播放时打电话给本地网络服务器,以关闭Raspberry Pi的屏幕。
我仍然打算更新此信息,以通过颜色检测和屏幕缩放来修复错误,以及更多的按钮和奖励功能,等等。