{"id":13529326,"url":"https://github.com/SwagLyrics/SwagLyrics-For-Spotify","last_synced_at":"2025-04-01T15:30:49.174Z","repository":{"id":32805866,"uuid":"121128060","full_name":"SwagLyrics/SwagLyrics-For-Spotify","owner":"SwagLyrics","description":"📃 Get lyrics of currently playing Spotify song so you don't sing along with the wrong ones and embarrass yourself later. Very fast.","archived":false,"fork":false,"pushed_at":"2023-03-07T05:01:07.000Z","size":25261,"stargazers_count":326,"open_issues_count":453,"forks_count":35,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-13T01:35:00.552Z","etag":null,"topics":["application","flask","genius","hacktoberfest","linux","lyrics","macos","package","python3","regex","requests","songs","spotify","swaglyrics","windows"],"latest_commit_sha":null,"homepage":"https://pypi.org/project/swaglyrics/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SwagLyrics.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null},"funding":{"github":"aadibajpai"}},"created_at":"2018-02-11T13:50:20.000Z","updated_at":"2025-01-29T18:30:50.000Z","dependencies_parsed_at":"2024-01-03T04:13:37.566Z","dependency_job_id":"e68b658d-6ddf-4b13-9ee0-3261d0ebff7d","html_url":"https://github.com/SwagLyrics/SwagLyrics-For-Spotify","commit_stats":{"total_commits":379,"total_committers":16,"mean_commits":23.6875,"dds":0.5277044854881267,"last_synced_commit":"581d97d8045f9b9d59df981e699a4fcbea2948e6"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwagLyrics%2FSwagLyrics-For-Spotify","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwagLyrics%2FSwagLyrics-For-Spotify/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwagLyrics%2FSwagLyrics-For-Spotify/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SwagLyrics%2FSwagLyrics-For-Spotify/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SwagLyrics","download_url":"https://codeload.github.com/SwagLyrics/SwagLyrics-For-Spotify/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246662269,"owners_count":20813720,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["application","flask","genius","hacktoberfest","linux","lyrics","macos","package","python3","regex","requests","songs","spotify","swaglyrics","windows"],"created_at":"2024-08-01T07:00:35.410Z","updated_at":"2025-04-01T15:30:48.366Z","avatar_url":"https://github.com/SwagLyrics.png","language":"Python","funding_links":["https://github.com/sponsors/aadibajpai"],"categories":["Entertainment","Python","Other Useful Stuff"],"sub_categories":["Music"],"readme":"\u003ch1 align=\"center\"\u003e\u003cimg src=\"https://github.com/SwagLyrics/SwagLyrics/blob/master/assets/swaglyrics_transparent.png?raw=true\" alt=\"SwagLyrics\" height=200 width=200 align=\"middle\"\u003eSwagLyrics-For-Spotify\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://discord.gg/DSUZGK4\"\u003e\n    \u003cimg src=\"https://badgen.net/badge/discord/join%20chat/7289DA?icon=discord\" alt=\"Discord Server\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://travis-ci.com/SwagLyrics/SwagLyrics-For-Spotify\"\u003e\n    \u003cimg src=\"https://travis-ci.com/SwagLyrics/SwagLyrics-For-Spotify.svg?branch=master\" alt=\"Build Status\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://ci.appveyor.com/project/TheClashster/swaglyrics-for-spotify-yo7jh\"\u003e\n    \u003cimg src=\"https://ci.appveyor.com/api/projects/status/eon538lm2of04sll?svg=true\" alt=\"Build Status\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/SwagLyrics/SwagLyrics-For-Spotify\"\u003e\n  \u003cimg src=\"https://codecov.io/gh/SwagLyrics/SwagLyrics-For-Spotify/branch/master/graph/badge.svg\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/swaglyrics/\"\u003e\n    \u003cimg src=\"https://img.shields.io/pypi/v/swaglyrics.svg\" alt=\"PyPI\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://aur.archlinux.org/packages/swaglyrics/\"\u003e\n    \u003cimg src=\"https://img.shields.io/aur/version/swaglyrics\" alt=\"Arch User Repository\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://pepy.tech/project/swaglyrics\"\u003e\n    \u003cimg src=\"https://pepy.tech/badge/swaglyrics\" alt=\"Downloads\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nFetches the currently playing song from Spotify on Windows, Linux and macOS and displays the lyrics in the command-line, browser tab or in a [desktop application](https://github.com/SwagLyrics/SwagLyricsGUI).\nRefreshes automatically when song changes. The lyrics are fetched from Genius.\nTurns out Deezer already has this feature in-built but with `swaglyrics`, you can have it in Spotify as well.\n\nI'm mainly trying to build this project as far as I can,\nfor practice and to learn and work with more technologies and platforms.\n\nInitially developed this for personal use. Pretty much functionality oriented -- I usually develop something that I\ncan see helping me and other users in the same situation.\nPackaged so I can first hand handle production-ready code to an extent and to make\ndistribution and usage easier.\n\n## Why SwagLyrics?\nSwagLyrics is the fastest and the most accurate package for getting lyrics.\u003ca href=#footnote1 id=a1\u003e\u003csup\u003e1\u003c/sup\u003e\u003c/a\u003e\n\nProvided optimal internet, SwagLyrics can fetch lyrics for a track in as less as 0.28s.\u003ca href=#footnote2 id=a2\u003e\u003csup\u003e2\u003c/sup\u003e\u003c/a\u003e\n\nIt also does not require the user to generate any sort of API token (Spotify or Genius) and serves functionality \nright off the bat. This is possible as the song identification is done using our in-house library \n[SwSpotify](https://github.com/SwagLyrics/SwSpotify) which does it locally for all operating systems. \n\nThe enhanced user experience is possible due to the [backend](https://github.com/SwagLyrics/swaglyrics-issue-maker) \nwhich manages creating issues for unsupported songs and then adding support for them where possible by employing various \ntechniques. Any song with lyrics on Genius can be supported without any user interaction owing to the backend.\nIf say, lyrics do not exist for a track then subsequent playings of that track will not waste your resources in trying\nto fetch lyrics, this is done by a [master list of unsupported songs](https://aadibajpai.pythonanywhere.com) which is \nhandled by the backend as well. \n\n\u003ca href=\"https://colab.research.google.com/gist/aadibajpai/439cd358b001ae7d1ba970b68f70d92b/swaglyrics_test.ipynb\" id=\"footnote1\"\u003e\n1. \u003csmall\u003e[results]\u003c/small\u003e\u003c/a\u003e Tested against \u003ca href=https://github.com/johnwmillr/LyricsGenius\u003eLyricsGenius\u003c/a\u003e, the most popular \nsimilar package on the US Top 50 Chart on Spotify. SwagLyrics was fractionally more accurate and 2.4x times faster. \n\u003ca href=#a1\u003e↩\u003c/a\u003e\n\u003cbr\u003e\n\u003ca href=\"https://colab.research.google.com/gist/aadibajpai/06a596ad753007b0faea132e96f372e0/swaglyrics_test.ipynb\" id=\"footnote2\"\u003e\n2. \u003csmall\u003e[results]\u003c/small\u003e\u003c/a\u003e Speed and accuracy benchmark using Google Colab on the Spotify US Top 50 chart. \n\u003ca href=#a2\u003e↩\u003c/a\u003e\n\n## Installation\nRequires Python 3.6+. Use pip or pip3 depending on your installation. You might want to use the `--user` flag on Linux to\navoid using pip as root.\n```\npip install swaglyrics\n```\n\n### Arch Linux\n\nArch Linux users can directly install SwagLyrics from AUR ([swaglyrics\u003csup\u003eAUR\u003c/sup\u003e](https://aur.archlinux.org/packages/swaglyrics/)). Using `yay`:\n```\nyay -S swaglyrics\n```\n\n### Nix\n\nNix users on any Linux distro and NixOS can install SwagLyrics from Nixpkgs.\n\n```\nnix-env -i swaglyrics\n```\n\n## Usage\n`usage: swaglyrics [-h] [-t] [-c] [-n]`\n\nEither the tab or cli argument is required to output lyrics.\n\nArguments:\n```\n  -h, --help      show this help message and exit       \n  -t, --tab       Display lyrics in a browser tab.      \n  -c, --cli       Display lyrics in the command-line.   \n  -n, --no-issue  Disable issue-making on cli.\n```\nYou can quit by pressing \u003ckbd\u003eCtrl\u003c/kbd\u003e+\u003ckbd\u003eC\u003c/kbd\u003e.\n\nBefore using, you should check [USING.txt](swaglyrics/USING.txt) to comply with the Genius ToS. There's a copy \nincluded inside the package as well.\n\nNote: If you have trouble displaying Japanese/Chinese characters on the command-line, simply type `chcp 936` to change your code page. List of code pages can be found here: https://en.wikipedia.org/wiki/Code_page\n\n## Community\n- SwagLyrics participated in [Google Code-in 2019](https://g.co/gci) with CCExtractor Development.\n- SwagLyrics participated in [Google Code-in 2018](https://g.co/gci) with CCExtractor Development.\n- SwagLyrics participated in [Google Summer of Code 2019](https://g.co/gsoc) with CCExtractor Development. \nThe selected project can be found [here](https://summerofcode.withgoogle.com/projects/#5694893526089728).\n\n## Changelog\n\n- #### v1.2.0\n\t- Add Genius A/B support\n\t- Add support for Bollywood songs\n    - Add update check only once per 24h\n    - Add parameter to force update check\n\t\nSee [CHANGES.md](CHANGES.md) for prior release notes.\n\n## Compiling SwagLyrics for Development\n\n- Clone the repo by `git clone https://github.com/SwagLyrics/SwagLyrics-For-Spotify.git` or use ssh.\n- `cd` into the cloned repo.\n- `pip install -e .` the -e flag installs it locally in editable mode.\n\n## Improvements Planned\n1. ~~Linux and macOS support **done**~~\n2. ~~Better logging of unsupported songs, the isolated unsupported.txt is sub-optimal for multiple users since the\nfile will only update locally with songs which worked fine when it was just me but since I hope others use it too, I'll\ntry to add a better method with server support.~~\n3. ~~Better tests to test all of the functionality. (cli.py fully tested!)~~ 100% code coverage\n4. Perhaps a tiny app using Electron that could fit in your tray to be opened whenever you want lyrics for a song.\n5. ~~Supporting more songs, currently the program sometimes fails at remixes since while the lyrics are same as \noriginal,\n the artist is the remixer. **done**~~\n6. Documenting all the files.\n\n## SwagLyrics on Windows with Terminal\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://i.imgur.com/SRRbxbr.png\" alt=\"SwagLyrics with Hyper\"\u003e\n\u003c/p\u003e\n\n## SwagLyrics on Windows with Firefox Side-View\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://i.imgur.com/TcSpbP9.png\" alt=\"SwagLyrics with Side-View\"\u003e\n\u003c/p\u003e\n\n## Screencast - SwagLyrics on Linux\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"http://www.youtube.com/watch?v=-rxYcXAsO1U\"\u003e\n    \u003cimg src=\"https://i.imgur.com/v3iWyia.gif\" alt=\"Watch the video\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n## Screencast - SwagLyrics on macOS\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.youtube.com/watch?v=XcobDTljMdM\"\u003e\n    \u003cimg src=\"https://i.imgur.com/7BVWB99.gif\" alt=\"Watch the video\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSwagLyrics%2FSwagLyrics-For-Spotify","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSwagLyrics%2FSwagLyrics-For-Spotify","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSwagLyrics%2FSwagLyrics-For-Spotify/lists"}