If you have not already, we suggest setting your Plex username to something else rather than email which is displayed on your posts in forum. You can change the username at https://app.plex.tv/desktop#!/account
Welcome to our forums! Please take a few moments to read through our Community Guidelines (also conveniently linked in the header at the top of each page). There, you'll find guidelines on conduct, tips on getting the help you may be searching for, and more!

Awful banner/poster/fanart quality on newly added shows (compared to Windows PMS)

ElandrilElandril Posts: 12Members, Plex Pass Plex Pass
edited January 2017 in FreeBSD


I just moved my whole media collection to FreeNAS and added a plexmediaserver-plexpass jail. I have recreated my libraries because I wanted a fresh start. Unfortunately I've noticed that some of the tv shows have awful image quality of their banners, posters or fanart. The quality is much worse than what I have on my Windows PMS library. A refresh of the affected series did not help.

For example the show "Blue Mountain State":
FreeNAS banners:

Quite pixelated.

Windows banners:

As you can see the difference is staggering.

Here is an excerpt from the thetvdb plugin log on FreeNAS (agent cache was cleared beforehand):
2017-01-15 14:03:16,580 (80a428c00) : INFO (__init__:781) - def update() 2017-01-15 14:03:16,581 (80a428c00) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/login' 2017-01-15 14:03:16,908 (80a428c00) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/series/134511?lang=de' 2017-01-15 14:03:17,275 (80a428c00) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/series/134511/actors' 2017-01-15 14:03:17,630 (80a428c00) : DEBUG (preferences:258) - Loaded preferences from DefaultPrefs.json 2017-01-15 14:03:17,631 (80a428c00) : DEBUG (preferences:178) - Loaded the user preferences for com.plexapp.agents.thetvdb 2017-01-15 14:03:17,633 (80a428c00) : DEBUG (networking:166) - Requesting 'https://meta.plex.tv/tv_e/134511/blue+mountain+state/2010' 2017-01-15 14:03:17,906 (80a428c00) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/series/134511/episodes?page=1' 2017-01-15 14:03:18,404 (80a428c00) : INFO (__init__:896) - No media for season 0 episode 1 - skipping population of episode data 2017-01-15 14:03:18,405 (80a428c00) : DEBUG (threadkit:234) - Starting a parallel task set named UpdateEpisodes with 40 tasks 2017-01-15 14:03:18,407 (80b072800) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/episodes/4163710?lang=de' 2017-01-15 14:03:18,408 (80b072000) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/episodes/2611851?lang=de' ... 2017-01-15 14:03:22,753 (80b072400) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/episodes/4207211?lang=de' 2017-01-15 14:03:23,042 (80b072800) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/episodes/4207210?lang=en' 2017-01-15 14:03:23,126 (80b072400) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/episodes/4207211?lang=en' 2017-01-15 14:03:23,516 (80a428c00) : DEBUG (threadkit:244) - Parallel task set UpdateEpisodes ended 2017-01-15 14:03:23,517 (80a428c00) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/series/134511/images?lang=de' 2017-01-15 14:03:23,881 (80a428c00) : ERROR (networking:219) - Error opening URL 'https://tvdb2.plex.tv/series/134511/images?lang=de' 2017-01-15 14:03:23,881 (80a428c00) : INFO (__init__:162) - HTTPError 404: 2017-01-15 14:03:23,881 (80a428c00) : INFO (__init__:685) - Bad image type data for TVDB id: 134511 2017-01-15 14:03:23,882 (80a428c00) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/series/134511/images?lang=en' 2017-01-15 14:03:24,221 (80a428c00) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/series/134511/images/query?keyType=fanart&lang=en' 2017-01-15 14:03:24,686 (80a428c00) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/series/134511/images/query?keyType=poster&lang=en' 2017-01-15 14:03:25,047 (80a428c00) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/series/134511/images/query?keyType=series&lang=en' 2017-01-15 14:03:25,403 (80a428c00) : DEBUG (networking:166) - Requesting 'https://tvdb2.plex.tv/series/134511/images/query?keyType=season&lang=en' 2017-01-15 14:03:25,839 (80a428c00) : DEBUG (threadkit:234) - Starting a parallel task set named DownloadImages with 36 tasks 2017-01-15 14:03:25,842 (80a428c00) : DEBUG (threadkit:244) - Parallel task set DownloadImages ended 2017-01-15 14:03:25,843 (80a428c00) : DEBUG (networking:166) - Requesting 'https://meta.plex.tv/tv_e/134511/blue+mountain+state/2010/1' 2017-01-15 14:03:26,139 (80a428c00) : DEBUG (networking:166) - Requesting 'https://meta.plex.tv/tv_e/134511/blue+mountain+state/2010/0' 2017-01-15 14:03:26,414 (80a428c00) : DEBUG (networking:166) - Requesting 'https://meta.plex.tv/tv_e/134511/blue+mountain+state/2010/3' 2017-01-15 14:03:26,691 (80a428c00) : DEBUG (networking:166) - Requesting 'https://meta.plex.tv/tv_e/134511/blue+mountain+state/2010/2' 2017-01-15 14:03:27,050 (80a428c00) : DEBUG (model:229) - Serializing to /usr/local/plexdata-plexpass/Plex Media Server/Metadata/TV Shows/9/0acc6318935d933ddd4059b7a9a84ff691fc0bd.bundle/Contents/com.plexapp.agents.thetvdb/Info.xml 2017-01-15 14:03:27,051 (80a428c00) : DEBUG (runtime:88) - Sending packed state data (107 bytes) 2017-01-15 14:03:27,051 (80a428c00) : DEBUG (runtime:924) - Response: [200] str, 16 bytes

