Contribution

Jellify
https://github.com/anultravioletaurora/Jellify

“Designed to be lightweight and scalable, Jellify caters to those who want a mobile Jellyfin music experience similar to what’s provided by the big music streaming services.”

Jellyfin (not Jellify) is a self hosted media streaming service similar to Plex. Jellify is an app that uses this service to allow users to create their own self hosted music streaming service.

I first tried helping with a smaller issue:

To get started I cloned the repo and setup a new branch. I also had to setup android studio, which was much more involved then I first expected. Nothing seemed to work properly, but eventually I managed to get it working perfectly. My mistake here, though was trying to fix the issues before I had got a reply from the maintainer. :/

Unfortunately, in reply to my request the overall issue had changed, so I had to look for a different one to work on. However I was pointed towards their discord server where there was much more discussion on possible features and issues.

One important issue to fix was music streaming on android, which seemed it was open to work on so I started to look into it.

https://github.com/anultravioletaurora/Jellify/issues/186

Finding the cause

I first though the problem was due to incorrect permissions on android, however after testing with different permissions nothing changed so I had to look elsewhere for the root cause. After some research I found some of the logs to be quite important

04-05 15:55:34.258  7098  7189 E ExoPlayerImplInternal: Playback error

04-05 15:55:34.258  7098  7189 E ExoPlayerImplInternal:   Caused by: com.google.android.exoplayer2.ParserException: Input does not start with the #EXTM3U header.{contentIsMalformed=true, dataType=4}      

^ Edited snippet

Fixing

These lines indicated towards a possible problem. After some more research I found that #EXTM3U was linked to a transcoding error. When making a receiving a request from the Jellyfin server, the android device would be expecting a certain track type(HSL) that it wouldn’t get. To fix this I changed the expected type to default.

I let them know that I had found the issue in discord and then made a pull request with the relevant fixes. As I don’t have access to IOS the changes had to be tested by someone else.

The issue was then merged and closed

https://github.com/anultravioletaurora/Jellify/pull/208

Result

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *