Jump to content

Plugin - Iconic Image Enhancer


roaku

Recommended Posts

IconicSplash.png.83a5a52f86b3f327d27e663df39cfc6a.png

 

 

Iconic is an image enhancer that helps you turn Rules about your media into Icon Badges on your Movie and TV images.

Iconic offers flexible Badge positioning, opacity, size, color, spacing, etc.

Just configure, save and refresh your movie list or item view to see your new Badges.

Installation

Iconic can be installed through the Emby catalog. You can find it under the 'General' category.

The free version of Iconic will show up to one icon for each movie. Rules are checked in the order they appear in your configuration.

If you're a Premiere user, you have the option to register Iconic to remove the one icon limit.

Version History

v2.4.1

  • Fix error when no supported image encoders are available
  • Improve support check performance when item type is not enhanceable

v2.4.0

  • Excludes Trailers, Theme Songs, Theme Videos, Additional Parts from 'Any' Extras rule option
  • Adds support for Collections rule to Episodes

v2.3.0

  • Finalize support for 4.8 stable
  • Add SDH subtitle rule

v2.2.0

  • Filename rule now supports NOT(!) values
  • Filename rule now supports multiple values (|)
  • Fix - Folder specifier was inconsistent

v2.1.2

  • Fix issue with some rules passing/failing in different UI contexts.

v2.1.1

  • Fix regression in Folder Specifier

v2.1.0

  • Newly Added Rule - Show an Icon based on # months since Library Added date
  • New Release Rule - Show an Icon based on # months since Item Premiere date
  • Status Rule for TV Shows - Show an Icon based on a show's Continuing/Ended Status
  • Folder Specifier for Movies and TV Libraries - Optionally restrict rules to Library subfolder(s)
  • MediaStream Rule - CodecTag Property added to property options
  • Collection Rule - Updated to support any collection wildcard (*)
  • Material Icons - Updated with more icons

v2.0.0

- Support for per Library configuration
- Initial support for TV: Show, Season, Episode
- Initial support for Collections
- Adds support for Movie Extras
- Optimizations to improve image load times

**Existing 1.x users will need to recreate their configurations in 2.0.
   [emby-path]/plugins/configurations/Iconic.xml can be used as a reference to more easily recreate 1.x configurations in the 2.x UI.

v1.1.1

- Compatibility update for Emby 4.6

v1.1.0

- Adds limited support for Emby builds utilizing ImageMagickSharp
- Adds Collection Rule Type
- Adds MultiVersion Rule Type

v1.0.2

- Gracefully handle unsupported platforms

v1.0.1

- Fix multi-rule deletion bug

- Update internal Emby libraries

v1.0.0

- Initial Release

------------------------------------------------------------------------------

Updated Beta 0.9.2.1

- Faster image processing through more efficient font management

 

Updated Beta 0.9.2.0

- Now supports separate badge and icon opacities

- Tweaks to badge drawing to improve quality

- Only draw badge border when the stroke is greater than 0

- Only draw badge when opacity is greater than 0

- Modularize javascript for maintainability and development efficiency.

 

Updated Beta 0.9.1.5

- Prevent committing of a MediaStream Rule with duplicate Property Keys.

- Add helper text and color on hover to bring attention to the Icon Selector for Rules.

- Optimize rule analysis: Finally figured out a way to run the analysis once, cache the results, and discard after writing without the parallel processing requests clashing.

Updated Beta 0.9.2.0

- Add Continue Watching Rule Type

- Optimize rule analysis: Finally figured out a way to run the analysis once, cache the results, and discard after writing without the parallel processing requests clashing.

Updated Beta 0.9.1.4

- Normalize badge size and spacing across image types

Updated Beta 0.9.1.3

- Fix badges not rendering for some Movies: Removed some legacy code that could interfere with the rule analysis

Updated Beta 0.9.1.2

- Fix font rendering in Windows: Windows didn't like the WOFF font format, so now providing an OTF fallback.

Updated Beta 0.9.1.1

- Better support for the active theme: This fixes an issue where the Icons in the selector list could 'disappear' as white text on a white background.

- Prevent occasional null errors in the log

Updated Beta 0.9.1.0

- This version adds a FileName Rule type and adds Resolution as a MediaStream Property option.

---------------------

The Iconic Beta 0.9.0.0 is attached here.

**It is tested against Emby 4.5.4 only.**

Again, please try it out if you're interested and let me know if something doesn't work, could work better, or if you have any questions.

 

 

iconic-output-6.png

iconic-output-5.png

iconic-output-4.png

iconic-output-3.png

iconic-output-2.png

iconic-output-1.png

 

Edited by roaku
Release Notes
  • Like 9
  • Thanks 1
Link to comment
Share on other sites

Using Iconic

