Blade is an open source music player for Android, allowing you to play music from multiple services : files on your phone, Spotify, and more.

Overview

Blade Player

GitHub release (latest by date) license GitHub last commit GitHub commits since latest release (by date)

Blade is an open source music player for Android, allowing you to play music from multiple services : files on your phone, Spotify, and more.

Blade is available on Google Play, or here on GitHub.

Feature overview

Blade Player is developed by me (@vhaudiquet) alone, so the project cannot be tested on many devices and scenarios ; if you find an issue, open one here.

  • The app will open on your library, categorized as Artists, Albums, Songs, and Playlists (available in the navigation drawer).
  • It allows you to manage libraries for songs (add/remove from source library) and playlists ( add/remove from playlist, create/remove playlists)
  • It supports Android 'dark theme' (the screenshots above are done on a dark themed system).
  • It is completely free (there are no ads, no limited version)
  • It caches the library locally, so launching Blade requires virtually no data (only refreshing tokens and status of sources servers)
  • (TODO) It has a 'data saving' mode that allows you to listen to music while consuming very low mobile data (by not loading album arts)
  • The search feature allows you to search the local library instantly
  • (TODO) The "explore" mode allows you to search and browse sources for new music (for example search all Spotify and look for new releases)
  • It has a layout that can adapt for tablet users (landscape layout)
  • It is available in different languages : English or French (and you can easily help me traduce it)

Supported services (music sources)

  • Local (i.e. files on your phone)
  • Spotify

About Spotify

You will need a Spotify Premium account to play music from Spotify, but you can use Blade without a premium account (to play your Spotify playlists from other sources, for example)

Blade is using the official Spotify Android Auth library and Retrofit to access the Spotify Web API, i.e. to obtain user library and playlists. In order to play music from Spotify, Blade uses the librespot-java library.

For now, Blade will act as a Spotify Connect peripheral. Please do not try to control Blade with Spotify Connect. It won't work, and it will glitch the app.

When connecting Blade and Spotify, i am for now obligated to ask directly for your username and password, 2 times : one for librespot-java, which requires them directly (Spotify does not allow streaming music from their API authentification), and one for Spotify Android Auth, which uses the secure OAuth2 protocol. I can only promise you that i am not stealing your credentials ; if you are paranoid, you may build Blade from sources or use a network analyzer to see that all network traffic goes to Spotify servers.

Special thanks to the people at librespot-org and librespot-java ; without them, Spotify support would not have been possible.

Future updates

New features and bug fixes or improvements are coming. Here is a list of what i want to implement :

  • SPOTIFY: Use Android Native Decoders, and/or libtremolo if native decoder not present
  • UI: Show albums in an 'album view' instead of a list
  • Add new services : SoundCloud, YouTube Music, Amazon Music, Tidal, WebDAV/FTP Servers...
  • UI/CORE: Add a way to explore web sources for new content (cf. 'explore' mode above)
  • CORE: 'Blade' playlists, that can contain song from all sources

Contributing

See CONTRIBUTING.md

Older versions

If you want older (i.e. < 2.0) versions of Blade, you can check the old repository.

