🎧 Open source Spotify client that doesn't require Premium nor uses Electron! Available for both desktop & mobile!
Go to file
2021-03-22 10:10:40 +06:00
.vscode Added: SearchResult comp enhanced, Error, loading, retry handler comp, pagination 2021-03-19 15:44:41 +06:00
assets dependency bumps & Player bug fix 2021-03-22 10:10:40 +06:00
deb-struct/DEBIAN Debian Packaging support added & .gitignore fixed 2021-03-20 19:55:39 +06:00
deploy docs updated & some windows related bug fix 2021-03-21 19:09:42 +06:00
scripts Debian Packaging support added 2021-03-20 19:49:59 +06:00
src dependency bumps & Player bug fix 2021-03-22 10:10:40 +06:00
.babelrc Finished bootstraping basic UI 2021-02-14 09:15:49 +06:00
.gitignore Debian Packaging support added & .gitignore fixed 2021-03-20 19:55:39 +06:00
assets.d.ts Finished bootstraping basic UI 2021-02-14 09:15:49 +06:00
control Debian Packaging support added 2021-03-20 19:49:59 +06:00
deb-config.json Debian Packaging support added 2021-03-20 19:49:59 +06:00
package-lock.json dependency bumps & Player bug fix 2021-03-22 10:10:40 +06:00
package.json dependency bumps & Player bug fix 2021-03-22 10:10:40 +06:00
README.md docs updated & some windows related bug fix 2021-03-21 19:09:42 +06:00
tsconfig.json Search & SearchResultPlaylist see all added. Spotify Infinite Query added for infinite scroll 2021-03-18 11:11:03 +06:00
webpack.config.js Works fine with clientCredentialGrant flow of spotify 2021-02-17 22:44:43 +06:00

Spotube is a qt based lightweight spotify client which uses nodegui/react-nodegui as frontend & nodejs as backend. It utilizes the power of Spotify & Youtube's public API & creates a hazardless, performant & resource friendly User Experience spotube

Features

Following are the features that currently spotube offers:

  • Open Source
  • No telementry, diagnostics or user data collection
  • Lightweight & resource friendly
  • Near native performance & seemless with default desktop themes (Win10, Win7, OSX, QT-default)
  • Playback control is on user's machine instead of server based
  • Small size & less data hungry
  • No spotify or youtube ads since it uses all public & free APIs (But it's recommended to support the creators by watching/liking/subscribing to the artists youtube channel or add as favourite track in spotify. Mostly buying spotify premium is the best way to support their valuable creations)
  • Lyric Seek (WIP)

Requirements

Don't worry spotify premium isn't required😱. But some extra packages are required.

  • MPV player for playing the actual audio
  • youtube-dl for streaming the audio from youtube. It already comes pre bundled with mpv

Tip!: If you're using windows try installing mpv & youtube-dl player with chocolatey package manager as it'd make the installation a lot easier

Important for Ubuntu/Debian: If you're using any ubuntu/debian based linux distro then youtube-dl installed from the typical apt-get repositories will most likely not work as that version is older than current release. So remove it & install from the repository manually

Remove the youtube-dl installed with mpv player or from apt package manger

$ sudo apt-get remove youtube-dl

Now, Install youtube-dl from

$ snap install youtube-dl

Installation

I'm always releasing newer versions of binary of the software each 2-3 month with minor changes & each 6-8 month with major changes. Grab the binaries

All the binaries are located in the releases

I'll/try to upload the package binaries to linux debian/arch/ubuntu/snap/flatpack/redhat/chocolatey stores or software centers or repositories

Configuration

There are some configurations that needs to be done to start using this software

You need a spotify account & a web app for

  • clientId
  • clientSecret

Grab credentials:

  • Go to https://developer.spotify.com/dashboard/login & login with your spotify account (Skip if you're logged in) Step 1

  • Create an web app for Spotify Public API step 2

  • Give the app a name & description. Then Edit settings & add http://localhost:4304/auth/spotify/callback as Redirect URI for the app. Its important for authenticating setp-3

  • Click on SHOW CLIENT SECRET to reveal the clientSecret. Then copy the clientID, clientSecret & paste in the Spotube's respective fields step-4

[Important]!: No personal data or any kind of sensitive information won't be collected from spotify. Don't believe? See the code for yourself

Building from source

nodegui/react-nodegui requires following packages to run

  • CMake 3.1 & up
  • GCC v7
  • Nodejs 12.x & up

Windows Specific:

  • Visual Studio 2019

MacOS & Linux specific:

  • Make

Ubuntu/Debian based linux specific: Having pkg-config build-essential mesa-common-dev libglu1-mesa-dev is important

$ sudo apt-get install pkg-config build-essential mesa-common-dev libglu1-mesa-dev

After having this dependencies set up run following commands:

$ git clone https://github.com/KRTirtho/spotube.git
$ cd spotube
$ npm install

Now start building:

$ npm run build
$ npm run pack

Go to built package directory replace os-name with linux|win32|darwin:

$ cd deploy/<os-name>/build/spotube

If everything went smoothly then double clicking on the

  • AppRun or Spotube-x86_64.AppImage for linux
  • Spotube-x86_64.exe for Windows
  • Spotube-x86_64.dmg for MacOS

should work just fine without any problem

Development

Follow the Build from Source guideline till npm install Now, to start the dev server run the command in one terminal:

$ npm run dev

To start the application in development environment run following command in another terminal keeping the dev server running:

$ npm start

Known Issues

There will be some glitches, lags & stuck motions because of the library Spotube is currently using under the hood. It has some issues with layouts thus sometime some contents aren't shown or overflows out of the window. But resizing the window would fix this issue. Soon there will be some updates fixing this sort of layout related problems

TODO:

  • Compile, Debug & Build for MacOS
  • Add seek Lyric for currently playing track
  • Support for playing/streaming podcasts/shows
  • Easy installation procedure/mechanism for simplicity

Social handlers

Follow me on Twitter for newer updates about this application