Emyee is a Python application that synchronizes your smart lights with the music you're playing on Spotify. It analyzes the audio data from the Spotify API, including loudness, beats, and sections, and uses that information to create dynamic lighting effects that enhance your music listening experience.
Or at least, that's what it's supposed to do. In reality, it might just give you a migraine.
-
Audio Analysis: Utilizes Spotify's audio analysis API to extract detailed information about the currently playing song, including beats, sections, and loudness levels. Because you definitely need to know the exact loudness of that high-pitched scream in your favorite death metal song.
-
Smart Lights Integration: Supports integration with Yeelight smart bulbs (additional support for other lighting systems can be added in).
-
Smooth Transitions: Provides smooth transitions between colors and brightness levels, creating an immersive lighting experience. Or, if you're unlucky, a jarring, seizure-inducing light show.
- Python 3.10+
- Spotify account
- Yeelight smart bulbs
- Clone the repository:
git clone https://github.com/your-username/spotify-lights.git
- Install the required Python packages:
pip install -r requirements.txt
- Set up your Spotify credentials by creating a
.env
file in the project root with the following contents:
USER_ID=your_spotify_user_id
CLIENT_ID=your_spotify_client_id
CLIENT_SECRET=your_spotify_client_secret
Replace the placeholders with your actual Spotify credentials, good luck with that.
- Connect your Yeelight bulbs to your local network. Good luck with that too.
- Run the application:
python main.py
The application will discover and initialize the Yeelight bulbs on your network, and start synchronizing the lights with the music playing on your Spotify account, i hope.
You can customize the lighting effects by modifying the DeviceManager
and LightsController
classes in the respective device_manager.py
and light_controller.py
files. Be warned tho, most likely even the slightest change might break everything.
This project is licensed under the MIT License. Not that it really matters, because nobody's going to use this anyway.