Comments
  • Categorize local search the same as explore search

    Categorize local search the same as explore search

    At the moment you can only search for song titles. However, I often also want to search for artists. Adding this seems to be fairly simple. But thinking a little further, searching for playlists or albums could be needed as well. The search probably should differ depending on the currently selected category in the navigation drawer. Here are my thoughts:

    artists -> search for artists albums -> search for album name and artist songs -> search for song title and artist playlists -> search for playlist name

    enhancement 
    opened by LakkesW 2
  • changed title and dialogTitle for selection of theme in settings

    changed title and dialogTitle for selection of theme in settings

    The settings always show the menu item "Dark Theme", no matter which theme is actually selected. The same applies to the title in the theme selection dialog (see screenshot).

    settings_dialog

    This PR replaces title and dialogTitle with a separate string resource.

    opened by LakkesW 2
  • Remember last played when you open the app

    Remember last played when you open the app

    I'm using an app called PodAlarm together with Blade Player that let's you chose any app to set it up as your alarm. After you chose an app to play music/podcasts/radio, what it does is, it opens the chosen app and then it'll send a play command to the app, in my case Blade, so you have to have something ready to be played. Since Blade when it first opens doesn't show your last played song in your last played playlist, before bed I chose an album to be played, stop it, and let the app open. It's working great, but it would be even better and more reliable if the app would open always with the last played, so in the case it gets closed or you forget to select something and leave it opened, it will always play something.

    opened by maxsubs 0
  • Add Export library options

    Add Export library options

    I'd be nice to being able to export our library (artists/albums/songs/playlists) to a txt/csv... file, just in case we lose our account or something. I don't know if we can already access it with some file explorer, they sure are locally stored, but can't find any Blade folder on my Android.

    opened by maxsubs 0
  • Ability to sort, filter and other improvements to library

    Ability to sort, filter and other improvements to library

    I have a very large library, mostly albums, so scrolling through the artists, albums and songs is a pain. I'd like to suggest some things to make the experience even better: -Add sorting options to Artists, Albums, Songs and Playlists such as, by added date, release date (Albums), number of songs (Albums/Artists), name. All of them with the options of reverse sorting. -Add filters: So if you have many albums, chances are, some of them may have featuring artists/collaborations and that will add up the amount of artists to your library with many artists with only one or very few songs, cause they only feature in a song of an album, which would make your Artists section huge, it'd be nice to be able to filter artists by number of songs, so you can hide, say, artists with less than 5 songs. Some other filtering idea could be by genre (Artists/Albums). -Add fast scrolling on the right edge of the screen with an indicating letter popping out as you scroll. -Don't go back to the top whenever you open an artist/album/playlist and go back to the main section, i.e. if you go down on your artists library an open Elvis Presley and then go back, it will go to the top of your artists section. -Make the Sinchronize button consistent on landscape and vertical view. On landscape view, you get to see the icon, whether on vertical view you have to click on the 3 dots tor an option on the menu.

    These are only ideas, I don't know to what extent they can be implemented or not, I'd write more ideas and hopefully I could contribute to something, like the Spanish translation, let me know if needed. I'm enjoying a lot this software :)

    opened by maxsubs 0
Releases(v2.1)
  • v2.1(Feb 4, 2022)

  • v2.0(Jan 19, 2022)

    Blade Player - Version 2.0

    This is Blade Player 2.0. It is a complete rewrite from scratch of the concept of the original blade-player. This release should be far more stable than the last (1.5.4) version.

    However, some features (themes, data saving mode, explore mode) are yet to be completed ; but I still think that 2.0 is better than 1.5.4 (in my everyday use), this is why i'm releasing.

    Please keep in mind that this release was entirely coded in 22 days by one programmer. I cannot test it intensively, and i can't fix everything, so there are still minor bugs : some that i'm aware of, some that i'm not... Feel free to open an issue if you encounter one.

    The codebase is much cleaner than the one of the original project, which will allow me to add more services and functions. There should be more versions soon.

    Source code(tar.gz)
    Source code(zip)
    app-release.apk(3.66 MB)
    mapping.txt(17.52 MB)
Owner
Valentin HAUDIQUET
Valentin HAUDIQUET
Listen to your favourite songs from Spotify with your friends in Discord (via Spotify Connect)

Adieux Listen to your favourite songs from Spotify with your friends in Discord (via Spotify Connect) Requires Spotify Premium. This project is self-h

Conor Byrne 6 Feb 15, 2022
SocyMusic is an open-source Android music player written in Java with the aim of creating an easy-to-use app for exchanging and listening to top-quality music. Help us create it!

SocyMusic SocyMusic is an open-source Android music player written entirely in Java. It's objectives are to provide top-quality music to everyone for

Benji 23 Dec 26, 2022
Music Player - This is a basic music player built with Android Studio and Kotlin

Music Player Made by Jenny Cárdenas This is a basic music player built with Android Studio and Kotlin, it shows two views in the UI, the user can play

Jenny C 3 Oct 28, 2021
Odeon Music Player is a lightweight music player for Android.

