🎧 Open source Spotify client that doesn't require Premium nor uses Electron! Available for both desktop & mobile!
Go to file
2022-11-03 20:11:20 +06:00
.fvm feat: add download multi tracks support for mobile platform 2022-08-14 15:44:54 +06:00
.github Merge pull request #261 from KRTirtho/dependabot/github_actions/subosito/flutter-action-2.8.0 2022-10-25 12:15:12 +06:00
.vscode fix(macos): black text in dark mode 2022-11-03 10:49:05 +06:00
android feat(auth): new authentication flow using cookies and webview in android 2022-10-03 20:38:36 +06:00
assets feat(auth): new authentication flow using cookies and webview in android 2022-10-03 20:38:36 +06:00
aur-struct AUR pkgbuild syntax error fixed 2022-07-11 12:02:36 +06:00
bin feat: use of smaller sized images 2022-10-11 14:41:44 +06:00
choco-struct release-build workflow creation with choco publish support 2022-04-26 17:48:44 +06:00
ios Basic support for iOS, fix missing Rust lib 2022-10-13 19:36:22 +02:00
lib feat: use platform checkbox 2022-11-03 20:11:20 +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 feat: initial platform_ui integration 2022-10-29 14:23:17 +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 feat(lyrics): tabs for both synced and static lyrics #182 2022-10-24 17:59:58 +06:00
web Flutter app added 2022-01-03 10:27:25 +06:00
website docs: removed all gtag and stupid google ads stuff 2022-09-23 13:39:39 +06:00
windows feat: smoother list using fl_query and waypoint 2022-10-02 11:04:27 +06:00
.gitignore fix(web): not building due to metadata_god ffi 2022-09-21 23:10:05 +06:00
.metadata Basic support for iOS, fix missing Rust lib 2022-10-13 19:36:22 +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: bump version and generate CHANGELOG 2022-10-13 19:41:25 +06:00
CODE_OF_CONDUCT.md Contribution guidelines added 2022-01-19 22:56:12 +06:00
CONTRIBUTION.md feat(categories): Reenable Featured playlists 2022-10-09 10:07:06 +06: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: Player and Playbutton theme respect to platform 2022-10-29 19:36:04 +06:00
pubspec.yaml feat: Player and Playbutton theme respect to platform 2022-10-29 19:36:04 +06:00
README.md Fix typo 2022-10-16 22:41:57 +04: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

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

But 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
  • rentanadviser - Generous Synced lyrics API provider service
  • SponsorBlock - SponsorBlock is an open-source crowdsourced browser extension and open API for skipping sponsor segments in YouTube videos.
  • 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
  • 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.
  • file_picker - A Flutter plugin to let users pick a file from the file system, be it from a local storage or a remote one (e.g. Google Drive, Dropbox, iCloud, etc).
  • popover - Popover for Flutter. A popover is a transient view that appears above other content onscreen when you tap a control or in an area.
  • queue - A library to easily handle sequential queueing of futures in dart
  • auto_size_text - Flutter widget that automatically resizes text to fit perfectly within its bounds.
  • badges - A flutter package for creating badges.
  • mime - Dart package for working with MIME type definitions and for processing streams of MIME multipart media types.
  • metadata_god - Audio file Metadata reading and writing library for Flutter
  • visibility_detector - A widget that detects the visibility of its child and notifies a callback
  • fl_query - Asynchronous data caching, refetching & invalidation library for Flutter
  • fl_query_hooks - Elite flutter_hooks compatible library for fl_query, the Asynchronous data caching, refetching & invalidation library for Flutter
  • flutter_inappwebview - A Flutter plugin that allows you to add an inline webview, to use a headless webview, and to open an in-app browser window

The Team

Social handlers

Follow me on Twitter for newer updates about this application

© 2022 Spotube