Skip to main content

Fetch the currently playing song from Spotify and display lyrics on cmd or in a browser tab.

Project description

SwagLyricsSwagLyrics-For-Spotify

Build Status Build Status PyPI GitHub closed issues Downloads

Fetches the currently playing song from Spotify on Windows, Linux and macOS 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.

I'm mainly trying to build this project as far as I can, for practice and to learn and work with more technologies and platforms.

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.

Installation

Requires Python3. Use pip or pip3 depending on your installation. You might want to use the --user flag on Linux to avoid using pip as root.

pip install swaglyrics

Make sure to use a version >= 0.1.6 since the previous ones don't have the tab option supported.

Usage

usage: swaglyrics [-h] [-t] [-c] [-n]

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.   
  -n, --no-issue  Disable issue-making on cli.

You can quit by pressing Ctrl+C

Community

Changelog

  • v0.2.8

    • Fixed creation of multiple unsupported.txt
    • Improved stripper + genius_stripper on backend as fallback
    • Full test coverage for cli.py
    • Add support for local music too
    • Add coloring
    • Remove extra dependency
  • v0.2.6

    • Added favicon
    • Removed extra dependency
  • v0.2.5

    • Refactored stripper to support more songs straightaway
    • Fixed bugs
    • Added -n argument (helps while testing)
    • Added more test cases
  • v0.2.4

    • Added server-side database
    • All songs with lyrics on Genius supported now!
    • Global sync of unsupported songs
    • Added more tests (85% coverage)
    • Improved issue-making using Spotify API
  • v0.2.3

    • Added macOS support
    • Added more tests
    • Added unidecode to support songs with diacritics
    • Fixed commandline not clearing b/w songs on Linux
    • Improved issue-making
  • v0.2.1

    • Added Linux support
    • Added more tests
    • Set up code coverage and continuous integration
  • v0.1.9

    • A GitHub issue is created automatically on the repo when an unsupported song is encountered (implemented server-side using pythonanywhere).

Compiling SwagLyrics for Development

  • Clone the repo by git clone https://github.com/SwagLyrics/SwagLyrics-For-Spotify.git or use ssh.
  • cd into the cloned repo.
  • pip install -e . the -e flag installs it locally in editable mode.

Improvements Planned

  1. Linux and macOS support done
  2. 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.
  3. Better tests to test all of the functionality. (cli.py fully tested!)
  4. Perhaps a tiny app using Electron that could fit in your tray to be opened whenever you want lyrics for a song.
  5. Supporting more songs, currently the program sometimes fails at remixes since while the lyrics are same as original, the artist is the remixer. done
  6. Documenting all the files.

SwagLyrics on Windows with Terminal

SwagLyrics with Hyper

SwagLyrics on Windows with Firefox Side-View

SwagLyrics with Side-View

Screencast - SwagLyrics on Linux

Watch the video

Screencast - SwagLyrics on macOS

Watch the video

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swaglyrics-0.2.8.tar.gz (14.4 kB view hashes)

Uploaded Source

Built Distribution

swaglyrics-0.2.8-py3-none-any.whl (17.4 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page