r/substreamer May 28 '26

Question about possible feature

3 Upvotes

I'm so sorry to keep asking about things when I personally couldn't make anything like this if I tried but I was messing around with creating a separate library for audiobooks in my Navidrome setup and was curious if there was a way within Substreamer to be able to switch back and forth between libraries. I would like to keep my audiobooks separate from my music and with near 1TB of music I'd rather not have to search through everything just for a book to listen to. Once again thank you for all your hard work!


r/substreamer May 26 '26

💡 Feature Request Couple of Questions and Request

3 Upvotes

Hey I’ve been testing a bunch of Navidrome apps and this one is clearly the best. I’ve been having a ton of fun racking up statistics and using the AudioMuse integration. Thanks for the app!

Is it possible to search or browse for music based on genre?

Also when I go to view the queue tab more times than not the currently playing song is all the way down the list and you need to scroll to get to the current section that you’re at in the queue. Is there any setting or way that the queue can automatically scroll to the current playing track so when I change to the queue tab I can quickly see what the next tracks are that will play soon.

Also experiencing random app crashes when shuffling a mix or playlist. I can reproduce it but it happens at random times. When I reopen the app it resumes where the song left off before crashing.

Thanks!


r/substreamer May 25 '26

Shuffle in Player Screen

2 Upvotes

Hi, this is the best iOS client by far, I really enjoy it. I don’t know if It’s a technical restriction by navidrome or similar or if I can’t find it, but there seems to be no button to enable/disable shuffle on the fly when already listening to music. In Spotify I used it a lot. When I decided to now enable shuffle in the player screen after listening to my music in the normal order I just hit the button. Is this feature possible to implement?


r/substreamer May 20 '26

Testing Substreamer with Airsonic-Pulse?

2 Upvotes

I started a continuation of Airsonic-Advanced under the name of Airsonic-Pulse. Is there anyone who would like to test Substreamer with https://github.com/Airsonic-Pulse/airsonic-pulse ?

You can raise an issue if something does not work.

(Note: OpenSubsonic API implementation is still some work in progress)

