Fix Plex ‘Server is not powerful enough’ on Raspberry Pi 2

raspberry_pi_plexInstalling Plex Media Server on the Raspberry Pi 2 has been very popular since uglymagoo created his repository (guide). Unfortunately, many users have gotten the error ‘This server is not powerful enough to convert this video' error. It seems that this is due to the Plex Web Client blocking transcoding automatically for ARM servers running Plex Media Server. For now, we can override this behavior by modifying the web client's javascript file to force transcoding thanks to daniele.testa and jonathanmcalroy on the Plex forum. It does not guarantee transcoding will work flawlessly but it does give the Raspberry Pi 2 a chance to transcode using Plex's new transcoder. This will also work on the Banana Pi, ODROID devices, Hummingboard, Orange Pi, CubieBoard and other ARMv7 SBCs.

If you are trying to figure out which hardware would work best for you, consider reading the Pi benchmarks.

Fix Plex Media Server ‘is not powerful enough' Error

Important: for this to work you must access your Plex server through its local IP address or DNS address not plex.tv. If you access the server through plex.tv, it overrides your modified plex.js file.

NB if you use a Smart TV, PS4 or other Plex app it may use plex.tv which means you'll still get the error. Consider using the DLNA function of Plex Media Server instead to workaround this issue or ask the developer of the Plex app to add an option to use the local Plex server instead of plex.tv.

Use Dynamic DNS with Plex instead to avoid plex.tv

Subtitle Users: use chrome and go to Plex Settings -> Web and choose Player. Click Show Advanced button.

  • Check Experimental Player
  • Check Direct Play
  • Check Direct Stream
  • Check Allow Direct Play of AC3 Audio
  • Set Burn Subtitles to Automatic – may need to set to Always

Chromecaset users see this solution (link updated and fixed).

Updated December 29th for Plex 0.9.14 and the missing plex.js fix.

You may have seen this dreaded Plex error ‘This server is not powerful enough to convert video' now you will be able to solve it by fixing the plex.js web client file.

Here's another Plex error stating ‘there was a problem playing this item' on Plex, installing libexpat solved it for me

raspberry pi 2 plex media server there was a problem playing this item

SSH in to your device using Putty or your favorite terminal client.

Automated Fix Server is not Powerful Enough Method

This should work on the latest Plex Media Server on ARM processor versions, you may need to do it with root privileges.

You can copy and paste this whole block into SSH to automatically find the main.js file, add the right code to override the server is not powerful enough check, and restart Plex. It backs up the main.js file just in case and you can restore it if there are any issues.

plexjstofix=$(sudo find /usr/lib/plexmediaserver -name main*.js)
sudo cp $plexjstofix $plexjstofix".bak"
sudo sed -i s'/validateTranscoder:function([a-zA-Z],[a-zA-Z]){/&return false;/' $plexjstofix
sudo service plexmediaserver restart

That was it, you are done.

You can now force refresh your Plex web interface and transcoding will be attempted for your video files on your Pi 2.

If it failed you can restore the main.js file

mv $plexjstofix".bak" $plexjstofix

Plex 0.9.14 and Older Versions Additional Fixes

You can also remove the hash check for the plex.js file in the Plex web server which users have reported to help. It also backs up the Plex index.html file.

If you are on Plex 0.9.14 and later do not run this section

plexindextofix=$(sudo find /usr/lib/plexmediaserver -name index.html)
sudo cp $plexindextofix".bak" $plexindextofix
sudo sed -i s'/js\/plex.js[\?]hash.\+\"/js\/plex.js"/' $plexindextofix
sudo service plexmediaserver restart

Restore the Plex index.html file in case it fails

mv $plexindextofix".bak" $plexindextofix

To exit root

exit

Manual Fix Server is not Powerful Enough Method

You can search the whole system to find the plex.js files we are going to modify.

For Plex 0.9.14 or lower replace main*.js with plex.js

sudo find /usr/lib/plexmediaserver -name *.js

For me these 2 locations popped up, the /usr/lib is owned by root, the Web Client js is updated in the /var/lib folder so that is where we are going to make changes.

