Fix: Plex Offline Download Not Working

The issue of Plex downloads not working on devices has been ongoing for years and has been a frustration for many Plex users.

Many are wondering why Plex has issues downloading media for offline use. Plex has no issues transcoding, direct streaming, and direct playing media from their server, but for some reason, it can't download the files.

This article will briefly explain the issue as well as some solutions you can use to correct the problem.

Fix: Plex Media Server Offline Download Not Working

Table of contents

The offline download issue
Change the router DNS servers
Router settings
OpenDNS
pfSense
OPNSense
dnsmasq
Unbound
Pi-hole

The Plex offline download issue

For those that don't know, the issue is that a user isn't able to download media from a Plex server to their client so the media can be played offline. When a user attempts to download the media, the download fails.

The root cause of this issue is Plex uses DNS rebinding for its plex.direct domain, which is used to download media for offline viewing. The reason the download features work this way is that Plex establishes a secure connection to the Plex server.

If you were to examine the DNS requests made when downloading media to a client, you will notice requests in the format: https://[IP address].[string of alphanumeric characters].plex.direct.

The workaround to resolve this issue depends on how the DNS is configured on your network. Below are several fixes for common routers and DNS services.

Change the router DNS servers

The first solution is to change the DNS servers that are defined by your router. Many users may be using their ISP DNS server, which would mitigate DNS rebinding attacks. These mitigations would prevent Plex from downloading media for offline viewing.

To resolve this, try changing the DNS settings in your router to one of the following:

After changing the DNS, you may need to flush the DNS cache on your client, if possible, or wait some time for the cache to expire.

Router settings

Your router may also have a DNS rebinding setting that is enabled. Each router is different so attempting to provide steps would be impossible. Check your router settings - it could be in a section labeled DNS - for a DNS rebind setting and disable it.

OpenDNS

The OpenDNS DNS service was one of the recommended services to use for DNS, however, there is an option that could mitigate DNS rebinding. If you find that changing to OpenDNS still won't allow you to download your media, do the following:

  1. Log into your OpenDNS account.
  2. Click the Settings tab.
  3. Select your network from the list.
  4. From the menu on the left, click the Security link.
  5. Uncheck the Block internal IP addresses checkbox.
  6. Click the Apply button.

You may need to wait a few minutes for the setting to take effect, and also wait for your local DNS cache to expire.

pfSense

pfSense includes an internal DNS resolver service that could prevent DNS rebinding. You will want to adjust that setting, by doing the following:

  1. From the pfSense administrative Web UI, go to Services->DNS Resolver.
  2. Click the Display Custom Options button if the Custom options edit field isn't displayed.
  3. Enter the following in the Custom options edit field:
    server:private-domain: "plex.direct"
  4. Click the Save button.

OPNSense

You will need to add the plex.direct domain to the Alternate Hostnames by doing the following:

  1. From the OPNSense Web UI, navigate to System->Settings->Administration.
  2. In the Alternate Hostnames field enter:
    plex.direct

You may also need to check the Disable DNS Rebinding Checks if you are still having issues downloading media to your client.

dnsmasq

If you are using dnsmasq, such as with DD-WRT, you can add the following to your dnsmasq configuration file:

rebind-domain-ok=/plex.direct/

For DD-WRT users, you can add it to the Advanced Settings edit field in the dnsmasq settings.

Unbound

Unbound is a popular upstream DNS option that can be self-hosted on a local device. If you use unbound, you can create a new config file in /etc/unbound/unbound.conf.d/plex.conf and then add the following:

rebind-domain-ok=/plex.direct

Pi-hole

I'll add this one to the list as it is a popular self-hosted DNS service, however, it won't cause issues. If you are using Pi-hole, simply make the changes to your upstream DNS service instead.

Any of the above solutions require you to make changes to your local network settings, which means you will need access to the network. Once the changes are made, however, you should not need to make them again.

If you do plan on downloading media for offline viewing, you should do so while on your local network instead of downloading the files remotely. This will ensure that if there is an issue, you can diagnose it locally rather than from the Internet.