Changing the Section Icons in Plex is something that’s come up a few times, from multiple people, and until now, the best answer of how to do it was to use an old version of the Media Manager, then click the non-intuitive button, then change the artwork there. Note: Only works when the server is on Windows? Or maybe only if you’re client is on OSX?

Total BS.

So, I thought to myself: it has to be somewhere that’s common to the different media servers (they can’t be that different behind the scenes), and now with the API, it should be kind of straightforward (we hope).

Short answer; I followed the trail, changed something that looked like it could be it, and tested it:

Plexweb shows the change


If you want the geeky stuff, it’s at the bottom where it can be safely ignored if you’re not in to that sort of thing.

So how do we do this right every time?

If you have waded through databases before, you’ll be much more at home. If not; this may be tricky, but as long as you back up the files when mentioned, you’ll find the changes made without too much sweat.

Step 1: Shut down Plex Media Server so that we don’t damage anything

  • On Ubuntu, this is done with “sudo stop plexmediaserver”

Step 2: Find the file “com.plexapp.plugins.library.db”

  • Check the Wiki for the location on the “Plex Media Server” folder on your server.
  • Once there, go in to “Plug-in Support” > “Databases”
  • You should now see “com.plexapp.plugins.library.db”

Step 3: Make the backup

  • Normally, I do this by simply making a duplicate (right-click > Duplicate, or Copy, then Paste in the same location renaming this new file to “com.plexapp.plugins.library.db.ORIGIONAL”)

Step 4: Open the file in an SQLite Editor

  • I’ve not found a fantastic option for this, however, we can get by with using the Firefox plugin SQLite Manager” by lazierthanthou (Install through Firefox, then use the Tools menu to select “SQLite Manager”)
  • Note: When opening the db file, you may have to Choose “All files” under the “Format” menu for SQLite Manager to un-grey the “com.plexapp.plugins.library.db” file.SQLite Manager - Opening a .db file

Step 5: Edit the URLs

SQLite Manager - Browse Library Sections

  • In SQLite Manager, make sure you’re on the “Browse & Search” tab, then select “library_sections” on the left.
  • On the main part of the window, you should now see your library sections.
  • SQLite - Changing the URL entryYou can double-click the line for any Library Section, and put in the URL of the icon you want to use (I’m going to stick with public URLs for the moment).
  • You can, for example, use ( Public Domain, linked from Wikipedia ).
    Update: As pointed out in the comments by Philippe, ‘//’ is considered an escape character, so we can use local files by using the following format:  file:////Volumes/Work/myfile.png
    I have not tested this to make sure it works outside the network, so please report back with your results!
  • When you’ve filled everything in the way you want, Press “OK”, then confirm on the next screen.
  • Note: When you confirm, you have “Saved” the file

Step 6: Test

  • Start Plex Media Server again, and fire up the web client.
  • Jump up and down, laughing, crying, dancing! (Or facepalm if a minor spelling error was made and you have to go back)
  • Note: If you want to check any other devices; reboot or clear the cache.
  • Second Note: I did not see the results yet on iOS (iPad or iPhone).

Step 7 (Optional): Spend hours obsessing about the prefect icon scheme before thinking about what rating backgrounds are the best.

How I did it (aka the Geeky stuff):

Following a hint on the forums by PJE, we learned that plexmediaserver has a “thumb=” variable, and that it should take http:// and file:// URLs.

Excellent; how do we find the setting for this?

Digital investigation tactics: follow the leads.

Since PJE mentioned it under the ‘/library/sections list’, I pulled up the server, and plugged in the section: http://simba.local:32400/library/sections .

From this, we get the XML list of sections:

<Directory art="/:/resources/movie-fanart.jpg" filters="1" refreshing="0" thumb="/:/resources/movie.png" key="6" type="movie" title="Movies - G Rated" agent="" scanner="Plex Movie Scanner" language="en" uuid="33d83f638.............e7fb21e0fb" updatedAt="1357340005" createdAt="1333574083">
<Location path="/media/Shared/Video/Movies, Cartoons, and TV - G rated/Keep/Movies"/>

and I immediately saw something I could search for: uuid.

Went to the server terminal, then in to the plexmediaserver “Library” folder (Find the locations here), and used an old standby: the Grep command.

grep -Rs 33d83f63822.......7fb21e0fb ./Application\ Support/*

(R for recursive, s to suppress error messages)

Aaaaaand: com.plexapp.plugins.library.db was the only result: Success!

Now what?

Definitely stop the server from running while we fiddle.

A quick glance showed that this file was an SQLite database, and when opening it, the “library_sections” table jumped out. Immediately backed up the file, then a quick change to user_thumb_url and user_art_url gave me something to test.

Started the server again, and the change immediately showed up in the Web client: “user_thumb_url” showed the little icon like we want, and “user_art_url” showed up as the background art for that section: nice bonus!

Restarted the Roku, tested there: Icon showed up perfectly.

Extra bonus for the extra lazy:

Here are the URLs for the icons that I’m using:

Note: The images these link to will change as we keep looking for just the right icons and backgrounds for us.

And, here are some extras that others have liked: