🎧 Open source Spotify client that doesn't require Premium nor uses Electron! Available for both desktop & mobile!
Go to file
Kingkor Roy Tirtho bdfbe0f4be initial support for download tracks
audio Quality increased
2022-01-20 20:02:58 +06:00
.github Update issue templates 2022-01-19 22:02:01 +06:00
.vscode crash in windows bug fix (hotkey_manager) 2022-01-13 12:27:39 +06:00
android changed orgranization name & descriptions 2022-01-13 13:55:12 +06:00
assets New screentshot & chocolatey install instruction 2022-01-20 11:08:17 +06:00
aur-struct srcinfo updated with Makefile command now 2022-01-19 00:04:03 +06:00
choco-struct Fulfilled requirements of chocolatey publish 2022-01-18 14:06:04 +06:00
deb-struct/DEBIAN Contribution guidelines added 2022-01-19 22:56:12 +06:00
ios changed orgranization name & descriptions 2022-01-13 13:55:12 +06:00
lib initial support for download tracks 2022-01-20 20:02:58 +06:00
linux scripts for creating linux packages added 2022-01-14 00:52:23 +06:00
scripts Bumped version 2022-01-14 17:48:42 +06:00
test Flutter app added 2022-01-03 10:27:25 +06:00
web Flutter app added 2022-01-03 10:27:25 +06:00
windows Bumped version 2022-01-14 17:48:42 +06:00
.gitignore Chocolatey packaging added 2022-01-18 11:10:02 +06:00
.metadata Flutter app added 2022-01-03 10:27:25 +06:00
analysis_options.yaml Save Track button support (incomplete) 2022-01-05 13:41:34 +06:00
AppImageBuilder.yml Contribution guidelines added 2022-01-19 22:56:12 +06:00
CHANGELOG.md Changelogs added with flatpak modification ongoing 2022-01-16 18:41:01 +06:00
CODE_OF_CONDUCT.md Contribution guidelines added 2022-01-19 22:56:12 +06:00
CONTRIBUTION.md Contribution guidelines added 2022-01-19 22:56:12 +06:00
LICENSE Unsafe List.last accessor bugfix (#issues/2) 2022-01-14 16:58:53 +06:00
Makefile Contribution guidelines added 2022-01-19 22:56:12 +06:00
pubspec.lock initial support for download tracks 2022-01-20 20:02:58 +06:00
pubspec.yaml initial support for download tracks 2022-01-20 20:02:58 +06:00
README.md New screentshot & chocolatey install instruction 2022-01-20 11:08:17 +06:00

Spotube

Spotube is a Flutter based lightweight spotify client. It utilizes the power of Spotify & Youtube's public API & creates a hazardless, performant & resource friendly User Experience Application Screenshot

Features

Following are the features that currently spotube offers:

  • Open Source
  • No telementry, diagnostics or user data collection
  • Lightweight & resource friendly
  • Native performance (Thanks to Flutter+Skia)
  • 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)
  • Lyrics
  • Downloadable track (WIP)

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, just download

Windows

Download the setup file & follow along the installer

Chocolatey

Run the following command to install Spotube with windows chocolatey package manager

choco install spotube

Linux

Ubuntu/Debian/Linux Mint/Pop_!OS:

Download the Spotube-linux-x86_64.deb then double click it or run

$ sudo apt install Spotube-linux-x86_64.deb
# or
$ sudo dpkg -i Spotube-linux-x86_64.deb

in the directory where it was downloaded

Arch/Manjaro/Endeavour:

Run following terminal

# for `yay` users
$ yay -S spotube
# for `pamac` users
$ pamac install spotube

Others:

Download the Spotube-linux-x86_64.AppImage file & double click to run it. AppImages require appimage-launcher to be installed

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 developer 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

Also, you need a genius account for lyrics & a API Client for

  • accessToken

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

TODO:

  • Compile, Debug & Build for MacOS
  • Add support for show Lyric of currently playing track
  • Track download
  • Support for playing/streaming podcasts/shows
  • Artist, User & Album pages

Building from source

  • Download the latest Flutter SDK (>=2.15.1) & enable desktop support
  • Install Development dependencies in linux
    • libwebkit2gtk-4.0-dev, libkeybinder-3.0-0 & libkeybinder-3.0-0-dev (for Debian/Ubuntu)
    • webkit2gtk & libkeybinder3 (for Arch/Manjaro)
  • Clone the Repo
$ flutter pub get
$ flutter run -d <window|macos|linux>

Things that don't work

  • Shows & Podcasts aren't supported as it'd require premium anyway
  • OS Media Controls
  • Global Media Shortcuts/Keyboard Media Buttons

License

BSD 4-Clause

Bu why? You can learn about it here

Relevant Project/Tools Links

  • Flutter - Flutter transforms the app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase
  • Linux - Linux is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged in a Linux distribution
  • AUR - AUR stands for Arch User Repository. It is a community-driven repository for Arch-based Linux distributions users
  • Flatpak - Flatpak is a utility for software deployment and package management for Linux
  • spotify (dart) - A dart library for interfacing with the Spotify API
  • just_audio - A feature-rich cross-platform audio player for Flutter that supports network audio streams too
  • libwinmedia - A cross-platform media playback library for C/C++ with good number of features (only Windows & Linux)
  • youtube_explode_dart - YoutubeExplode is a library that provides an interface to query metadata of YouTube videos, playlists and channels, as well as to resolve and download video streams and closed caption tracks
  • infinite_scroll_pagination - Flutter package to help you lazily load and display pages of items as the user scrolls down your screen
  • bitsdojo_window - A Flutter package that makes it easy to customize and work with your Flutter desktop app window on Windows, macOS and Linux
  • hotkey_manager - A flutter plugin that allow Flutter desktop apps to defines system/inapp wide hotkey
  • Inno Setup - Inno Setup is a free installer for Windows programs by Jordan Russell and Martijn Laan

Social handlers

Follow me on Twitter for newer updates about this application

© 2022 Spotube