Configuration

Badges:

iconic-config-badges.png.9083b3e4860ea16349526092ce34a87a.png

Rules:

iconic-config-rules.png.31b524775e6608de8a47ebc55f6dab71.png

Selecting a Rule Icon:

iconic-config-icon-selector.png.4987e81ac611cdac4ac8eaa78409ef54.png

 

Rules

Adding a MediaStream Rule

Adding an Extras Rule

Tags Rules are case sensitive and will check each Tag on a movie to see if it *contains* the text you put in the Tag Value field. This means a movie with the tag 'My Great Tag' will match a rule that has a Tag Value of 'Great', but not one that has a value of 'great'.

Adding a Filename Rule

Filename Rules will check the path+filename for each version file associated with a Movie to see if it *contains* the text you put in the FileName Value field. This is useful for cases where you have metadata about your movies incorporated into your filenames.

Adding a MultiVersion Rule

The MultiVersion rule will match when a movie item contains multiple versions.

Adding a Collection Rule

Collection Rules will match a movie if it is part of the Collection or Playlist you provide in the Collection Name field.

Image Caching

For image caching, Iconic will generate an item's badge-ed image once, then let Emby serve up cached versions after that...until you either save the configuration again...or something on the item changes that causes one or more of the rules results to flip for that image.

So, if you need to regenerate your badges you can just re-save your configuration. That will signal to Iconic to regenerate any movie image the next time it's requested.

And, If you want to get back to your non Iconic enhanced images, you can set Active to off in the configuration and save.

I have noticed some of the apps have their own local caching mechanisms, and may hang on to an enhanced image longer than the web app will. The best approach for me when testing is to use the browser and have developer tools open/caching turned off.

 

 

 

 

 

 

 

 

 

 

 

Edited by roaku
  • Like 4
Link to comment
Share on other sites

Iconic plays nicely with CoverArt.

You should be able to just reposition your badges as needed if the overlays from each plugin stack.

If there's a CoverArt + Iconic configuration that you want but can't make work, please let me know and I'll see what I can do.

iconic-cover-art.png.d54336a8a5a5a69714ce6c50e1ab366e.png

Edited by roaku
Link to comment
Share on other sites

One thing to be aware of is that depending on your hardware, you might notice a short delay when the overlayed images are first generated and added to the cache or regenerated after a Iconic configuration save.

It shouldn't be much longer, if at all, than when Emby initially resized and cached your images; it's just more noticeable when you're expecting to see something new. :)

Also, Iconic tries to be efficient about its business. It only processes an image if Iconic is currently active, the Item is a supported type, and at least one Rule matches or you updated the configuration. Otherwise, it signals to Emby to bypass it and send the image along.

Edited by roaku
Link to comment
Share on other sites

cochize1
16 hours ago, roaku said:

The Iconic Beta is attached here.

Again, please try it out if you're interested and let me know if something doesn't work, could work better, or if you have any questions.

Iconic.dll 495 kB · 9 downloads

OK, I have no idea how to turn this on:)

- Iconic Status slider is set to Active

- I 'designed' the badges to look like I want them to

- I added all 3 rules, named all 3 of them "test"

- for one movie in Metadata I added 'test' value as this look like the only think that could connect to your plugin (not sure what MediaStream and Extras rule are)

- I refreshed metadata, scanned librery, cleared cache in my browser

Still no additnional icon shows on the poster for that movie. What am I missing?

Edited by cochize1
Link to comment
Share on other sites

2 minutes ago, cochize1 said:

OK, I have no idea how to turn this on:)

- Iconic Status slider is set to Active

- I 'designed' the badges to look like I want them to

- I added all 3 rules, named all 3 of them "test"

- for one movie in Metadata I added 'test' value as this look like the only think that could connect to your plugin (not sure what MediaStream and Extras rule are)

Still no additnional icon shows on the poster for that movie. What am I missing?

Did you click the green save button at the bottom of the page after setting your configuration?

This config is a bit complicated, so it just saves everything once when you click save, rather than after you change each field.

Link to comment
Share on other sites

cochize1

yes, I did click Save but where should I go from there?

i.e. i Add Tag Rule, rename it to whatever and set value to 'test'

then in the movie metadata Tag filed I place that value 'test' , save metadata and after refreshing the cache in my browser I should have poster with the badge over it? (cuz that what I did I think)

Link to comment
Share on other sites

 

5 hours ago, cochize1 said:

yes, I did click Save but where should I go from there?

i.e. i Add Tag Rule, rename it to whatever and set value to 'test'

then in the movie metadata Tag filed I place that value 'test' , save metadata and after refreshing the cache in my browser I should have poster with the badge over it? (cuz that what I did I think)

Next two things to try:

1) Restart your server if you didn't after copying the dll over.


2) Try going back to your Iconic configuration and resaving. You don't need to change anything.

It's possible that your image got regenerated before your 'test' tag was in the item metadata.

Resaving will update a timestamp and tell Iconic to regenerate the image.

 

 

You can also look in the log for 'Running Iconic enhancements' to see if it's trying. If it's trying and failing, there should be a pretty conspicuous error also.

Edited by roaku
Link to comment
Share on other sites

For MediaStream rules, they're based on information you can see at the bottom of the web app for an individual movie item.

For example, if you wanted to see a Commentary Icon for you movies with commentary tracks and you have your audio tracks titled like below, you can make a MediaStream rule with two properties like so:

Type: 'Audio'

Title: 'commentary'

 

When Iconic checks this rule, it will look at each MediaStream below to see that the Type property *contains* 'audio' and that the Title property *contains* 'commentary'.

The check is case insensitive and will match things like 'commentary', 'Commentary 1', 'This is a commentary'.

You can do the same thing with Video MediaStreams.

 

media-streams.thumb.png.913ce6b0e2b9730a2ef1283cf4cfe6a9.png

 

I believe all the string based MediaStream properties are in the select dropdown for MediaStream rule properties.

The rest that are publicly exposed will be added, but I haven't had time yet to implement and test rule matching for all types.

Link to comment
Share on other sites

The Extras rule is more straightforward. If you've added any extras to your movies as described here under 'Movie Extras', you can use this rule to get a Badge for any movie that matches one or all of the Extras types in the select dropdown for that rule.

Link to comment
Share on other sites

cochize1

Ok, so I did a little test, addede MediaStream rule to Codec -> AAC and it in fuct it showed the iconss right away. So at least I know the plugin is working.

But since for me the main purpose for an extra badge over the poster is to distinguish the Voicover/Dubbed versions of the movies I have (since all my media are mp4, AAC, 1080p) the Tag rule is the only one I can implement but it just does not show up.

Link to comment
Share on other sites

cochize1

hmm, maybe it is simply the language problem. I checked again and for newly added english movies Tags work just fine,

But, for Voiceover/Dubbed movies that I gathered in one collection I changed all my metadata to be in my native Polish language.

For english metadata the badges with Tag Rule are being added and for polish metadata they are not. Can that be the case?

 

 

Link to comment
Share on other sites

22 minutes ago, cochize1 said:

Ok, so I did a little test, addede MediaStream rule to Codec -> AAC and it in fuct it showed the iconss right away. So at least I know the plugin is working.

But since for me the main purpose for an extra badge over the poster is to distinguish the Voicover/Dubbed versions of the movies I have (since all my media are mp4, AAC, 1080p) the Tag rule is the only one I can implement but it just does not show up.

Well, it's good to hear that you got some output. :)

So, for your case, I was thinking you'd be able to use a MediaStream Rule, assuming your subtitle tracks are part of your mp4 containers. They should show up as just another MediaStream at the bottom of your webapp view. You would check their properties there and build a Rule to match and be good to go.

If the subtitle files are separate from your mp4s, I think Emby might still provide enough information to match a Rule against, but I think it would require a new Subtitle Rule type. If that's the case, I'd want to recreate your subtitle set up and develop that feature. If Emby is providing the needed subtitle info, it should just take a couple of hours to implement and test.

Edited by roaku
Link to comment
Share on other sites

1 minute ago, cochize1 said:

hmm, maybe it is simply the language problem. I checked again and for newly added english movies Tags work just fine,

But, for Voiceover/Dubbed movies that I gathered in one collection I changed all my metadata to be in my native Polish language.

For english metadata the badges with Tag Rule are being added and for polish metadata they are not. Can that be the case?

 

 

That could be possible. I'm really not sure because Iconic's role in this part is just comparing the text you put in its config field to the text of each tag that Emby says the item has.

I'll experiment with language settings on my server today.

And of course, if any Emby developers can provide a shortcut to the answer for us, that'd be fine too. :)

Link to comment
Share on other sites

cochize1

hold on, a little edit here, I have tried with one other movie with Polish metadata and it worked but yet it seems just for that one movie, Below is a prtscr of the items under Tag - test and you can see that I did badges for Dubbed and Voicover movies myself but your option is way better:) Yet, although all have tags 'test' badges show up only for some of them. I tried clearing the cache and refreshing metadata for some of these movies.

image.thumb.png.5470dbe66c35bbf247e5a483efaf9966.pngAs you can see Alice Through the Looking Glass is dubbed, with Polish metadata and still show the badge, while the others don't.

Edited by cochize1
Link to comment
Share on other sites

5 minutes ago, cochize1 said:

