🎧 Open source Spotify client that doesn't require Premium nor uses Electron! Available for both desktop & mobile!
Go to file
2022-09-12 22:47:01 +06:00
.fvm feat: add download multi tracks support for mobile platform 2022-08-14 15:44:54 +06:00
.github cd: run ssh even on job fail 2022-09-06 21:07:14 +06:00
.vscode feat(broken): Broken Warning! Initial Local Audio Player 2022-08-30 16:08:01 +06:00
android fix: flutter_downloader manifest configuration breaking android support 2022-08-25 11:55:04 +06:00
assets Merge branch 'master' of github.com:KRTirtho/spotube 2022-09-03 09:50:05 +06:00
aur-struct AUR pkgbuild syntax error fixed 2022-07-11 12:02:36 +06:00
bin application adpted to Flutter 3.0 2022-05-21 17:15:46 +06:00
choco-struct release-build workflow creation with choco publish support 2022-04-26 17:48:44 +06:00
ios Android SafeArea issues fixed 2022-03-15 19:47:29 +06:00
lib fix(layout): Fix adaptive UI not working correctly by providing a overriding option 2022-09-12 15:02:47 +06:00
linux refactor(audio-metadata): migrate from dart audio tagging library to rust based in-house solution 2022-09-05 00:09:05 +06:00
macos chore: disable reading/writing audiotags in macOS for as unsupported platform for metadata_god 2022-09-09 13:36:49 +06:00
metadata/en-US Updated fundling details & f-droid metadata descriptions 2022-05-03 23:58:45 +06:00
scripts Renabled MPRIS for flatpak runtime 2022-07-11 03:39:01 +00:00
test [android] Next/Prev track from notification/lockscreen support added (https://github.com/KRTirtho/spotube/issues/91) 2022-06-02 18:46:34 +06:00
web Flutter app added 2022-01-03 10:27:25 +06:00
website [website] close annoying popup button 2022-08-01 16:53:54 +06:00
windows refactor(audio-metadata): migrate from dart audio tagging library to rust based in-house solution 2022-09-05 00:09:05 +06:00
.gitignore feat: add download multi tracks support for mobile platform 2022-08-14 15:44:54 +06:00
.metadata Upgrade bitsdojo_window 2022-05-18 20:12:50 +02:00
analysis_options.yaml Save Track button support (incomplete) 2022-01-05 13:41:34 +06:00
appdmg.json Changelog for v1.1.0 added 2022-01-27 10:49:00 +06:00
CHANGELOG.md chore: generate CHANGELOG 2022-09-09 17:33:14 +06:00
CODE_OF_CONDUCT.md Contribution guidelines added 2022-01-19 22:56:12 +06:00
CONTRIBUTION.md fix(docs): indentions 2022-08-09 23:03:42 +02:00
distribute_options.yaml optimized search for both youtube track & synched subtitle 2022-04-25 22:15:01 +06:00
LICENSE license identifiers re-corrected 2022-02-06 10:07:15 +06:00
Makefile [CD] executable not moved to choco-struct fix 2022-05-13 11:16:08 +06:00
pubspec.lock feat: add macos audio metadata tags support 2022-09-12 22:47:01 +06:00
pubspec.yaml chore: disable reading/writing audiotags in macOS for as unsupported platform for metadata_god 2022-09-09 13:36:49 +06:00
README.md docs(readme): add discord join button 2022-08-26 09:30:04 +06:00

Spotube

spotube.netlify.app

GitHub Action Status GitHub release License Maintainer Open Collective backers and sponsors Discord

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

Desktop

Application Desktop Screenshot

Mobile

Application Mobile Screenshot

Features

Following are the features that currently spotube offers:

  • Open Source
  • Anonymous/Guest Login
  • Cross platform
  • No telemetry, 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)
  • Synced Lyrics
  • Downloadable track

Support this project

"Donate to out Collective" "Buy Me A Coffee"

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

Platform Package/Installation Method
Android Android Download
Android Download
Debian/Ubuntu Linux Debian/Ubuntu Download
Then run: sudo apt install Spotube-linux-x86_64.deb
Flatpak flatpak install com.github.KRTirtho.Spotube
Download on Flathub
Arch/Manjaro pamac: pamac install spotube-bin
yay: yay -Sy spotube-bin
AppImage AppImage Download
Note: AppImages require appimage-launcher to be installed
Linux (tarball) Tarball Download
Windows Windows Download
Windows (Chocolatey) choco install spotube
Windows (Scoop) scoop bucket add extras
scoop install spotube
Windows (WinGet) winget install --id KRTirtho.Spotube
MacOS MacOS Download

Note!: If you don't understand this download table. You can read installation instructions from the wiki

Nightly Builds

Get the latest nightly builds of Spotube here

Optional Configurations

Login with Spotify

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

  • MOST IMPORTANT: 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
    step-3-a setp-3-b

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

TODO:

  • Windows OS Media Control & Media Keys Support
  • Spotify Listen Along
  • Skip non-music sections from Audio Track
  • Language Translations/Localization

Building from source

You can find the details here

Things that don't work

  • Shows & Podcasts aren't supported as it'd require premium anyway

License

BSD-4-Clause

Bu why? You can learn about it here

Financial Contributors

Backers

Backers Donors

Sponsors

Donors

Library/Plugin/Framework Credits

  • 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
  • audioplayers - A Flutter plugin to play multiple audio files simultaneously (Android/iOS)
  • 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
  • Inno Setup - Inno Setup is a free installer for Windows programs by Jordan Russell and Martijn Laan
  • collection - The collection package for Dart contains a number of separate libraries with utility functions and classes that makes working with collections easier
  • flutter_riverpod - A Reactive Caching and Data-binding Framework
  • flutter_hooks - React hooks for Flutter. Hooks are a new kind of object that manages a Widget life-cycles. They are used to increase code sharing between widgets and as a complete replacement for StatefulWidget
  • hooks_riverpod - Riverpod with hooks
  • go_router - A declarative router for Flutter based on Navigation 2 supporting deep linking, data-driven routes and more
  • palette_generator - Flutter package for generating palette colors from a source image.
  • logger - Small, easy to use and extensible logger which prints beautiful logs
  • flutter_launcher_icons - A package which simplifies the task of updating your Flutter app's launcher icon.
  • permission_handler - Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
  • marquee - A Flutter widget that scrolls text infinitely. Provides many customizations including custom scroll directions, durations, curves as well as pauses after every round
  • scroll_to_index - scroll to index with fixed/variable row height inside Flutter scrollable widget
  • package_info_plus - This Flutter plugin provides an API for querying information about an application package.
  • version - A dart library providing a Version class
  • audio_service - Flutter plugin to play audio in the background while the screen is off.
  • skeleton_text - Flutter package for Skeleton Text Animation
  • hive - Lightweight and blazing fast key-value database written in pure Dart.
  • dbus - Native Dart client library to use DBus
  • introduction_screen - Add easily to your app an introduction screen to provide informations to new users
  • audio_session - Sets the iOS audio session category and Android audio attributes for your app, and manages your app's audio focus, mixing and ducking behaviour.

Social handlers

Follow me on Twitter for newer updates about this application

© 2022 Spotube