/usr/lib/plexmediaserver/Resources/Plug-ins/WebClient.bundle/Contents/Resources/js/plex.js
/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Plug-ins/WebClient.bundle/Contents/Resources/js/plex.js

If you are on a newer version of Plex Media Server you may get these files, just edit them instead

/usr/lib/plexmediaserver/Resources/Plug-ins-4601e39/WebClient.bundle/Contents/Resources/js/plex.js

Make sure libexpat is installed which enables playback in the Web Client and Android Plex App

sudo apt-get install libexpat1 -y

Enter the Plex Media Server Resources folder, notice the folders with spaces are escaped with\

cd /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/WebClient.bundle/Contents/Resources/js/

Open the plex.js

sudo nano plex.js

Hit Ctrl+W to search and Paste this line by right clicking in nano

validateTranscoder:function(e,t)

In this section

validateTranscoder:function(e,t){if(!e.canDirectPlay)

Add return false; so it looks like this

validateTranscoder:function(e,t){return false;if(!e.canDirectPlay)

Ctrl+X, Y and Enter to Save the modified plex.js

If you are on a newer version of Plex the search string is slightly different search using Ctrl+W for

validateTranscoder:function(t,n)

Add return false so it matches like this

validateTranscoder:function(t,n){return false;var r=i

Ctrl+X, Y and Enter to save.

Try to Prevent Plex from Updating the Javascript File

Change the ownership of the plex.js file to root and make it so only root users can write to the file which will prevent it from being updated from Plex. However, when updating the Plex package it will be overwritten and you will have to repeat this guide

sudo chown root:root plex.js
sudo chmod -w plex.js

If there are ever problems with the plex.js needing to be updated for overall plex functionality you may have to change the permissions back and then update

sudo chown plex:nogroup plex.js
sudo chmod 644 plex.js

If you still have issues you can modify the other plex.js file

Browse to the plexmediaserver install directory

cd /usr/lib/plexmediaserver/Resources/Plug-ins/WebClient.bundle/Contents/Resources/js

Open the plex.js file and make the same modification as above

sudo nano plex.js

Save and modify the permissions

sudo chown root:root plex.js	 	 
sudo chmod 444 plex.js

Now modify the index.html file (thanks to William), since Plex has added a hash to verify the integrity of the plex.js file

sudo find /usr/lib/plexmediaserver -name index.html

Open the file that is returned

sudo nano /usr/lib/plexmediaserver/Resources/Plug-ins-f38ac80/WebClient.bundle/Contents/Resources/index.html

Use Ctrl+W to find this string

<script id="plex-script" src="js/plex.js

Modify this line to match by removing hash and version

<script id="plex-script" src="js/plex.js">

Ctrl+X, Y and enter to save and change the index.html file to be immutable, use the same path to the file as you found before

sudo chattr +i /usr/lib/plexmediaserver/Resources/Plug-ins-f38ac80/WebClient.bundle/Contents/Resources/index.html

Restart Plex

sudo service plexmediaserver restart

Refresh your browser and the message should disappear and Plex transcoding will be attempted on the Raspberry Pi 2, Banana Pi, Orange Pi, ODROID, CubieBoard, Hummingboard, Beaglebone etc. You may need to empty your browser's cache as well.

If it changes anyway you can try this tip Lee shared in the comments, the Plex web client checks for new versions based on the version file in the Contents folder so we can modify that to make Plex think it is already up to date.

cd /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Plug-ins/WebClient.bundle/Contents/

Open the version file

nano VERSION

Change the Year in the only line in the file, I made mine 2050

7feca36 (Thu Jun  4 16:37:08 UTC 2050)

Ctrl+X, Y and Enter to save

Then remove write access to the versions file

sudo chmod -w VERSION

To add write access back use this command in case you want an updated version of the Plex Web client

sudo chmod +w VERSION

Enjoy forcing trancoding for Plex on the Raspberry Pi 2, Banana Pi, Orange Pi, Cubieboard and ODROID devices 🙂