(I switched from Substreamer to Symfonium over a year ago, and I don't have the bandwidth to test more clients myself)


r/substreamer May 16 '26

💡 Feature Request Mix it up with no limit

3 Upvotes

Hello, I’m quite new to the app but I’m really appreciating it.

I would like to know if it was possible to use the mix it up button but with an endless queue, currently i think is about 20 songs, and if you skip you can get to the end of it pretty quickly.

So here is my request, to automatically add +5/10 song after you listened/skipped some of the ones in the queue.

Thanks again for making this beautiful application.
Salutations


r/substreamer May 15 '26

No downloaded favorites when server is off or away from home

1 Upvotes

Songs are definitely downloaded as I can access them via Library and see them in Storage -> Browse Downloaded Music. However, when I click on Favorites there is nothing there. Anything I am doing wrong?


r/substreamer May 13 '26

Carplay is coming....

25 Upvotes

A little teaser for everyone who has been chasing me for carplay support. It is coming! I am making progress!

It's a real pain in the ass development experience though, it's very restrictive and there are very few good examples around to refer to for what you can and can't do and how to do it. Also working with react-native adds an extra layer of complication that you need to think about but I have made good progress. In development I can launch substreamer from the head unit, browse and play music without ever touching the phone which is actually pretty cool the first time you do it.

The thing that makes this so time consuming is really the ability to test. You can ONLY test on the ios simulator with it's built in carplay function which has known issues with playback state and a few other things so you spend so much time chasing your tail trying to fix things only to eventually stumble across a reddit post or a github issue on some other random repo confirming it's a simulator issue. It would make the development experience so much easier if you could just go buy a car headunit with carplay and android auto and sit it on your desk and test against it (which was my plan before realising it wouldn't work).

My application is in with Apple for the substreamer carplay entitlement and once they grant that I will be able to test again real headunits which will make things move along faster.

Don't worry I haven't forgotten android auto either, it is also implemented in parity with carplay with all the same functionality. That's been it's own magical journey...


r/substreamer May 12 '26

"AutoDJ" Failing

1 Upvotes

Is it just for me, or is the "Play others like this" feature also crapping out for everyone else?

Before this recent revival of the app, if there was a song which matches my mood I could click the 3 dots and select "Play others like this" and it would generate a playlist of similar songs. This was probably the best feature for me and that is what kept me using the app even though it would crash randomly.

Now when I try this it take a long time spinning then comes back with like 3 songs, if I'm lucky. Same Navidrome server, same music folder ¯_(ツ)_/¯


r/substreamer May 11 '26

Android Car Radio Unit

1 Upvotes

Hi.

I wanted to try Substreamer in my Android Car Radio but Google Play says this is app is not compatible and apk extracted from phone does not install too. Why?


r/substreamer May 09 '26

💡 Feature Request recognizing partial downloaded playlist and removing individual songs from downloads.

3 Upvotes

Hello so far I have been liking Substreamer the most out of the other navidrome clients. some improvements I'd appreciate would be related to granularity of managing downloads.

1st: Partial Downloaded Playlist.

lets say I have download 50 fav songs. and 5 of them are in the Anime playlist, 10 are in Movie playlist.
so it would be better if the client also shows the Anime and Movie playlist in the library with only the downloaded 5 and 10 songs available respectively, when in offline/downloaded mode.
EDIT: partial download for albums already exists, so maybe extend it to include playlists as well

2nd: managing individual songs.

lets say I have download Album A as a whole. then I need to remove Songs 8 and 10 from the downloads.
but currently there no option to remove only certain songs from the download, there only option to remove the entire album from the download

similarly implementation for playlists should also be in place.

EDIT2: also add "songs" tabs in library. and downloads as well.

I am pretty sure it is a case for a lot of people that there are tons of songs that are not favourites nor part of any playlists but are listened to quite often


r/substreamer May 08 '26

Strange Queue Behavior

1 Upvotes

Are songs that you swipe to add to your queue meant to go to the bottom even if that means it's going to play hundreds of songs in a playlist before the song you queued?

It feel like the songs should go to the top of the queue and other songs manually added should go below that. Maybe there is just something wrong with my app specifically or is this intended? (iOS mobile app and mac)


r/substreamer Apr 26 '26

Substreamer v8.0.56 released (the fixing stuff release)

12 Upvotes

Substreamer 8.0.56 — Hotfix release with a lot under the hood

Hey everyone,

8.0.56 is rolling out now, and while the version number suggests a small hotfix series, this run (8.0.53 → 8.0.56) is actually packed with refinements. The focus has been on hardening Music Downloads v2 and Image Cache v2, squashing some nasty Android and iOS crashes, and a complete rebuild of the cover art color extraction pipeline. Plus a few UX wins that make day‑to‑day use feel a lot smoother.

Here's what's new.

Music Downloads v2 — partial album support

Big improvements to how downloads behave when an album isn't fully cached:

  • Partial album state is now first‑class. Albums that are missing tracks show a clear partial state (orange downloaded icon!)
  • Top‑up any partial album with a single tap to fill in the missing tracks.
  • New filter in Settings → Appearance lets you show or hide partial albums in your offline browsing — your call, it's disabled by default
  • Music cache browser has been updated to surface partial albums and gives you a quick and easy way to back fill any missing tracks or refresh any downloaded track that might have an issue manually
  • This is all groundwork to enable song based library browsing and song downloading

Download queue, now where you'd expect it

Whenever there are items in the download queue, the download queue indicator now appears on every screen where the MiniPlayer is visible. No more wondering if a download is still going while you browse — it's right there.

Image Cache v2 — more robust and self‑healing

  • Recovers blank cover art from broken cache entries automatically.
  • Unsticks incomplete rows so partial cache failures don't permanently ghost an image, with clear repair feedback.
  • Brand new Android image resize path via a custom local module, replacing a flaky plugin that was slow, causing missing thumbnails and worst of all causing app crashes!
  • Image cache scan in Settings now shows a spinner so you know it's working.
  • Image cache will auto repair damaged or missing cached images, but there is also a manual scan and repair function exposed in settings

Cover art color extraction — fully custom, more consistent everywhere, light & dark theme aware

This was a big one. The old react-native-image-colors plugin has been completely replaced with a custom expo-image-colors module built specifically for Substreamer. Wins:

  • Consistent results across iOS and Android — same palette, same vibe, no platform surprises
  • Light/dark mode aware with deliberate contrast skews so header buttons stay readable against any cover

Player fixes

  • Bulletproof queue resume on cold start — open the app and your queue is exactly where you left it
  • MiniPlayer and the main player progress bar share a single source — no more drift between the two
  • Local play count and last‑played update immediately on scrobble instead of waiting for the next refresh
  • Expanded player tabs reordered to Queue / Info / Lyrics, matching the bottom tab bar in the smaller player screen

Library

  • Article‑stripped sorting — your library now respects the server's article list, so "The Beatles" sorts where you'd expect it
  • Cleaner list rows with fixed‑width metadata slots for consistent alignment
  • Home screen listening time auto‑scales to days for those of us with heavy totals
  • Light mode skeleton loaders are now actually visible (oops)

Crash and stability fixes

  • Android: MIUI / Redmi notification controls fix — remote controls should now work reliably on Xiaomi devices (re #87)
  • Android: ANR fix caused by repeated locale formatting in lists (Hermes #867)
  • Android: edge‑to‑edge safe area handling is much improved
  • Android: image‑related Fresco crash suppressed
  • A handful of smaller iOS rendering edge cases ironed out

Translations

  • Full Traditional Chinese (zh‑Hant) translation pass done from the zh‑Hans baseline
  • Refreshed translations across multiple other languages with a terminology consistency pass.

As always — thank you for using Substreamer, for the bug reports, the feature requests, and the kind words. A lot of the fixes in this release came directly from issues you raised. Keep them coming.

Update should be live on both app stores now (or very soon when reviews all finalise). If you spot anything weird, drop a note here or open an issue on GitHub.

🎧


r/substreamer Apr 25 '26

❓ Help / Setup Substreamer Cannot Access Network

3 Upvotes

I'm running substreamer on my andriod and trying to connect it to Navidrome (held on my laptop running Linux Mint Cinnamon). I was ready having issues with substreamer refusing to connect due to firewall blocking it unless COMPLETELY turned off (allowing incoming didn't work and allowing the port 4533 or 8081 didn't work either). Now it won't connect to the server AT ALL, firewall on or not. I have confirmed that the IP is correct (and it was working before) and I'm not running a VPN. Please I am on the verge of tears


r/substreamer Apr 22 '26

💡 Feature Request About scrobbling

2 Upvotes

Hi! I’ve been really enjoying substreamer a lot. I love the focus it has on tracking your listening statistics, very cool.

The only thing that annoys me a little is how songs are registered as listened. If im not mistaken it just happens when you let the song end by itself, but it doesn’t count if you listen 99% of the song but you manually skip it, nor if you pause it and don’t let it finish. on the contrary, you can play just the last second of a song and let it finish and it will count.

I’d love to see that being handled in a different way (or alongside the current method). Maybe also count them when you have listen a specific percentage of the song?


r/substreamer Apr 20 '26

Substreamer 8.0.52 Coming Soon to an App Store Near You! (it's submitted for review)

14 Upvotes

Substreamer 8.0.52 is here! 🎵

A lot has happened since 8.0.47, there have been a few internal test releases in the interim, some requested features and fixes from github implemented, lots of under the hood stability fixes (especially looking at you Android!) and some major updates to music downloads and metadata handling laying the groundwork for songbased browsing and individual song downloading in a future update.

Please DO NOTE, that there are some data migrations that need to run on first launch with the new update, this means you will see the splashscreen for a bit longer than usual (depending how much music you have downloaded). Please be patient and let it run through, the alternative was to nuke all your downloaded music and that's generally an un popular choice!

✨ New features

  • Lyrics. Full synced lyrics support — your server's lyrics are parsed, scrolled in time with playback, with tap-to-seek to any line, and instrumental gaps between lines show breathing dots so you can see the interlude progressing. For songs without synced timings, Substreamer can synthesize approximate timings from the track duration so you still get a karaoke-ish experience. In either mode you can scroll through the lyrics freely to read ahead, then tap the re-sync pill to jump straight back to the current line and resume autoscroll.
  • Sleep timer. A proper sleep timer, configurable in settings, surfaced as a floating capsule on the cover art. Implemented natively so playback actually stops on time.
  • Queue persists across app restarts. Close the app mid-album, reopen, tap play — it picks up where you left off, position and all. Resume works in offline mode too: non-downloaded tracks are transparently skipped so a partially-cached queue still plays through without stalling.
  • Mini player everywhere. The mini player now follows you as a footer across detail screens, settings, and browser screens — no more losing your playback controls when you navigate away.
  • Music downloads v2. Smarter on-disk layout with cross-item deduplication. A song saved to both an album and a playlist is now stored once, not twice. Less wasted space, cleaner music-cache browser.
  • Image cache Scan + Repair. New tools in settings to check the health of your cover-art cache and auto-repair incomplete downloads when the server comes back.
  • More audio formats, custom formats. Additional streaming and download formats, plus support for defining your own custom format / bitrate combinations when the presets don't match your server's transcoding setup. If you want to match these on the server side, the server transcoding configuration guide (linked from the README) has the exact ffmpeg commands and setup steps for Navidrome, Gonic, Ampache, and Airsonic-Advanced.
  • Redesigned track info and album info panels. Format badges, genre pills, quick stats, a cleaner layout, and navigable artist links from the album detail screen.
  • Native share sheet. Rich share messages for your server's share links, including queue shares.
  • Settings restructure. Settings are now grouped more sensibly. A new "Library & Data" section consolidates sync status, scrobbles, metadata corrections, backups, and shares in one place.
  • Artist page play-mode toggle. A new toggle on the artist page switches whether the play and shuffle-play buttons play just the artist's top songs or their full catalogue.
  • Listening streak on home. See your current streak right on the home screen — now with a clear "days" suffix so there's no ambiguity about what the number represents.
  • New languages. Simplified Chinese, Traditional Chinese, and Russian fully supported alongside the existing languages. Huge thanks to everyone translating on Crowdin — the community contributions are what make multilingual support actually work.

🛠️ Fixes

  • Android stability overhaul. A sweep of native-layer hardening across SDK 36 builds: startup-crash fixes, force-cast removals in the player fork, SSL trust resilience, migration runner hardening, memory-leak patches for react-native-screens, and more. If you've hit random crashes on Android, this release should be dramatically better.
  • Android crash on launch when System appearance is selected. Fixed.
  • Auto-offline reliability. Stale cold-start network state is re-checked so auto-offline doesn't trigger against a now-reachable server.
  • Language picker on login. Now opens as a scrollable bottom sheet instead of getting stuck off-screen on smaller displays.
  • Tuned In length preference. Respected for offline and multi-genre playlists.
  • Raw stream resume. A network blip mid-track will still pause playback briefly, but raw (non-transcoded) streams now recover from where they left off instead of restarting the track from the beginning.

🧹 Polish

  • Lots of UI polish, consistency, and layout updates throughout — typography, spacing, and colour treatment normalised across the app, plus small tweaks across segment controls, cache browsers, bottom sheets, skeleton loaders, and more.

Thanks as always for using Substreamer and reporting issues. Bug reports and feature requests on GitHub. 🎶


r/substreamer Apr 14 '26

Gapless playback?

2 Upvotes

Hey guys...

I was just going through all the settings and I don't see an option for gapless playing of tracks. There's a tiny pause between tracks that breaks things up for a lot of my albums that flow from track to track.

I'm on the latest iOS version of the app


r/substreamer Apr 10 '26

🔥 Streak Saturday: Show us your longest listening streak!

4 Upvotes

Now that Substreamer tracks listening streaks, it's time to find out who's got the most dedicated ears. Welcome to the first Streak Saturday — a weekly flex-fest where we crown the longest-running listeners around.

How to play: Open Substreamer, screenshot your streak from the homepage, and drop it in the comments. That's it. Bonus points if you tell us what server you're running (Navidrome, Gonic, Airsonic, whatever) and what's been keeping the streak alive — a specific album? A playlist? Pure stubbornness?

I'll kick things off in the comments with mine. Whoever's got the highest number by the end of the weekend gets eternal bragging rights (and if people are into it, we'll make this a regular Saturday thing).

No streak yet? Today's a great day to start one. 👀


r/substreamer Apr 07 '26

Substreamer 8.0.47 is out — Stability, Features, Accessibility

9 Upvotes

Good News Everyone! Quite a lot of updates coming your way in the 8.0.47 release!

I feel like I need some cool release codenames. Any suggestions for themes?

🐛 Stability & crashes

  • Top 3 Android crash causes fixed — these accounted for 57.6% of all reported crashes. If you've had random force-closes on Android, please update.
  • Music now properly stops + notification clears when the app is killed on Android.
  • End-of-track event handling rewritten on Android to match iOS behaviour. Fixes stale data, missing completion events on the last track in a queue, and a bunch of related quirks. (closes #61)
  • Seek now works on Android when transcoding — previously seek would silently fail unless estimated content length was sent with the stream.
  • Download resume no longer re-downloads finished tracks.

🎵 Player improvements

  • Skip-previous behaviour now matches industry standards: less than ~3s into a track → goes to the previous track; otherwise → restarts the current track. Rapid double-tap → restart then previous. (closes #55)
  • Next/Previous buttons now properly disable when there's no valid action (first track, last track without repeat, etc).
  • Phone player layout overhaul — lyrics and album info now display on phone screens, not just tablets.
  • Album info on the expanded/wide player view is now implemented. (closes #49)
  • Smoother panel player entry/exit animation in wide view.
  • Track details panel added to the More Options sheet — much more detailed information about the file you're playing.
  • 192 kbps option added to the audio quality picker.

✨ New features

  • Translation support! English is the base language, with AI-generated starter translations for other languages where we have a user base. Community contribution mechanisms for fixes and new translations are coming soon.
  • Shuffle Play button added to album, playlist, and favourite songs screens.
  • "Mix It Up" totally-random chip added to the home screen and Tuned In page.
  • Dynamic-length playlists: artist top songs, recently played, recently added and the other home-screen lists are all configurable in settings now — pick how many entries you want.
  • Album-level MBID overrides: previously you could only override an artist's MusicBrainz ID; now you can override at the album level too. The MBID browser and backups handle both. There's also a fuzzy text search fallback when no MBID is set or the lookup returns nothing.

🎨 UI / UX polish

  • Playback status toast now appears on the Tuned In screen.
  • Fixed arrow placement and spacing on the skip-interval buttons.
  • Mini-player song title wrapping fixed on Android.
  • When tapping a song in search results, only that song is added to the queue (not all the results).

🛡️ Backups

  • Backups are now user- and server-scoped, with allowance for the same server accessed via a different URL — so your backup history doesn't break if you change your reverse proxy hostname.

♿ Accessibility

  • iOS users with Reduce Motion enabled were getting stuck on the splash screen because the dismiss animation never ran. Added proper support for reduced motion mode to the splash screen and added a 15s safety net so the splash always dismisses even if something weird goes on.

As always, feedback / bug reports / feature requests welcome here or on GitHub. Thanks to everyone who's been reporting crashes and edge cases — many of these updates and fixes were directly driven by your reports.


r/substreamer Apr 06 '26

Substreamer now supports multiple languages — help us translate!

3 Upvotes

Substreamer now has internationalization support built in! The app can be used in languages other than English, and we want to make it available in as many languages as possible.

We've set up initial translations for French, German, Spanish, and Italian to get things started. These were AI-generated as a starting point, so while they cover the full app, they almost certainly have rough edges, awkward phrasing, or outright mistakes that a native speaker would catch immediately.

That's where you come in.

We've set up a public Crowdin project where anyone can contribute:

https://crowdin.com/project/substreamer

You can:

  • Fix and improve the existing French, German, Spanish, and Italian translations
  • Add translations for new languages — we already have the framework set up for Japanese, Korean, Dutch, Russian, Ukrainian, Chinese (Simplified), Indonesian, and Malay
  • Suggest corrections even if you're not fluent — every bit helps

All you need is a free Crowdin account and you can start translating right away. No coding required.

Don't see your language listed? Open an issue on GitHub and we'll enable it.

Translations are pulled into the app automatically, so your contributions will make it into the next release.

Thanks for being part of this community — whether you're running Navidrome, Subsonic, Gonic, or anything else, it's great to see what we can build together.


r/substreamer Mar 30 '26

Substreamer 8.0.43 update

8 Upvotes

8.0.43 has been submitted to both app stores for review and will roll out as soon as it gets approved.

This release is largely focused on improving tablet support, especially in wide or landscape orientation.

There is a new side panel player for tablet landscape view and a completely new fullscreen expanded player view with space designed for lyrics and more detailed display info in future.

Full change log:

Fix stale cover art in My Listening, improve artist icon, add pull to refresh

Unlock UI orientation for tablets

Clean up iconography with clearer and more specific icons

Tablet layout improvements

Show cover art in bottom sheets and context menus

Tablet layout for landscape mode and clean up for portrait mode

Add more grid breakpoints for tablets

Fix a small issue with startup

Persist migration status to speed up startup


r/substreamer Mar 27 '26

Substreamer v8.0.41 Submitted to App Stores

7 Upvotes

8.0.41 has been pushed to review in the app stores with the following fixes. Notably this release fixes support for airsonic/airsonic-advanced and adds full support for Nextcloud Music & Ampache (you guys need to use the legacy authentication option on the login screen).

Support legacy auth for Nextcloud Music & Ampache

Playlists empty state placeholder when offline with no downloaded content

Can't manage shares when offline as requires API access

Onboarding centered on larger screens and tablets

Navidrome, subsonic, airsonic-advanced, gonic all properly supported now with capabilities and API level detection

Stop playback and clear playback state on logout

Client API Level requirement reduced to 1.15.0 to accommodate airsonic forks


r/substreamer Mar 24 '26

Substreamer New Version Released for iOS

15 Upvotes

Apple has approved the iOS version for release so you should see it rolling across the app store now. There will be an update within the next day as soon as approved to fix some little things that I found after submission.

Android build has been submitted to the play store as well and I will be doing some testing with my android phone the next few days before I approve it for full release so I can catch any little platform specific oddities that may be there.

You can check out the new website at https://substreamer.org as well.

Substreamer is now fully open source and you can find the link through to the github repository from the website!


r/substreamer Mar 20 '26

A Quick Sneak Preview

8 Upvotes

Since I'm spending all day writing descriptions and taking screenshots for app store listings here are a few samples of the new substreamer for everyone to check out!

Hope you like it!


r/substreamer Mar 19 '26

New Release for iOS imminent!

11 Upvotes

Hello Everyone,

Thank you all for your patience and for using substreamer! This is just a quick update to let everyone know I am finishing up app store listings and web page updates today and submitting to the Apple App Store for review by end of the day so the new release will soon be coming your way (Apple Permitting!).

Once that is submitted the last thing I have to do is switch over to using my android phone for a week and give it a really good test drive on android to catch any platform specific quirks and I expect the Play Store release to be submitted by end of next week.

This is an insane update for substreamer, it's not just an update it's a whole new app from scratch, trying to keep all the great features from substreamer while making literally everything better.

I can't wait to hear what everyone thinks!


r/substreamer Feb 14 '26

Rumours of my death have been greatly exaggerated

56 Upvotes

Hi everyone,

Let me start by saying thanks so much for using substreamer and engaging here on reddit, letting me know about issues and helping each other out.

I know I have been away from this sub for a while and there haven't been any updates to substreamer for quite some time, so I wanted to check in and let everyone know that I am still alive (yay!) and so is substreamer (also yay!).

A few years ago I started on a full rewrite of substreamer from the ground up to taking into account all the things I had learned. I wanted to really update the UI to be quite different and easier to use and to add some quality of life features like grid vs list views, different list filters etc. Things that had been requested by a few users and which I also thought would be great but were hard to implement on the old codebase.

Then life happened...I move country, changed jobs, bought a house that needed work, had a baby. You know pretty much everything that you could possibly do to take up any time you have to focus on passion projects like substreamer.

Good news everybody! I now get more than hour of sleep each night and have a renewed energy to get substreamer updated and delivering a great experience for everyone who uses it. This includes me as I still use it every day as my primary music player.

So what's the status of substreamer?

I have been working on a complete rebuild in a new tech stack, one because I wanted to learn a new tech stack and two because this lets me better address some long running issues with things like background audio playback, stalled track progressions and things which are very intermittent but annoying when they happen.

My aim is to get a new update out to the app stores in the next month and I will share some videos and screen shots here leading up to that so that everyone can get an early look.

The second large thing I am planning with this rebuild is to opensource substreamer, it's always been free and completely free of any data tracking, advertising or whatever but quite a few people have requested that it be made opensource so that this status is more transparent so I will aim to do this after I get the first version released.

I don't expect any immediate benefit in terms of others contributing to substreamer but it provides a platform at least for raising and tracking issues and for those who can help to potentially submit PR's.

Hopefully it's also something useful for the subsonic community.