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
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)
- Lyrics
- Downloadable track
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
Download the Android app & then install it on your Android smartphone/tablet
Download the setup file & follow along the installer
Run the following command to install Spotube with windows chocolatey package manager
choco install spotubeRun the following command to install Spotube with new Windows Package Manager:
winget install --id KRTirtho.SpotubeRun in terminal:
$ flatpak install flathub com.github.KRTirtho.SpotubeDownload 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.debin the directory where it was downloaded
Run following terminal
# for `yay` users
$ yay -S spotube-bin
# for `pamac` users
$ pamac install spotube-binDownload the Spotube-linux-x86_64.AppImage file & double click to run it. AppImages require appimage-launcher to be installed
Download the Mac OS Disk Image (.dmg) file from the release & follow along the setup wizard
Get the latest nightly builds of Spotube here
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)

-
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

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

Setup Genius Lyrics
- Signup/Login into genius for lyrics
- Go To Genius Developer Portal for creating an API client

- Generate & copy access token

- Paste the copied access token in Spotube's Settings

Note!: No personal data or any kind of sensitive information won't be collected from spotify. Don't believe? See the code for yourself
- 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
- Android Support
You can find the details here
- Shows & Podcasts aren't supported as it'd require premium anyway
- OS Media Controls
Bu why? You can learn about it here
- 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
- 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.
- 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.
- 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.
Follow me on Twitter for newer updates about this application
Β© 2022 Spotube




