Discord-Lyric-Status automatically syncs whatever song lyrics you're currently listening to on Spotify straight to your Discord custom status in real-time. It uses multiple lyrics providers to ensure synced lyrics are fetched for almost any track.
- Real-Time Sync: Updates your Discord custom status line-by-line as the song plays.
- Multi-Provider Search: Uses
syncedlyricsunder the hood to search across NetEase, Musixmatch, LRCLib, and Megalobiz for maximum lyric availability. - Auto-Clear: Automatically removes the custom status when playback is paused or stopped.
- One-Click Run: Includes a Windows batch script (
.bat) that handles library installation and runs the sync.
- Python 3.8+ installed.
- A Spotify Account.
- A Discord Account.
-
Copy
.env.exampleto.env:cp .env.example .env
-
Spotify API Setup:
- Go to the Spotify Developer Dashboard.
- Create a new App. Use
http://localhost:8888/callbackas the Redirect URI. - Copy the Client ID and Client Secret into your
.envfile underSPOTIPY_CLIENT_IDandSPOTIPY_CLIENT_SECRET.
-
Discord Token Setup:
- Open Discord in your web browser.
- Press
F12(orCmd+Option+Ion Mac) to open Developer Tools, and head to the Network tab. - Send a message in any chat, and search for the
/api/requests. - Look under Request Headers for the
Authorizationheader value. This is your personal account token. - Copy and paste this token into your
.envfile underDISCORD_TOKEN.
Simply double-click the run discord lyric .bat file. It will automatically check for and install missing Python packages, then start the program.
- Install dependencies:
pip install spotipy requests websocket-client python-dotenv syncedlyrics
- Run the application:
python discord-lyric-status.py
| Key | Description |
|---|---|
SPOTIPY_CLIENT_ID |
Your Spotify developer client identifier. |
SPOTIPY_CLIENT_SECRET |
Your Spotify developer client secret. |
SPOTIPY_REDIRECT_URI |
Spotify OAuth redirect uri (Default: http://127.0.0.1:8888/callback). |
DISCORD_TOKEN |
Discord authorization token used to update status. |
This project is for educational and personal use only. Please review the policies below before running the application:
- Discord Policy: Using a personal account token to automate actions (self-botting) is against Discord's Terms of Service. Running this script carries a risk of account restriction or suspension. Use at your own discretion and risk.
- Spotify Policy: This project uses the official Spotify Web API for personal, non-commercial purposes in accordance with Spotify's Developer Terms.
- Liability: The author is not responsible for any actions taken against your accounts (such as bans or suspensions) due to the use of this tool.
This project relies on the following third-party open-source libraries:
- Spotipy (MIT License) - A lightweight Python library for the Spotify Web API.
- syncedlyrics (MIT License) - Used to fetch and scrape synchronized LRC format lyrics from NetEase, Musixmatch, LRCLib, and Megalobiz.
- Requests (Apache 2.0 License) - An elegant and simple HTTP library for Python.
- websocket-client (Apache 2.0 License) - A WebSocket client for Python.
- python-dotenv (BSD 3-Clause License) - Reads key-value pairs from a
.envfile and sets them as environment variables.