KRTirtho/spotube
π§ Open source music streaming app! Available for both desktop & mobile!
About KRTirtho/spotube
KRTirtho/spotube is an open-source project on GitHub, mainly written in Dart. π§ Open source music streaming app! Available for both desktop & mobile! It currently holds 49,300 stars and 2,299 forks with 0 open issues, and was last pushed on an unknown date (repository created unknown).
Project Overview
Git Homed tracks it on the Today's Trending board, currently at rank #69 with 37 new stars today.
GitHub Repository Details
README
A cross-platform extensible open-source music streaming platform.
Bring your own music metadata/playlist/audio-source with plugins created by community or by yourself. A small step towards the decentralized music streaming era!
Btw it's not just another Electron app π
---
π Features
- π§© Plugin powered, supports any platform or custom music service through plugins.
- πΊοΈ Community driven plugins for popular platforms or create your own.
- β¬οΈ Freely downloadable tracks with tagged metadata.
- π₯οΈ π± Cross-platform support.
- πͺΆ Small size & less data usage.
- π Time synced lyrics regardless of the plugin support.
- β No telemetry, diagnostics or user data collection.
- π Native performance.
- π Open source/libre software.
- π Playback control is done locally, not on the server.
π β¬οΈ Installation guide
New versions usually release every 3-4 months.
This handy table lists all the methods you can use to install Spotube:
| Platform | Package/Installation Method |
|---|---|
| Windows |
|
| MacOS |
|
| Android |
|
| iOS |
*iPA file only. Requires sideloading with AltStore or similar tools. |
| Flatpak |
|
| AppImage | AppImage's lacking stability led to it's temporary removal. More information at https://github.com/KRTirtho/spotube/issues/1082 |
| Debian/Ubuntu |
Then run: |
| Arch/Manjaro |
With pamac: With yay: |
| Fedora/OpenSuse |
For Fedora: For OpenSuse: |
| Linux (tarball) |
|
| Macos - Homebrew |
brew tap krtirtho/apps brew install --cask spotube |
| Windows - Chocolatey |
|
| Windows - Scoop |
|
| Windows - WinGet |
|
π Nightly Builds
Grab the latest nightly builds of Spotube from the GitHub Releases.
π³οΈ Building from source
You can compile Spotube's source code by following these instructions.
π₯ The Spotube team
- Kingkor Roy Tirtho - The Founder, Maintainer and Lead Developer
- Owen Connor - The Cool Discord Moderator
- Piotr Rogowski - The MacOS Developer
- Rusty Apple - The Mysterious Unknown Guy
πΌ License
Spotube is open source and licensed under the BSD-4-Clause License.
If you are curious, you can read the reason of choosing this license.
[Click to show] π Services/Package/Plugin Credits
[Click to show] π Services/Package/Plugin CreditsServices
1. Flutter - Flutter transforms the app development process. Build, test, and deploy beautiful mobile, web, desktop, and embedded apps from a single codebase 1. MPV - mpv is a free (as in freedom) media player for the command line. It supports a wide variety of media file formats, audio and video codecs, and subtitle types. 1. Musicbrainz - MusicBrainz is a MetaBrainz project that aims to create a collaborative music database that is similar to the freedb project. 1. Listenbrainz - ListenBrainz is a open-source project by the MetaBrainz Foundation that allows users to crowdsource and publicly store their digital music listening data. 1. Piped - Piped is a privacy friendly alternative YouTube frontend, which is efficient and scalable by design. 1. Invidious - Invidious is an open source alternative front-end to YouTube. 1. yt-dlp - A feature-rich command-line audio/video downloader. 1. NewPipeExtractor - NewPipe's core library for extracting data from streaming sites. 1. YouTubeExplodeDart - A port in dart of the youtube explode library. Supports several API functions without the need of Youtube API Key. 1. LRCLib - A public synced lyric API. 1. 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 1. AUR - AUR stands for Arch User Repository. It is a community-driven repository for Arch-based Linux distributions users 1. Flatpak - Flatpak is a utility for software deployment and package management for Linux 1. SponsorBlock - SponsorBlock is an open-source crowdsourced browser extension and open API for skipping sponsor segments in YouTube videos. 1. Inno Setup - Inno Setup is a free installer for Windows programs by Jordan Russell and Martijn Laan 1. F-Droid - F-Droid is an installable catalogue of FOSS (Free and Open Source Software) applications for the Android platform. The client makes it easy to browse, install, and keep track of updates on your device 1. LastFM - Last.fm is a music streaming and discovery platform that helps users discover and share new music. It tracks users' music listening habits across many devices and platforms.
Dependencies
1. app_links - Android App Links, Deep Links, iOs Universal Links and Custom URL schemes handler for Flutter (desktop included).
1. args - Library for defining parsers for parsing raw command-line arguments into a set of options and values using GNU and POSIX style options.
1. audio_service - Flutter plugin to play audio in the background while the screen is off.
1. audio_service_mpris - audio_service platform interface supporting Media Player Remote Interfacing Specification.
1. 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.
1. auto_route - AutoRoute is a declarative routing solution, where everything needed for navigation is automatically generated for you.
1. auto_size_text - Flutter widget that automatically resizes text to fit perfectly within its bounds.
1. bonsoir - A Zeroconf library that allows you to discover network services and to broadcast your own. Based on Apple Bonjour and Android NSD.
1. cached_network_image - Flutter library to load and cache network images. Can also be used with placeholder and error widgets.
1. connectivity_plus - Flutter plugin for discovering the state of the network (WiFi & mobile/cellular) connectivity on Android and iOS.
1. device_info_plus - Flutter plugin providing detailed information about the device (make, model, etc.), and Android or iOS version the app is running on.
1. dio - A powerful HTTP networking package,supports Interceptors,Aborting and canceling a request,Custom adapters, Transformers, etc.
1. drift - Drift is a reactive library to store relational data in Dart and Flutter applications.
1. duration - Utilities to make working with 'Duration's easier. Formats duration in human readable form and also parses duration in human readable form to Dart's Duration.
1. encrypt - A set of high-level APIs over PointyCastle for two-way cryptography.
1. envied - Explicitly reads environment variables into a dart file from a .env file for more security and faster start up times.
1. file_picker - A package that allows you to use a native file explorer to pick single or multiple absolute file paths, with extension filtering support.
1. file_selector - Flutter plugin for opening and saving files, or selecting directories, using native file selection UI.
1. fluentui_system_icons - Fluent UI System Icons are a collection of familiar, friendly and modern icons from Microsoft.
1. flutter_cache_manager - Generic cache manager for flutter. Saves web files on the storages of the device and saves the cache info using sqflite.
1. flutter_discord_rpc - Discord RPC support for Flutter desktop platforms
1. flutter_displaymode - A Flutter plugin to set display mode (resolution, refresh rate) on Android platform. Allows to enable high refresh rate on supported devices.
1. flutter_feather_icons - Feather is a collection of simply beautiful open source icons. Each icon is designed on a 24x24 grid with an emphasis on simplicity, consistency and usability.
1. flutter_form_builder - This package helps in creation of forms in Flutter by removing the boilerplate code, reusing validation, react to changes, and collect final user input.
1. flutter_hooks - A flutter implementation of React hooks. It adds a new kind of widget with enhanced code reuse.
1. flutter_inappwebview - A Flutter plugin that allows you to add an inline webview, to use an headless webview, and to open an in-app browser window.
1. flutter_native_splash - Customize Flutter's default white native splash screen with background color and splash image. Supports dark mode, full screen, and more.
1. flutter_riverpod - A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
1. flutter_sharing_intent - A flutter plugin that allow flutter apps to receive photos, videos, text, urls or any other file types from another app.
1. flutter_undraw - Undraw.co Illustrations for Flutter with customization options
1. form_builder_validators - Form Builder Validators set of validators for FlutterFormBuilder. Provides common validators and a way to make your own.
1. freezed_annotation - Annotations for the freezed code-generator. This package does nothing without freezed too.
1. fuzzywuzzy - An implementation of the popular fuzzywuzzy package in Dart, to suit all your fuzzy string matching/searching needs!
1. home_widget - A plugin to provide a common interface for creating HomeScreen Widgets for Android and iOS.
1. hooks_riverpod - A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
1. html - APIs for parsing and manipulating HTML content outside the browser.
1. html_unescape - A small library for un-escaping HTML. Supports all Named Character References, Decimal Character References and Hexadecimal Character References.
1. http - A composable, multi-platform, Future-based API for HTTP requests.
1. image_picker - Flutter plugin for selecting images from the Android and iOS image library, and taking new pictures with the camera.
1. intl - Contains code to deal with internationalized/localized messages, date and number formatting and parsing, bi-directional text, and other internationalization issues.
1. local_notifier - This plugin allows Flutter desktop apps to displaying local notifications.
1. logger - Small, easy to use and extensible logger which prints beautiful logs.
1. logging - Provides APIs for debugging and error logging, similar to loggers in other languages, such as the Closure JS Logger and java.util.logging.Logger.
1. lrc - A Dart-only package that creates, parses, and handles LRC, which is a format that stores song lyrics.
1. metadata_god - Plugin for retrieving and writing audio tags/metadata from audio files
1. mime - Utilities for handling media (MIME) types, including determining a type from a file extension and file contents.
1. open_file - A plug-in that can call native APP to open files with string result in flutter, support iOS(UTI) / android(intent) / PC(ffi) / web(dart:html)
1. package_info_plus - Flutter plugin for querying information about the application package, such as CFBundleVersion on iOS or versionCode on Android.
1. palette_generator - Flutter package for generating palette colors from a source image.
1. path - A string-based path manipulation library. All of the path operations you know and love, with solid support for Windows, POSIX (Linux and Mac OS X), and the web.
1. path_provider - Flutter plugin for getting commonly used locations on host platform file systems, such as the temp and app data directories.
1. permission_handler - Permission plugin for Flutter. This plugin provides a cross-platform (iOS, Android) API to request and check permissions.
1. riverpod - A reactive caching and data-binding framework. Riverpod makes working with asynchronous code a breeze.
1. scroll_to_index - Scroll to a specific child of any scrollable widget in Flutter
1. shadcn_flutter - Beautifully designed components from Shadcn/UI is now available for Flutter
1. shared_preferences - Flutter plugin for reading and writing simple key-value pairs. Wraps NSUserDefaults on iOS and SharedPreferences on Android.
1. shelf - A model for web server middleware that encourages composition and easy reuse.
1. shelf_router - A convenient request router for the shelf web-framework, with support for URL-parameters, nested routers and routers generated from source annotations.
1. shelf_web_socket - A shelf handler that wires up a listener for every connection.
1. simple_icons - The Simple Icon pack available as Flutter Icons. Provides over 1500 Free SVG icons for popular brands.
1. skeletonizer - Converts already built widgets into skeleton loaders with no extra effort.
1. sliding_up_panel - A draggable Flutter widget that makes implementing a SlidingUpPanel much easier!
1. sliver_tools - A set of useful sliver tools that are missing from the flutter framework
1. smtc_windows - Windows SystemMediaTransportControls implementation for Flutter giving access to Windows OS Media Control applet.
1. sqlite3 - Provides lightweight yet convenient bindings to SQLite by using dart:ffi
1. sqlite3_flutter_libs - Flutter plugin to include native sqlite3 libraries with your app
1. timezone - Time zone database and time zone aware DateTime.
1. titlebar_buttons - A package which provides most of the titlebar buttons from windows, linux and macos.
1. tray_manager - This plugin allows Flutter desktop apps to defines system tray.
1. url_launcher - Flutter plugin for launching a URL. Supports web, phone, SMS, and email schemes.
1. uuid - RFC4122 (v1, v4, v5, v6, v7, v8) UUID Generator and Parser for Dart
1. version - Provides a simple class for parsing and comparing semantic versions as defined by http://semver.org/
1. very_good_infinite_list - A library for easily displaying paginated data, created by Very Good Ventures. Great for activity feeds, news feeds, and more.
1. visibility_detector - A widget that detects the visibility of its child and notifies a callback.
1. web_socket_channel - StreamChannel wrappers for WebSockets. Provides a cross-platform WebSocketChannel API, a cross-platform implementation of that API that communicates over an underlying StreamChannel.
1. wikipedia_api - Wikipedia API for dart and flutter
1. win32_registry - A package that provides a friendly Dart API for accessing the Windows Registry.
1. window_manager - This plugin allows Flutter desktop apps to resizing and repositioning the window.
1. youtube_explode_dart - A port in dart of the youtube explode library. Supports several API functions without the need of Youtube API Key.
1. http_parser - A platform-independent package for parsing and serializing HTTP formats.
1. [collection](https://pub.dev/packa
