
Tempus is an open-source and lightweight music client for Subsonic, designed and built natively for Android.
This app works with any service that implements the Subsonic API, including:
- LMS - Lightweight Music Server - personal fave and my backend
- Navidrome
- Gonic
- Ampache
- NextCloud Music
- Airsonic Advanced
https://github.com/eddyizm/tempus/releases/tag/v4.6.0
My last release post was for v4.2.4 so I’ve included whats changed since that post.
Highlighting these 4 really lovely features that people have wanted for some time and were well received. Added screenshots for each below
What’s Changed
- feat: added regular playlist to home view

- feat: add heart to artist/album pages, fixed artist cover art failing

- feat: playerqueue fab allowing actions on full play queue Download

- feat: add play functionality to library folder/index items

- fix: player queue soft-lock
- feat: Add Catalan language
- performance: Refactor MediaService
- chore: Update Spanish translation
- chore: Update Italian translation
- chore: Add clickable Obtainium badge to README
- fix: refactor start queue to put the db writing in the background all , save to playlist, shuffle, clean and if enabled, load queue.
- chore: Update Polish translation
- fix: updates to starred syncing to user defined directory which was saving the tracks to internal storage and not a shared location
- fix: handle empty albums and null mappings
- feat: integrate sort recent searches chronologically
- chore: Update description_empty_title in English, Italian, Polish French and Spanish
- fix: checks preference and writes files externally, updates the ui for playerqueue downloads
note
app-tempo* <- The github release with all the android auto/chromecast features
app-degoogled* <- The izzyOnDroid release that goes without any of the google stuff.
As usual, any dev contributions appreciated as I am not actually a java/mobile dev, so my progress is significantly slower than those who do this on the daily.
Big thanks to all the folks who have been contributing. We have a new icon designed but I could use some help if anyone wants to do a PR to implement it.
Looks great, maybe this will convince me to setup a music server to free up space on my phone :) One question, does it support browsing by
album artistinstead of justartist? I organise my music with Picard which moves features to the artist tag, which breaks up albums when using just theartistview. Great work either wayI use Picard to tag my music as well but it is really only responds to the servers subsonic api response at this point. I would need to dig into it a little more to get you a definitive answer.
I seem to get an error when adding my server.
- 40 Wrong username or password.
Can you help me out?
Thanks!
What back end are you using? Depending on that, you may need to use the token and check the low security box. Edit: I just read your reply. I use LMS for you definitely need to set up the api key and check the low security box and you should be good. Also depends on how your set is, are you behind a reverse proxy? If so, what is the web server and your config?
I’m not affiliated with this, but perhaps it would make things easier to give server logs for that as well?
Using LMS (Lightweight Music Server) as backend.
Logs:
[error] [API_SUBSONIC] Error while processing request ‘/ping’, params = [{c=Tempus}, {f=json}, {s=c351596f-6256-46d8-b228-aca61ad34637}, {t=9142036433231be402221a13f5930c48}, {u=zingo}, {v=1.15.0}], code = 42, msg = ‘Provided authentication mechanism not supported.’
I’m currently using Ultrasonic with no problem.
It might be a bit out of scope (at least for now) but something I’d love to see eventually is the ability to pull down weekly recommendations from ListenBrainz and view them natively in-app. Even if they just linked to the YouTube video, it would make self hosting music feel like it had the last remaining benefits of streaming services.
You might be interested in Tapesonic then (a shameless plug). Streaming YouTube stuff is borked though (needs newer yt-dlp - you can try rebuilding the container yourself with a new alpine version); also grabbing non-library tracks is not supported for ListenBrainz for now (their API doesn’t return the URLs, I’ll work around this in the future; meanwhile you can still get the playlists of the stuff you already have in your library).
Thanks for the recommendation, it certainly seems like an interesting project, although it’s current capabilities are almost backwards from what I actually want. My current workflow is:
- Listen to my library in Navidrome via Feishin/Tempus
- Scrobble my listens to ListenBrainz
- ListenBrainz generates my weekly recommendations playlist (things not in my library)
- I listen to the playlist on the ListenBrainz site via YouTube embeds
- Any songs I like, I download high quality FLAC files of
using slskdby buying legitimately
Just being able to see my recommended songs in Tempus would remove some of the barrier of having to log in to ListenBrainz every week (which I often push to the bottom of my to-do list and end up missing recommendations). I don’t even really need to stream them directly in the app, just being able to see them and open the YouTube link would be a good start.
I get that this might be a bit of a niche way of doing things and everyone will have a slightly different idea though, I don’t really expect my exact personal workflow to be catered for by open source devs.
Seeing the recommendations in your Subsonic player (even the ones you don’t have in your library) currently works with last.fm auto-generated “playlists” (stations, as they call them). Streaming them is broken but easily fixable, I just haven’t gotten around to it.
YouTube links in the player would probably need updates to the OpenSubsonic specification and support on clients/servers - but I don’t really see why someone would want this if you could just stream those without leaving the player.
I’m working on a big update (multi-user support which required reworking almost everything, haha…) that’s been blocking me from doing basically anything else. After that goes live somewhere around January-February (along with updated yt-dlp which will fix streaming stuff from YouTube) one of the priorities will be implementing Bandcamp auto-search. This will allow better matching for last.fm recommendations and also matching non-library tracks for ListenBrainz.
I use the listenbrainz feature that you mentioned but it would be better if it was wrapped in a standard opensonic api endpoint I think. I agree that self hosting is lacking it and it seems there are lots of people creating different solutions. in addition, I’d like to get a bandcamp mix as that is where i tend to go explore myself.
I self host Navidrome, and after deploying one or two companion apps for Navidrome, I’m right now digging Substreamer. I have never heard of Tempus, so I have added it to the ‘apps to try’ list. One of the features of Substreamer that I really enjoy is the Playlist Builder. Substreamer apparently goes through your collection and pre-creates playlists based on commonalities like genre, tags, etc. Let’s say that you click on the Blues playlist. It then has the Blues master playlist broken down into All Time, Recent, 2010+, etc. After you listen to/edit the playlist, you can save it to Navidrome. I find this feature to be quite handy and it just works very well for me. Not only can I physically make playlists in Navidrome, but in Substreamer automatically as well.
Saying all of that to say, does Tempus have any such feature? Like I said, I’ve never heard of Tempus, which really doesn’t mean much, but it looks very well put together. I’m sure OP didn’t set out to make Tempus a Substreamer copycat, I just find that one feature of Substreamer very handy.
You can create and edit playlists on Tempus (currently working on overhauling this aspect of the app) however it does not have that playlist builder style thing. It can take your created playqueue and save it to a playlist. I’ve used substreamer in the past but it does not seem , at least on android, to have been updated in over 2 years now.
Well, shit…that snuck by me. Pity that. Seemed like a tight little package. At least everything is encrypted. But still.
love it! the tag view seems to return random tracks when connected to funkwhale, but dsub can return albums. would you be open to a PR that uses the album api/album list view for tags?
Do you mean genre tags? Mine are a hot mess so I don’t really use them, because of that, I have not really spent any time looking at that part of the code so I would need to review before what your proposed change would do.
This player is so close to replacing dsub/dsub2000 for me. But I really miss the background song cache in dsub. Tempus makes it more of an explicit action to download.
It’s something I’d like to add as part of the offline milestone, there’s a lot of stuff needing attention, currently working on some playlist stuff atm.
Appreciate your efforts.
Been using this for the past month since I found out Tempo development died.
Works great on my phone.
The Android Auto UI needs work though.
Edit: For classification, it’s the same Android Auto UI as Tempo, since this is a fork of Tempo. I just hope the Android Auto UI gets a fresh coat of paint at some point.
Also, didn’t realize this was posted by you @eddyizm
Thank you for all your hard work in keeping this project going!
no worries mate. I was going to mention the same thing about the android status. It is one of my milestones but as you have seen, the app needs work and I am slowly learning the code base as I go through sections at a time.
Just started working through the playlist milestone with this release, will spend some time here and Android Auto has a milestone where I am grouping all the tickets. I will get to it in the near future for sure. Proper Offline milestone might come before it though.
I did not realize this. Thanks for the heads up.
Thanks! Just started using this recently (been having problems with Substreamer), and so far, so good :)
Glad to hear! It seems like it has (and many other apps) have not had many updates recently.
Thanks for the update! Highly appreciated you picked up development after tempo died.
Links to lms, navidrome, gonic, ampache, nextcloud, airsonic, the previous post… But none to the thing you posted about?
Lol damn it, I had caught that earlier and started to edit the post and forgot to hit save. Thanks for the nudge!
Amazing. I’m off to donate to keep your stuff going. Great work.
Thanks mate!
I love it but for some reason on grapheneos it doesnt work with android auto
the github version has android auto/chromecast support. I don’t think it works with grapheneos - people use the degoogled version for that os and it doesn’t generally support the google libraries.
I don’t know much about android google libraries but I have Android Auto enabled and some apps work (maps, whatsapp) but tempus doesn’t (using github). I have to try with another sonic music player that allows it.
Anyway thanks for the effort and merry Christmas.
It does work if you use the github version, not the degoogled version. There’s also a few things you need to do detailed here in order for a non appstore app to work.






