very unstable UNOFFICIAL Spotify client for Android built on librespot-java + Compose

Overview

Jetispot

not so broken UNOFFICIAL Spotify client for Android

Note that this client will NEVER offer any kind of a downloader/offline caching. Don't ask, seriously. Also, a Spotify Premium account is REQUIRED.

Also, this project's Proguard rules are heavily optimized for the APK size. For now, it is approx. 2-3 megabytes.

What's working:

  • sign in (login/pass only)
  • "browse", "home", album, artist and genre screens (some of the blocks might be unsupported)
  • basic playback w/ Spotify Connect support (NO in-app UI yet)

What's in progress:

  • "Now Playing" UI
  • album support (prev/next/queue management)
  • better service (audiofocus handling, notification improvements)

Application stack:

  • playback: librespot-java as the core + sinks/decoders from librespot-android + Media2 for the mediasession support
  • preferences: Jetpack Datastore (proto)
  • UI: Jetpack Compose
  • arch: MVVM
  • DI: Hilt/Dagger

Credits:

  • librespot-java for the core API part and playback
  • librespot-android for sink and decoder source (in Jetispot they are rewritten to Kotlin)
  • Google for Jetpack/Hilt
  • moshi and moshix for the undocumented API JSON parsing
Comments
  • Never Logs In

    Never Logs In

    The app stays still and does notching each time I try to login. I have Premium, using the right creds, no VPN or anything. The Android 13 Media Player appears in the notification shade, but that's it.

    opened by michaelmyersisoutside 2
  • Redesigned Now Playing / playing forwards

    Redesigned Now Playing / playing forwards

    Hey there, V11 with the redesigned Now Playing looks horrible. It's just a blank screen with a small album art. The Media Control Line where you can move the song back / forward is also not working.

    Keep Up the good work!!!

    opened by Taker18 2
  • No time/progress bar scrolling on

    No time/progress bar scrolling on "now playing"

    Hi, when I listen to music, I cannot scroll through the track using the time/progress bar on the "now playing" screen. The time/progress bar in the notification works fine.

    If it helps: Pixel 4a Android 12 CalyxOS 3.8.0

    Thanks for looking into this.

    opened by linesquarecube 1
  • Liked songs not showing

    Liked songs not showing

    I've been having this issue for a long time and I wasn't be able to fix it by my own, so I'm opening this request.

    Debugging the problem, I see that in the funciont get of the SpMetadataDb file, the app tells me that I can't put a value if it's null.

    https://user-images.githubusercontent.com/60316747/209315321-220f64dc-4bc8-4051-abac-325a2cc148c1.mp4

    opened by BobbyESP 1
  • App update (Repositories merging)

    App update (Repositories merging)

    I've been making a lot of changes from two weeks to now. I leave here a list of the things that I've made:

    • Home page UI fix (Home page shortcuts now are full clickable, now they're not adjusted to text)
    • Lyrics well syncronized (also added no lyrics found)
    • Moved the project to Kotlin DSL
    • Fixed searching (now everything works fine)
    • Moved hard-typed text to R.string declarations
    • Splitted the builds in different ABIs (arm-v8a. armeabi-v7a, 86_64x, 86x)
    • Deleted the option of Very High audio quality in non-premium accounts
    • Added localization to the Spotify end-points
    • Now the Listening History shows it all (no more unsupported Id's)
    • Fixed that clicking the "More options" button in full screen player that stopped or played the track.
    • Added Spanish translation
    • Made a better README
    • Added bug reporting and feature request templates to GitHub issues

    (I think i wrote all haha)

    opened by BobbyESP 0
  • Playback continues on phone after sudden Bluetooth loss

    Playback continues on phone after sudden Bluetooth loss

    Hi, when I use my Bluetooth headset with Jetispot and put it out of my ears into the charging case, sometimes the playback automatically starts on the phone. The only possibility to stop the playback is to force Jetispot to stop via setting menu.

    This behavior is consistently reproducible if I am listening to music with Jetispot on my phone and connect my laptop to the headset without stopping the playback on my phone first. With other Apps like AntennaPod the behavior is as expected - playback on the phone stops.

    If it helps: Pixel 4a Android 12 CalyxOS 3.8.0

    Thanks for looking into this.

    bug 
    opened by linesquarecube 0
  • THANK YOU!

    THANK YOU!

    Just here to leave a big thank you for the effort you put in this project :smiley:

    I'm really searching a long time for a FOSS Spotify Client and this is by far the best thing I came across - even in this state.

    Unfortunately I'm not a developer and cannot help you directly, but if you want to translate the app in the future I'm happy to help - also with some coffee :wink:

    Keep up that great work :heart:

    opened by linesquarecube 0
Releases(poc_v11)
  • poc_v11(Aug 5, 2022)

    v11

    • redesigned "now playing", inspired by modern a/b spotify now playing page
    • implement queue showing
    • rewritten navigation system (should be slightly less in code size)
    • android auto (very WIP)
    • implemented animation when sorting in "liked songs"
    • fixed sort by artist in "liked songs"
    • applied aggressive kotlin nullchecks removal by guardsquare
    • updated kotlin, compose and libraries
    • a few other fixes and optimizations

    v10

    • reworked metadata fetcher
    • implement podcast show screen
    • several small bugfixes and library updates
    Source code(tar.gz)
    Source code(zip)
    jetispot_poc11.apk(5.01 MB)
  • v9_poc(Jun 6, 2022)

    v9:

    • implement extended metadata caching done via Tencent’s MMKV (ultra fast, but adds to the APK size)
    • implement storage manager screen
    • various under-the-hood fixes and improvements
    • change icons to rounded style
    • slightly improve Now Playing
    • updated libraries

    v8:

    • rewritten navigation system (slight performance improvements)
    • major performance improvements in navigation bar offset calculation
    • fixed autofill (proper focus + correctly fills both fields)
    • support rootlist (liked playlists) pub/sub updates
    • migrate remaining ExtendedMetadata requests to new SpMetadataRequester API (more stabler + metadata will be cacheable in the future)
    • other fixes and improvements
    Source code(tar.gz)
    Source code(zip)
    Jetispot_PoC_v9.apk(5.27 MB)
  • v7_poc(Jun 2, 2022)

    v7.1:

    • fixed playlist loading due to R8 stripping protos
    • implement autofill and focus management for auth screen
    • fixed playlist loading if user has no avatar
    • fixed no placeholder and image «pop-in» in playlist header

    v7:

    • implement playlist owner, total duration and like count in header
    • fix loading of playlists with duplicate or local tracks
    • implement prototype of «Now Playing» screen: mostly buggy, only «Play»/«Previous»/«Next» buttons work
    • optimize metadata fetching for playlist loading
    • support for individual subscriptions in «View current plan» screen
    • removed gradient in large playlist header
    • improve margins for action card in home

    v6:

    • improve toolbar rendering in all sections
    • much better support for genre pages on «Browse» page
    • support for showing radios for «Radio» category on «Browse page»
    • support for generating and sharing blend invitation link («Browse» -> «Made for you»), ability to accept invites in Jetispot is in development
    • deeplink support (open.spotify.com should partially work for now)
    • implement facets system for DAC dynamic home (add «Music» and «Podcasts» filters)
    • singleTop launchmode, fixes duplicating app state when clicking from notification
    • much improved UI for playlist headers
    Source code(tar.gz)
    Source code(zip)
    Jetispot_PoC_7.1fixfix.apk(3.49 MB)
  • v5_poc(May 27, 2022)

  • v2.1_poc(May 4, 2022)

  • v2_poc(May 4, 2022)

    • migrated home to new DAC engine
    • implemented listening history (beta)
    • implemented «Plan overview» and «All plans»
    • updated librespot from 2021 version to latest DEV snapshot (fixes random crashes)
    • rewritten API layer
    • a lot of UI fixes and improvements
    Source code(tar.gz)
    Source code(zip)
    Jetispot_PoC_v2.apk(3.14 MB)
  • v1_poc(May 1, 2022)

    plays music, shows media session, handles audio focus, half-implemented UI, no "Now Playing" except for miniplayer and random crashes from librespot

    what's more? Android 12+ dynamic theming support, fully working settings page except for logouts, 90% implemented "Home" screen except for some podcast entries

    you can use it right now... but why?

    PREMIUM REQUIRED

    Source code(tar.gz)
    Source code(zip)
    Jetispot_v1.apk(2.87 MB)
Owner
iTaysonLab
mostly android stuff
iTaysonLab
Recreation of Spotify UI with Jetpack Compose

SpotifyUiJetpackCompose Recreation of Spotify UI with Jetpack Compose. Screenshots: License I don't own any of the graphics used in this project (Spot

Bogomil Stoyanov 9 Jun 19, 2022
Scrobble is a wip music tracking and browsing app. It uses the Lastf.fm and spotify APIs to deliver data. The whole UI is created using Jetpack compose.

Scrobble (WIP, name not final) Scrobble is a wip music tracking and browsing app. It uses the Lastf.fm API to realize music tracking and browsing and

Niklas Schnettler 55 Oct 31, 2022
Spotify Demo Desktop app using Jetpack compose

Compose Spotify Desktop Declarative UI A Spotify demo app for desktop using Jetpack Compose UI toolkit Demo Home Search & Detail Jetpack Compose Jetpa

Gurupreet Singh 619 Dec 31, 2022
SpotifyCompose - Spotify UI written on Jetpack Compose

SpotifyCompose - Spotify UI written on Jetpack Compose

Ivan Gospodarik 36 Dec 28, 2022
Advanced coroutine-based Spotify API wrapper for Kotlin.

Kotify Advanced coroutine-based Spotify API wrapper for Kotlin. Contens Todo Getting started TODO Rate limits handling. Kotify Http Proxy. Better docu

Juan Luis Caro 4 Jan 2, 2023
📱 WhatsApp clone project demonstrates modern Android development built with Jetpack Compose and Stream Chat SDK for Compose.

This is a WhatsApp clone app built with Jetpack Compose and Stream Chat SDK for Compose. The purpose of this repository is to demonstrate below: Imple

Stream 689 Dec 25, 2022
This is a sample app(For beginners - App #2) built using Jetpack Compose. It demonstrates the concept of State Hoisting in Jetpack Compose.

JetBMICalculator This is a sample app(For beginners - App #2) built using Jetpack Compose. It demonstrates the concept of State Hoisting in Jetpack Co

BHAVNA THACKER 3 Dec 31, 2022
Jetpack-compose-uis - A collection of some UIs using Jetpack Compose. built using Katalog

Jetpack Compose UIs This is a collection of some UIs using Jetpack Compose. It i

Mori Atsushi 3 Dec 15, 2022
A LibrePhotos android client written using Jetpack Compose and all the latest Android technologies

UhuruPhotos. A LibrePhotos client UhuruPhotos is an Android client for LibrePhotos written using the latest Android technologies, like Jetpack Compose

Savvas Dalkitsis 190 Jan 3, 2023
A 2FA android client based on Jetpack Compose

EzLogin A 2FA android client based on Jetpack Compose Features Material Design Import via QR Code Technology stack Jetpack Compose Hilt Navigation Roo

RERERE 1 Oct 27, 2021
A 2FA android client based on Jetpack Compose

EzLogin A 2FA android client based on Jetpack Compose Features Material Design Import via QR Code Technology stack Jetpack Compose Hilt Navigation Roo

RERERE 1 Oct 27, 2021
An Android imageboard client with the focus on maximum performance, fully written with Jetpack Compose

This project is an experimental playground to try implementing an application entirely with Jetpack Compose without using the old Android UI framework.

Dmitry 31 Dec 30, 2022
Jetpack Compose app gets data from REST API using KTOR Client. Clean Architecture, Dependency Injection...

posts-ktor-client Jetpack Compose app gets data from REST API using KTOR Client. Clean Architecture, Dependency Injection... Posts KTOR Client Demo ap

Raheem 12 Dec 12, 2022
JetFlix - A clone of Android NetFlix app in Android built using Jetpack compose.

JetFlix A clone of Android NetFlix app in Android built using Jetpack compose. This sample app showcases the following: MVVM Architecture (ViewModel +

Pushpal Roy 40 Dec 6, 2022
Add Cloud Firestore to your Android apps built with Jetpack Compose

JetFirestore Add Cloud Firestore to your Android apps built with Jetpack Compose Now with Jetpack Compose you can easily add Cloud Firestore to your e

Pankaj Rai 13 Oct 26, 2022
A 7 and 14 segment display for Android built with Jetpack Compose

SegmentedDisplay A 7-segment and 14-segment display for Android build with Jetpack Compose Customizable Highly customisable. Hook up to a data stream

Rab Ross 5 May 23, 2022
From Swedish "Öppettider", an app to quickly access your favorite places' opening times. Built to practice Android development and try out Jetpack Compose.

Appettider From Swedish "Öppettider", an app to quickly access your favorite places' opening times. Built to practice Android development and try out

Arianna Masciolini 0 Dec 6, 2021
Morph is an Android library, written in Kotlin, built to work together with Jetpack Compose.

Morph Morph is an Android library, written in Kotlin, built to work together with Jetpack Compose. It allows you to transition any view to another vie

Menno Vogel 12 Jul 10, 2022
An Android / Wear OS app built with Jetpack Compose to search for definitions of English words

EnglishDictionary A simple Android / Wear OS app built with Jetpack Compose to s

daniil 4 Sep 21, 2022