Fetch the currently playing song from Spotify and display lyrics on cmd or in a browser tab.
Project description
SwagLyrics-For-Spotify
Fetches the currently playing song from Spotify on Windows and displays the lyrics in the command-line or in a browser tab.
Refreshes automatically when song changes. The lyrics are fetched from Genius.
Turns out Deezer already has this feature in-built but with swaglyrics
, you can have it in Spotify as well.
Probably wasn't thinking when I put Swag in the name (will probably be seen by admission officers sigh) but I'm mainly trying to build this project as far as I can, for practice and to learn and work with more technologies (learnt AJAX).
Initially developed this for personal use. Pretty much functionality oriented -- I usually develop something that I can see helping me and other users in the same situation. Packaged so I can first hand handle production-ready code to an extent and to make distribution and usage easier.
Changelog
-
v0.1.9
A GitHub issue is created automatically on the repo when an unsupported song is encountered (implemented server-side using pythonanywhere).
Installation
pip install swaglyrics
Make sure to use a version >= 0.1.6 since the previous ones don't have the tab
option supported.
Usage
swaglyrics [-h] [-t] [-c]
Either the tab or cli argument is required to output lyrics.
Arguments:
-h, --help show this help message and exit
-t, --tab Display lyrics in a browser tab.
-c, --cli Display lyrics in the command-line.
Package Structure
.
|-- swaglyrics
|-- static # contains styling and the AJAX script needed to dynamically refresh browser tab with new lyrics
|-- templates # contains template for the browser tab
|-- __init__.py
|-- __main__.py # holds primary function that parses args and executes accordingly
|-- cli.py # defines functions to fetch lyrics from Genius
|-- spotify.py # defines functions to get currently playing song and artist from the Spotify app
|-- tab.py # Flask app to display lyrics in a browser tab
|-- tests.py # need overhauling
|-- unsupported.txt # to log unsupported songs, will be updated soon
|-- LICENSE.md
|-- MANIFEST.in
|-- README.md
|-- setup.py
Improvements Planned
- MacOS support
Better logging of unsupported songs, the isolated unsupported.txt is sub-optimal for multiple users since the file will only update locally with songs which worked fine when it was just me but since I hope others use it too, I'll try to add a better method with server support.- Better tests to test all of the functionality.
- Perhaps a tiny app using Electron that could fit in your tray to be opened whenever you want lyrics for a song.
- Supporting more songs, currently the program sometimes fails at remixes since while the lyrics are same as original, the artist is the remixer.
- Documenting all the files.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for swaglyrics-0.2.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 43623e23042744dd350f8856bf91eba29734789b6094d99cbb717c67e033be6e |
|
MD5 | 9a2f132b2075ce77026c0fb3f0ab19d9 |
|
BLAKE2b-256 | 71e94de995327b12aa73323964130a9a5ee4154f18e8d4fc13eb7edf754442be |