I found also that the file sizes of the banners differ by a factor of ten:

  • FreeNAS
  • Windows

Does anyone have any idea how to fix this quality issue? Any input would be appreciated!


  • tootsmcgeetootsmcgee Posts: 259Members, Plex Pass Plex Pass

    I've noticed this too for a while actually (low quality posters), but I didn't realize it wasn't a problem on other platforms, as I only run plex on FreeBSD. So put me down for "me too".

  • ValdhorValdhor Posts: 501Members, Plex Pass Plex Pass

    I wonder if the posters in the German (de) directory on tvdb are old whereas the posters in the English (en) directory are up to date? What happens if you set your preference to english? Are the posters better? This may be a tvdb issue.

  • ElandrilElandril Posts: 12Members, Plex Pass Plex Pass

    I did actually try that, but it didn't change anything. According to the log the German directory seems to return invalid image data anyway, so that PMS falls back to the English directory. I also checked on the thetvdb Website, and both language entries have exactly the same image data - which is quite highres by default due to their rules.

  • ValdhorValdhor Posts: 501Members, Plex Pass Plex Pass

    Oh well, worth a shot in the dark :((

  • ElandrilElandril Posts: 12Members, Plex Pass Plex Pass

    It would be great, if a Plex developer could maybe shed a little light into this, as there is nothing from my end that I can do to fix this!

  • ElandrilElandril Posts: 12Members, Plex Pass Plex Pass

    I did some more investigating, and now think that this might be a general problem possibly due to some changes on thetvdb.com.

    It seems that the images pulled from thetvdb are no longer retrieved in full resolution but in the very poor preview resolution! For posters this means 300x441 instead of 680x1000 , and for banners 300x55 (example) instead of 758x140 (example) pixels!

    Maybe something has changed on the thetvdb website, since the full-res images are no longer directly linked in the img tags, but rather get linked via "View Full Size links" which appears after clicking on the banner/poster (or on the banner/poster/fanart detail pages, e.g. http://thetvdb.com/?tab=seriesbanners&id=...). Please note that the preview and the full size images on thetvdb.com seem to have the same filename, but the previews reference a /banners/_cache/... directory while the full resolution images are not in the "_cache" subdirectory.

    It would be great if that issue could be resolved! I do not know of any way to bring this to the attention of the devs, however. :-(

  • tootsmcgeetootsmcgee Posts: 259Members, Plex Pass Plex Pass
    edited February 2017

    @Elandril I just poked around in the code, and it looks like plex is specifically fetching the cached version.

    In Resources/Plug-ins-b46e0ea/TheTVDB.bundle/Contents/Code/__init__.py

      def parse_banner(self, img_info):
        # Get the image attributes from the XML
        banner_type = img_info.get('keyType', '')
        banner_path = img_info.get('fileName', '')
        banner_thumb = img_info.get('thumbnail', '_cache/%s' % banner_path)
        proxy = Proxy.Preview
        return banner_type, banner_path, banner_thumb, proxy

    This seems to be using the thumbnail from the tvdb response, and falling back to an attempt to guess at the thumbnail path.

    Then this method is called later in the download file logic:

              banner_type, banner_path, banner_thumb, proxy = self.parse_banner(img_info)
              # Compute the banner name and prepare the data
              banner_name = TVDB_IMG_ROOT % banner_path
              banner_url = TVDB_IMG_ROOT % banner_thumb

    This is done in another place later as well (fallback to foreign artwork if native language artwork isn't present).

    Using the tvdb api (https://api.thetvdb.com/swagger), and the token defined in the same file above to generate a JWT token, a sample response for retrieving images looks like this:

          "id": 334331,
          "keyType": "series",
          "subKey": "graphical",
          "fileName": "graphical/134511-g.jpg",
          "resolution": "",
          "ratingsInfo": {
            "average": 7,
            "count": 7
          "thumbnail": "_cache/graphical/134511-g.jpg"

    So it seems to be intentional to fetch the thumbnail instead of the full image. Maybe due to size?
    For full images, presumably setting banner_url to TVDB_IMG_ROOT % banner_path would be enough to fetch full size images (and replace again a bit further down the file for foreign language fallback).

    Unrelated: My goodness. Is this python file machine generated or minimized in some way? This is some weirdly formatted python code!

  • ElandrilElandril Posts: 12Members, Plex Pass Plex Pass
    edited February 2017

    @tootsmcgee Great find, thanks!

    Since my older library on Windows has the full res images, I would guess that either the the fetch code was specifically changed at some point in the last 2 years, or the website has switched over to caching the low res images.

    Either way, it would be great if this would be changed back to full res, or at least the user would have the option to download full res images. :-(

  • TedioFerreiraTedioFerreira Posts: 23Members, Plex Pass Plex Pass

    any light on this problem? just rebuilt my server (new PC) and all my posters looks awful :c

Sign In or Register to comment.