Live TV fails with "Error — Unable to find title for item of type 5"

ISSUE: Leaves tuner occupied when closing stream/recording. Unusable for Windows (unless you have it permanently tuned to a channel.

Step by step for generating your own ‘Plex Transcoder.exe’ -probesize python fix, as included in the ‘plex_transcoder_probesize_x86.zip’ from above.

This is for x86 Plex only. If you are installing everything as 32-bit, you’ll have to make edits to the source.py file, and most likely install the 32-bit version of python.

INSTALL PYTHON

  • Download Python 2.7 (latest 2.7.x)
    Python Release Python 2.7.16 | Python.org
  • In most cases, you’ll be downloading Windows x86-64 MSI installer.
  • Install for all users (recommended). Click ‘Next’.
  • Leave default install location alone (C:\Python27\). Click ‘Next’.
  • Under Customize Python scroll down to the bottom of the tree and make sure Add python.exe to Path is clicked and set to Will be installed on local hard drive. Click ‘Next’.
  • Windows may open an ‘allow’ dialog in the background, so if nothing pops up, check your taskbar for a blinking option waiting to be clicked.

INSTALL PIP (small package manager that will install ‘pyinstaller’)

  • Download get-pip.py [https://bootstrap.pypa.io/get-pip.py] to a folder on your computer, I recommend creating a folder on your desktop called ‘TranscoderFix’. Open a command prompt window and navigate to that folder (cd Desktop\TranscoderFix) or whatever folder you downloaded get-pip.py to . Then run python get-pip.py . This will install pip .

INSTALL pyinstaller (this is what takes the python script and turns it into a standalone .exe file)

  • In the same command prompt, now that PIP has been installed you should now be able to run pip install pyinstaller.

GET THE SCRIPT READY

  • Either use the source.py file from the plex_transcoder_probesize_x86.zip above or copy and paste the code below into a new file. An easy way to do this is to type notepad source.py in that same command prompt window, then clicking Yes to create a new file.
#!"C:\Python27\python.exe"
import sys
from sys import argv
import subprocess

# Tell this shim where the 'real' Plex Transcoder is
#cmd = '/Applications/Plex Media Server.app/Contents/MacOS/plex_transcoder' # for mac
#cmd = '/usr/lib/plexmediaserver/plex_transcoder' # for linux/ubuntu
cmd = "C:\Program Files (x86)\Plex\Plex Media Server\plex_transcoder.exe" # windows 64-bit
#cmd = "C:\Program Files\Plex\Plex Media Server\plex_transcoder.exe" # windows 32-bit

# Get all arguments passed to what it thinks is the original 'Plex Transcoder'

cmdargs = sys.argv

# Remove the first argument (the script/program name itself)

cmdargs.pop(0)

# Initialize the argument counter

cmdindex=0

# Loop through all arguments and modify them as needed
# - remove arguments that when passed to the original 'Plex Transcoder' error it out.

for cmdarg in cmdargs:
  
  # lower the '-probesize' so that it keeps us under the timeout limit of PMS
  if cmdarg == "-probesize":
    cmdargs[cmdindex+1]="9000000" # was 20000000

  # remove offending arguments
  if cmdarg == "-x264opts:0" or cmdarg == "-crf:0" or cmdarg == "-preset:0":
    cmdargs[cmdindex]=""

  # escape single quotes in arguments
  cmdargs[cmdindex]=str(cmdarg).replace("'", "\\'")
  
  # bump up the counter for the next loop
  cmdindex += 1

target = [cmd] + cmdargs
subprocess.call(target)

GENERATE THE EXE

  • In that same folder that now contains source.py, you can now runpyinstaller --onefile source.py.
  • If all went well, you can now look under the newly created dist folder and you’ll have your new source.exe. If renaming in Windows Explorer, you won’t see the ‘.exe’ extension, just the name.
  • You can now rename 'source' to 'Plex Transcoder'.
  • You can now use this instead of the included ‘Plex Transcoder’ included in the zip.
  • DO NOT just blindly copy this new ‘Plex Transcoder’ executable anywhere. Follow instructions included in the README.txt file from the zip in the post above.