Downloads ignoring "prefer downloaded content" setting

Would you mind sharing that library with me and letting me know what video you tested with so I can try the exact same thing?

Shared with you and replied privately. Thanks @anon18523487

Hey @anon18523487. I saw lots of activity against my Plex server. Thanks for checking into this. Were you able to reproduce? Any luck on a fix?

Unfortunately, I could not reproduce. For me, the video always plays from my device. Here is what I tried.

  • from Home Page, goto More
  • select the library you shared with me
  • play video (Playback info says it’s playing from my device)
  • jump to the middle
  • stop playback
  • the episode is shown in Continue Watching
  • hit play
  • it still plays from my device

There must be something with your specific device that is causing the playback to fail.

Is there any additional logs I can provide to find out why so we can improve the client behavior? Were you able to test with a Google Pixel 5 or Pixel 6?

@Olli, @elvisman113 and @CineUrso - Is this fixed for you?

The strange part is that it works from Downloads but not from the library. That’s so weird since it’s looking for the same file on the device.

The only other thing I can think for you to try is to set the player to use an external player and then install MX Player. That program has the option to force hardware vs software decoding. If hw decoding fails, that could point to the device itself. Still not sure why it would fail only in this scenario.

I have not noticed this issue again. I just tried now (at home, but turned off WiFi), and it seem to play local content properly, even when initiated from the main libraries (as well as from Downloads).

I’ll give that a try. What device did you test on?

I used a Samsung S22 to test from your server. For my own testing, I have a couple of different phones and a few tablets. When I use Downloads, the file either Downloads as-is and plays or is transcoded.

There is still a bug if there are multiple versions of a file, but that’s not the case here.

The inconsistent behavior is what has be confused. It should work or fail in both scenarios.

I set the external player to VLC and it played locally from anywhere in the interface which means it’s something to do with the build-in player on Pixel. Is there anything else I can provide to troubleshoot since we know the device is capable of rendering the file locally?

I don’t use VLC, but I know it can do a lot of software decoding. Is there a way to force HW decoding? The Plex app tries to use HW decoding so that is what you need to test. If VLC doesn’t offer that option, MX player does. You can try with that.

I don’t mind software decoding locally but I think using an external player proves the point. Plex should be playing the file locally, it does so just fine if I’m in the “Downloads” section. Due to some bug in the Android client, it streams instead of accessing the local content when playing from anywhere else.

That’s the weird part. It is trying to play the exact same file whether from the Download section or from the library section. It is unclear why it fails in one case but not the other. My theory on HW decoding vs software decoding shouldn’t even apply in this case since it works from the Downloads section.

Have you tried to re-Download that episode? Maybe something did go wrong during the original Download.

I watch 2-3 episodes a week of this show, all downloaded and every one of them exhibits this behavior.

I deleted all of my downloads and downloaded them again. Same behavior in Plex Android 9.13.0.37280. If I start or resume from the downloads section, it plays locally. If I resume from Continue Watching or in the library, it streams. Both Continue Watching and the library show the downloaded symbol. The downloaded version of the video is VP9 1920x1080 at 29.971 fps and the audio is Opus 2-channel 48khz.

Is there anything else I can do?

Happy New Year @anon18523487 and the Plex team! Any word on the Plex Android app properly handling downloaded content on Google Pixel phones? I’m still experiencing the problem with downloaded content only playing locally when selected from the downloads part of the app. It streams from the server if selected anywhere else.

I switched to a Pixel 7 Pro to test this out and same problem. Downloads will only play locally if launched from the Downloads section of the Plex app. Resuming or playing from anywhere else in the app will stream from the server and use up bandwidth/resources unnecessarily.

2023-01-30_08-58-51

Can you get me a new log. I still can’t reproduce this.

Uploaded to the same share as before, labeled Plex for Android Logs (Jim Shank) - Post 63.

  1. Went to downloads and played the episode (played locally)
  2. Went to Continue Watching, selected the show, went to current season and selected the same, downloaded episode and hit play. It streamed from my server (visible in Plex dashboard).
  3. Shared logs and uploaded.

Got your new logs. It all looks correct. I think it’s still playing the Downloaded version.

This shows the setting is recognized and being used.

01-30 15:20:24.076 i: [MediaDecisionEngine] Prefer synced content is enabled, so ignoring alternative media items.

The decision to play the file.

01-30 15:20:24.101 i: Fetching [method:GET] http://127.0.0.1:32500/video/:/transcode/universal/decision?audioBoost=100&autoAdjustQuality=0&directPlay=1

The actual command to get the file. The request is going to the local IP, which is the device itself, not your server.

01-30 15:20:24.193 i: [MediaDecisionMediaSource] Opening http://127.0.0.1:32500/media/providers/1/library/parts/34/1672862503/file.mkv?

Here’s the client reporting back to your server what is playing. I think this part might be wrong. Specifically key=%2Flibrary%2Fmetadata%2F53435. That’s what identifies what is playing. There doesn’t identify where the library is from, your actual server or on the device.

01-30 15:20:24.692 i: Fetching [method:GET] https://10.1.10.2:32400/:/timeline?audioStreamID=266235&bufferedTime=2674&column=0&duration=19829901&guid=plex%3A%2F%2Fepisode%2F5d9c0b441cae62001f7589b4&key=%2Flibrary%2Fmetadata%2F53435&playbackTime=163&playQueueItemID=405932&ratingKey=53435&row=0&state=playing&time=7&timeToFirstFrame=0&X-Plex-Client-Identifier=d25d2c09ede6a9f5-com-plexapp-android&X-Plex-Token=...f4m_&X-Plex-Language=en-us

Let me check into this, but I think this is just a reporting bug. Also note that in your screen shot there is no bandwidth info after the connection type. If it is playing the Downloaded version, there wouldn’t be a value since there is no bandwidth allocation needed. If it was coming from your server, it would list something.

As a test, if you are willing, after you start playing the file, put your phone in airplane mode. If it is playing from your server, the playback will eventually fail after the buffer is used up. If it is playing from the device, it will just keep going.