/Spotify-Lyrics

🎉 Desktop Spotify Web Player Instant Synchronised Lyrics

Primary LanguageTypeScript

Discord

Spotify Lyrics

Install Extension:

  • Chrome/Chromium/Firefox: Download the zip on the release page, and then load the extension on the extension management page of the browser. reason.
  • Safari(Soon)

The extension adds a button to the bottom left corner of Spotify Web Player, Click to switch the display status of the lyrics, which is displayed in the Picture-in-Picture window by default setting. Spotify can be installed as pwa instead of desktop client.

If you have any questions, please submit an issue.

windows-pwa-spotify

The extension also supports Youtube Music, Apple Music, Deezer and Tidal, but songs with videos in Youtube Music cannot be perfectly supported(because the duration of the video is different from the duration of the officially released audio track).

macos-pwa-youtube

How To Work

  1. Listen for track info element.
  2. Search for songs and download lyrics using NeteaseCloudMusicApi.
  3. Rendering lyrics to <canvas>.
  4. Capture video stream from <canvas> and merge cover image.
  5. Update lyrics scroll position with a loop.

Compatibility

Development

Requirement: Node.js

# install dependencies
npm install
npm --prefix functions install
# start develop
npm run start
# optional: start firebase function simulation
npm run start:firebase

Build:

npm run build:zip

# firebase depoly and config update
# npm i -g firebase-tools
firebase depoly
firebase functions:config:get
firebase functions:config:set spotify-lyrics.manager-ids=xxx

Match Success Rate

Spotify, v1.2.7, Friday, July 31, 2020

Playlist Name Success rate Success No Match No Lyrics
Global Top 50 94% 47 1 2
Argentina Top 50 62% 31 9 10
Australia Top 50 96% 48 1 1
Austria Top 50 78% 39 6 5
Belgium Top 50 94% 47 2 1
Bolivia Top 50 80% 40 6 4
Brazil Top 50 24% 12 12 26
Bulgaria Top 50 66% 33 1 16
Canada Top 50 100% 50 0 0
Chile Top 50 80% 40 5 5
Colombia Top 50 78% 39 7 4
Costa Rica Top 50 76% 38 7 5
Czech Republic Top 50 54% 27 7 16
Denmark Top 50 58% 29 1 20
Dominican Republic Top 50 78% 39 5 6
Ecuador Top 50 78% 39 7 4
El Salvador Top 50 78% 39 7 4
Estonia Top 50 58% 29 4 17
Finland Top 50 60% 30 0 20
France Top 50 64% 32 2 16
Germany Top 50 80% 40 7 3
Greece Top 50 38% 19 4 27
Guatemala Top 50 82% 41 6 3
Honduras Top 50 78% 39 7 4
Hong Kong Top 50 80% 40 10 0
Hungary Top 50 80% 40 3 7
Iceland Top 50 60% 30 4 16
India Top 50 52% 26 9 15
Indonesia Top 50 62% 31 4 15
Ireland Top 50 100% 50 0 0
Israel Top 50 62% 31 6 13
Italy Top 50 76% 38 4 8
Japan Top 50 52% 26 19 5
Latvia Top 50 90% 45 1 4
Lithuania Top 50 68% 34 11 5
Luxembourg Top 50 84% 42 4 4
Malaysia Top 50 88% 44 3 3
Mexico Top 50 76% 38 7 5
Netherlands Top 50 72% 36 2 12
New Zealand Top 50 96% 48 0 2
Nicaragua Top 50 80% 40 6 4
Norway Top 50 82% 41 1 8
Panama Top 50 80% 40 6 4
Paraguay Top 50 80% 40 7 3
Peru Top 50 80% 40 5 5
Philippines Top 50 82% 41 4 5
Poland Top 50 30% 15 26 9
Portugal Top 50 66% 33 2 15
Romania Top 50 58% 29 6 15
Russia Top 50 54% 27 16 7
Singapore Top 50 88% 44 6 0
Slovakia Top 50 62% 31 10 9
South Africa Top 50 98% 49 0 1
Spain Top 50 72% 36 4 10
Sweden Top 50 80% 40 7 3
Switzerland Top 50 88% 44 5 1
Taiwan Top 50 68% 34 16 0
Thailand Top 50 82% 41 9 0
Turkey Top 50 50% 25 4 21
Ukraine Top 50 76% 38 7 5

Contribution

Fork it, submit PR.

  • Add translation
  • If you can write code, you can fix bugs or improve performance
  • Optimize the matching rate of Chinese, Japanese and Korean lyrics.(edit config.json). Note: The extension already has automatic optimization, this list serves as a supplement . Unmatched lyrics report

Privacy Policy

The extension will not collect any user’s personal information(personal information refers to information that identifies a specific individual, such as the individual’s name, address, email and phone number).

  • Extension permissions: when installing or updating the extension, the browser may prompt that it needs to read website data. This is only the necessary permission for the extension to execute js code in the web player. The extension will not read private data such as historical data.
  • Google Firebase: the extension will save user-uploaded lyrics and manually matched lyrics to Google Firebase and share them among multiple users
  • Google Analytics: the extension uses Google Analytics to track use of the Browser Extension and trends. Google Analytics collects various data including the page URL, page title, Search Terms, IP Address, and Page Language. You can review Google's Privacy Policy here. You can review additional information about how Google Analytics uses your data here, Google provides various privacy controls to limit its collection of data, including the Google Analytics opt-out browser add-on. More information about opting out of Google Analytics can be found here
  • Sentry.io: the extension uses sentry to collect extended error information, including browser information, error stack and other data, You can view sentry's privacy policy here

If you have any comments or questions about this privacy policy, please contact me via Email.