Odeon ?? Odeon Music Player is a lightweight music player for Android. Get it on Google Play. We value your privacy, your battery life and your device

Thibault Seisel 63 Dec 20, 2022
Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface.

Fermata Media Player About Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface. It is focused on

Andrey 227 Jan 6, 2023
Shuttle is an open source, local music player for Android.

Shuttle Music Player Shuttle is an open source, local music player for Android. Shuttle comes in two flavours: Shuttle (free) Shuttle+ The free versio

Tim Malseed 2.2k Jan 4, 2023
Android app that uses Spotify API to recommend new music based on your listening history

Android app that uses Spotify API to recommend new music based on your listening history. Written in Kotlin and uses Spotify Web API and Android SDK. New music is presented in swipe cards where a left swipe plays the next song and a right swipe can add the app to your liked songs in Spotify.

null 3 Jun 5, 2022
Android Application that plays music through a Spotify API based on a user's current location found through Google Maps API and also checking Google Weather API.

GeoStereo Android Application that plays music through a Spotify API based on a user's current location found through Google Maps API and also checkin

Jonah Douglas 1 Jun 16, 2022
SpotiFlyer - Kotlin Multiplatform Music Downloader ,supports Spotify, Youtube, Gaana, Jio-Saavn and SoundCloud

SpotiFlyer Kotlin Multiplatform Music Downloader ,supports Spotify, Youtube, Gaa

Gas Com IT 1 Feb 8, 2022
TunePlayer is a basic music player app aimed at showing how MusicServiceCompat and MusicBrowerCompat can be used to build a music playback service

TunePlayer TunePlayer is a basic music player app aimed at showing how MusicServiceCompat and MusicBrowerCompat can be used to build a music playback

Abdulmalik 6 Nov 18, 2022
This is a local music player, imitates the UI of Netease Music client.

Introduce This is a local music player, imitates the UI of Netease Music client. The UI was built on Jetbrains Compose. Screenshot Features Parse and

Konyaco 4 Dec 10, 2022
This is a local music player, imitates the UI of Netease Music client.

Introduce This is a local music player, imitates the UI of Netease Music client. The UI was built on Jetbrains Compose. Screenshots Features Parse and

Konyaco 4 Dec 10, 2022
Auxio is a local music player with a fast, reliable UI/UX without the many useless features present in other music players

Auxio A simple, rational music player for android. FAQ | Licenses | Contributing | Architecture About Auxio is a local music player with a fast, relia

null 3 Mar 21, 2022
A simple library for parsing and playing links from YouTube, YouTube Music, Vimeo and Rutube is WebView without the need to connect api data services. Request caching is available now

Android Oembed Video A simple library for parsing and playing links from YouTube, YouTube Music, Vimeo and Rutube and others in the WebView without th

Alexey Mostovoy 32 Oct 8, 2022
Video Transcoder is an application which uses the open source program FFmpeg to transcode video files from one format to another.

Video Transcoder Do you want to encode videos on your phone into different formats, trim videos, or extract audio? Are you looking for a free solution

Branden Archer 358 Dec 30, 2022
NOVA is an open source video player for Android

NOVA: opeN sOurce Video plAyer Overview NOVA is an open source video player for Android. It consists in a fork of the original Archos Video Player Com

NOVA 876 Jan 2, 2023
Another local music player for Android built with Compose. Way too "local" so you likely won't need it.

AnotherAndroidLocalMusicPlayer Another local music player for Android built with Compose and media3 (ExoPlayer). Warning The app behaves strangly as i

oO0oO0oO0o0o00 0 Mar 13, 2022
Music Player application with you tube downloader

MusicHub Music Player application with you tube downloader Playing around with Kotlin compose the new UI framework Libraries & technologies used MVVM

Mohamed Almahdy 2 Mar 17, 2022
Radio Player - A Flutter plugin to play streaming audio content with background support and lock screen controls.

A Flutter plugin to play streaming audio content with background support and lock screen controls. Installation To use this package, add

Ayotunde abdulsalam 1 Mar 14, 2022