hold on, a little edit here, I have tried with one other movie with Polish metadata and it worked but yet it seems just for that one movie, Below is a prtscr of the items under Tag - test and you can see that I did badges for Dubbed and Voicover movies myself but your option is way better:) Yet, although all have tags 'test' badges show up only for some of them. I tried clearing the cache and refreshing metadata for some of these movies.

image.thumb.png.5470dbe66c35bbf247e5a483efaf9966.png

First, excellent choice with the Hot Dog preset. 😁

 

Ok, next possibility...is this a multi-version movie...where you get the version dropdown selector if you're in the item view for that movie?

MediaStream Rules are able to check all versions of a movie to match its rules, but it's possible that somehow the tag is on the metadata for one version of the movie but not another and Iconic is only seeing the tagless one. It *shouldn't* happen that way, but I can't guarantee that it's not.

Anyway, I've got my test server movie library showing me Polish metadata and am going to see what Iconic says about the tags...

Edited by roaku
Link to comment
Share on other sites

cochize1

The thing is that Alice and It's a Wonderful life are multi versions with drop down menu, whereas the Gandarme movies with Louis De Funes are only voicover versions so there is only one movie file in that folder and tag should be dedicated to just that file. 

Link to comment
Share on other sites

@cochize1

Ok, here's the process I followed. Let me know if you think I missed something.

 

I switched my metadata to Polish, refreshed it for A Beautiful Mind, then added the English text 'test' as a tag.

I then added an Iconic Tag Rule to match that same English text 'test'.

 

My tag Icon did appear as expected:

polish-crowe.thumb.png.b620efa21a6b61126e2e8c919d5f7c19.png

Link to comment
Share on other sites

cochize1

That is correct, but this does not apply to the Gandarme movies with Louis de Funes I mentioned in previous topic since there is just one file in the folder without the drop down menu. So I guess it is not a matter of language settings.

Link to comment
Share on other sites

6 minutes ago, cochize1 said:

That is correct, but this does not apply to the Gandarme movies with Louis de Funes I mentioned in previous topic since there is just one file in the folder without the drop down menu. So I guess it is not a matter of language settings.

Ya, at this point, I think the most likely explanation is that there's somehow a mismatch between the text in the Tag Rule and the Tag text in those movies' metadata.

Another possibility is that something about the images are causing the image processing library to choke. If that's the case, you should be able to find an error in the embyserver.txt log file by scrolling through or searching it for 'error'.

Edited by roaku
Link to comment
Share on other sites

cochize1

The way I distinguish the versions is by following the emby rules: Movie Name (year) - version. And then the 'version' partn is being shown in the dropdown menu whether it's Dubbed or Voiceover. So my thought is that another rule, something like Naming could help. I.e. every filename with '- Dubbed'.

Link to comment
Share on other sites

2 minutes ago, cochize1 said:

The way I distinguish the versions is by following the emby rules: Movie Name (year) - version. And then the 'version' partn is being shown in the dropdown menu whether it's Dubbed or Voiceover. So my thought is that another rule, something like Naming could help. I.e. every filename with '- Dubbed'.

The filenames for each version are available to the plugin when it's analyzing the item, so a 'File Name' rule should be doable, where the Rule analysis is to check that at least one of the versions' filenames contains the user provided text.

The reason for not making it specific to the version naming convention is that I think other users use the auto-organize plugin to group their versions instead of the '-'. Tying it to the '-' convention would make the Rule useless for them.

I'll try it out this weekend.

 

  • Like 1
Link to comment
Share on other sites

Ok @cochize1 here's an updated beta build for you to try for your use case.

You might need to clear your browser cache to get the new Filename rule option to show up.

But once your config html is up to date, you'll be able to create a Filename rule for 'Dubbed' the way I created one for 'Directors Cut' here:

 

filename-rule.png.1042da6de71b578386a2cf8af7f58c60.png

 

In this example case for Alien, one of the movie version filenames contains 'Directors Cut', so the Rule matched.

By the way, earlier, I said the contains check for MediaStream Rules was case insensitive, but never clarified that that was only true for MediaStream Rules. Tags and now Filename Rules are *case sensitive*.

Iconic.dll

Edited by roaku
Link to comment
Share on other sites

cochize1

Took you long enought... :) joking. Restarting my server now with the updated veriosn of the plugin and will let you know how it works. Thank you.

Link to comment
Share on other sites

cochize1

So, at first I thought everything went fine but then again the new rule also misses on some movies (also on Gandarme and It's a Wonderfull Life so there might be something specific about those files).

I have created 2 Filename rules: Dubbed and Voiceover (same as all filenames I use, case sensitive etc,) and it works for some and for some it doesn't. Beside that, the plugin is awesome.

image.thumb.png.4f663b4602ab9c5d8e1f36686a9fa7fa.png

  • Like 1
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...