Happycamper app thread

Ok, that’s odd. I’ll do some testing on other devices, but it hasn’t failed me yet.

Ok, that kind of use case. Does it work if you stream to a bluetooth speaker? I have a very old vehicle and streaming to speakers seems to always ‘just work’. JBLs.

It should be possible, I have yet to figure out how. I’ll look at that after testing downloading.

Looks like on the chum build I’m missing: urllib3.

You can fix it for testing by installing:

zypper install python3-urllib3

I’ll fix the build now!

EDIT: fixed. Also fixed the github actions: https://github.com/poetaster/happycamper/releases/download/v0.1.2/harbour-happycamper-0.1.2-1.noarch.rpm or: https://repo.sailfishos.org/obs/home:/poetaster/

I’ll push this to chum:testing. The install is lighter now

1 Like

I’m a bit torn on this. On one hand it would add more functionality to MusicExplorer but then, as you already pointed out, it would probably depart quite a bit from the current approach and make the app even more confusing.

I actually tried a pair of sony bt headphones and they work no problem

It’s just my car stereo that does not work

I mean
Calls are 100% working
Media players and android apps are 60% working (i need to turn the media player on before the bt connection, and sometimes i need a bt reboot)
Browser is nnot working at all

As said, no problem with a pair of headphones

Haven’t tried your app yet with the car stereo but i guess it should work

I think I’ll build the player from @cypherpunks media explorer in. It has full support of Mpris. But, that would be for playing the downloaded files and still doesn’t cover the streaming direct from bandcamp case. Hmmm. I didn’t really intend on building more than a downloader.

No idea how the bancdamp streams work but the player is simply using the Audio QML type which may support some streaming formats out of the box.

The MPRIS support on Sailfish is actually quite neat. I’ve tried it with several car audio systems and with some it does not work at all but then you have gems like the Mazda system, which even shows things like album art, etc.


Yes yes i know, what i was saying is that since browser is not working on car’s stereo, i didn’t know if happy camper would have worked yet, after all it’s a webview…

That’s what we say in Eastern Kansas, USA, too.

And here’s hoping that a Sailfish app will be the straw that saves the camel’s back of Bandcamp!
(I use Sailfish, I can be unrealistically optimistic, right?)


I’ve shoehorned @cypherpunks player in and am adding playlist handling. As it is now, you can open a directory made by the download and play it with full mpris support. Phone continues to stream audio after display sleep, etc.

I’ll try to make a release the coming days, but, we’ll see (x-mas and all).


Nice icon, my attempt was very bland in comparison!

1 Like

Okidoke. So, with a bit of hacking (oh my, my technical debt is growing in leaps and bounds), I have a usable player implementation in. Sorry for abusing your code, @cypherpunks but I’ve mostly tried to learn from it.

The download function (tested mostly on albums) will also:

  1. create a playlist file (in the same directory as the download)
  2. pre-populate the player playlist

Hence, after a download, you can switch to player and immediately play.

I’m pushing it to chum, so it should show up there as well. WIP, so be kind.

The whole mpris stack seems to have some bugs, and/or, meta data reading requires running additions to a player/playlist requires a more gentle approach.

@cypherpunks to get around storing meta, I’ve just done:

  1. when I download, generate id3 tags
  2. after much futzing about, extract id3 tags
  3. read those in the PlayerTrackItem as a last resort.

I tried to keep this as unintrusive as possible because I’d like to back port this bit to musicex for loading ‘non-musicex’ directories. it’s pretty basic (using mutagen).

        track_info=MP3(path, ID3=EasyID3)
        # reduce the data structure
        for e in track_info:
            array[e] = track_info[e][0]

and in the PlayerTrackItem

      track_info = {
        'track': main_handler.basename(source),
        'album': '',
        'artist': '',
        'artwork': main_handler.player_artwork,
        'duration': null,
`      // try using our hack.
      const path = source.toString()
      const info = py.get_track_id3(path.slice(7))

      if (info['title']) track_info['track'] = info['title']
      if (info['album']) track_info['album'] = info['album']
      if (info['artist']) track_info['artist'] = info['artist']

I did futz around with all of it, but realized it’s just to specialized for my rather generic case.

1 Like

Well, in anticipation of the release party, I’ve singed up for an actual bandcamp account.


Heh. The app is entirely free of that requirement. But, I do have an account and buy music over the platform. No idea if it’s a good thing.

As a prairie child, my listening is currently fluctuating between Modest Mouse (Lonesome crowded west) and Italian Goth (SPZkr rome).

Happy x-mas, all!

1 Like

I’m happy if you find it useful.


Modest mouse are one of those bands i always wanted to better listen but never done, glad to know they are on bandcamp

Anyway, as much as i thank you for your efforts (and i really thank you) i finally had a chance to try it, and discovered that neither your abp is working with my car stereo, as soon as i hit play no sound is played from the speakers

I do assume that webview and browser uses the same underlying technology as it can’t be just a coincidence

I guess i’m forced to the android app forever then (until i finally throw my stereo in the bin xD)

Ah, it’s a challenge. Unfortunately, I don’t have access to in car entertainment. I drive a 1993 VW T4 and the audio is all analog. Happy holidays in any case!

Had a try right now, no way it’s working, and i also had troubles turning the bt on/off, even with the system option bluetooth reset

On the contrary it works like a charm (happycamper with bt) on a pair of sony wh-ch510

Aaaaah why is bluetooth so flaky on sailfish, is really driving me insane…

Au contraire!

In Soviet Russia surveillance-captitalism Europe, in-car entertainment has access to you!


I thought this was a thread for people who are happy with SF to counter the person who has been deliberately trying to destroy it with negative comments here.

Project name is fine. Maybe add “app” to the thread name.


Done. It is an app after all.

1 Like