External subtitles won't show up when streaming outside local network

Hello,
I am incurring in a weird problem I noticed only when I started using Infuse outside of my home.
I have been downloading .srt subtitles for all my movies since forever, renamed them as the video file, and never had an issue. (I am using Jellyfin to serve content btw).

So when I use Infuse inside my local network (no matter the client), I have always been able to use all of my external .srt subtitles. But as soon as I connect to my server over the internet, all of my .srt files disappear inside Infuse (no matter the client).

I performed the ultimate test with my phone, while using my home wifi I started playing some random movie and .srt subs were selectable and working; then disabled wifi, closed and reopened the app, played same movie, and .srt subs disappeared from the playback menu (gear icon → subtitles), they did not even show up in the list.
Also, very important, this behavior isn’t affected by transcoding or direct play, as soon as I leave my home network external subtitles stop showing up in the list no matter how the video is delivered.

So I am at a loss here, I browsed the forum for a similar problem, and the only info I gathered is that .srt files don’t work over DLNA or UPNP, but I believe this is not the case (also cause I have DLNA explicitly disabled in Jellyfin). This problem I am having is tied specifically to streaming over the internet, and I am not sure why it’s not working.

Any help would be greatly appreciated.

Are you using different streaming types based on whether you are home or away?

What type of connection(s) are you using?

If you browse the saved share (while away) via the Settings > Add Files menu, do you see the SRT files listed there?

hey sorry, but I haven’t received any notifications via email, I am just checking the forum now.

Thanks for replying, here are the answers:

  • nope, I tried both direct play and transcoding, and the subtitles don’t show up in both cases when outside my local network.
  • connection is good, it’s FTTH @ 1gbit/100mbit. I can stream basically anything with Direct Play
  • subtitle files don’t show up in either case (remotely and locally). when I use Settings → Add Files and then browse my server, it only shows the video files, with their date and size, and the download icon. No other files are shown there (and I have usually many metadata files inside my folders, like Jellyfin .nfo files, images and of course .srt files).

I believe this is worth mentioning. I just tested streaming using the Jellyfin client (Jellyfin Media Player) and the subtitles indeed show up.
This seems related to Infuse specifically at this point.

hello @james is there anything else I can try? sorry to ping you, but subtitles are essential to me and I would love to solve this issue.

thanks

If nothing else works, you can always mux the SRTs into your MKV containers using MKVToolNix or similar. However, this is a time-consuming job if you have many files.

I should have added “short of remuxing external subtitles” lol. yeah, I could do that, but shouldn’t external subtitles work? it is an advertised feature, so I am seeing this as a bug. maybe this is not the place to file bugs, but I don’t know a better place.

I already tried with different clients, the problem is with Infuse when streaming over the internet. Locally, everything works with Infuse. I tested on iOS, tvOS and on the webUI, with my account and other accounts. As soon as I switch over the internet, external subtitles disappear and I am pretty sure it shouldn’t do that.

Also, I want to reassure my setup is not the cause here, because external subtitles work perfectly over the internet when using other clients (Swiftfin, Jellyfin Media Player, etc…). So filenames, permissions, sub type etc… are all perfect. I use Bazaar to automate subtitles downloading, and never had an issue.
But the moment I connect to any other network that’s not my local network, external subtitles disappear in Infuse. Pretty easy to reproduce as well, just switch from Wi-Fi to 4g/5g while streaming on your smartphone and you can see what I mean.

So, I hope my thread makes Firecore look into the issue cause it’s a big nuisance to me and possibly others.

You’re in the right place, I’m sure that @james will get back to you, but the devs are in the middle of a pretty detailed release right now so it may take a little time. :wink:

1 Like

thank you very much for the feedback, happy to hear I’m in the right place.
Also, devs should take all the time they need, quality first. And can’t wait for the new release :sunglasses:.

I just wanted to have this issue addressed, I will patiently wait.

2 Likes

sorry to bother @james but still having the issue, any update with this?

Are you able to play a video with subtitles on your local network (working) and then play the same video on the remote network (not working) and then send in a report (and post the code here)?

thanks @james I just sent the report (code VNHSX).
I started from scratch, app closed in multitasking.

I opened it while connected over Wi-Fi, played a file with no embedded subtitles and only an external .srt file with English subs. The subtitles show both on screen and in the sub dropdown.

then switched off Wi-Fi, connected to 4G and reentered the app. now file plays without subtitles and they don’t show up in the sub dropdown.

iOS 16.3.1 + Infuse Pro 7.4.10 connected to Jellyfin 10.8.9
if you need more info, let me know

hello @james sorry to bother you, but this problem is still present.
I am on the beta version, and I make sure to test every new version to see if this is fixed.
Have you been able to reproduce it on your end?

Thanks again.

We’ve been looking into this, and it appears to be an environment-specific issue.

Our tests show external subtitles are available when streaming outside the local network. However, in your logs the subtitles stream failed to open because the HTTP response lacks the required header ‘Content-Length’.

The most likely explanation for this is that the subtitles are coming from Cloudflare, which might not send these headers with on-the-fly compression.

https://community.cloudflare.com/t/no-content-length-header-when-response-is-compressed/134475

🐛 BUG: Content-Length header missing from worker response when Content-Type present · Issue #1972 · cloudflare/workers-sdk · GitHub.

It’s hard to recommend something without direct access to the environment, but theoretically setting headers in the data source might help, but we don’t have extensive experience with the quirks of using Cloudflare.

hey James, thank you for looking into it and for your detailed response, because you put me on the right track for solving this!
Basically, after understanding this was related to response headers, I tried one last thing before going down the rabbit hole of manually modifying the headers in the Cloudflare DNS control panel: I disabled the Proxy offered by Cloudflare for DDoS protection I had set up on the jellyfin domain.

after disabling the proxy, external subtitles now work!
ofc the better answer would be to make it work while proxied, but this is another issue, and related to CloudFlare settings.

thanks again for the support, especially considering this was an edge case.

2 Likes