Jump to content

Plugin: EmbyIcons


Recommended Posts

yocker
Posted

I made a plugin that add icons to posters showing what audio and subtitle languages the video file has.
It still a little ruff so will be someone to test it please.

Icons should be named after language codes fx. eng.png
Subtitle icons should be named fx. srt.eng.png.

Settings only take effect after a server restart (working on fixing that)

 

EmbyIcons-Beta.zip

  • Like 3
Neminem
Posted

@yockerJust tested this, I like it 👍

image.thumb.png.6ffa74323f63dfb5011f85d44898ff7f.png

image.thumb.png.e985672f10cfba8db1b0dd582854f6a1.png

  • Thanks 1
yocker
Posted
2 hours ago, Neminem said:

@yockerJust tested this, I like it 👍

image.thumb.png.6ffa74323f63dfb5011f85d44898ff7f.png

image.thumb.png.e985672f10cfba8db1b0dd582854f6a1.png

Thank you! Thats awesome!

Will make the plugin fully ready for release then.

  • Like 1
Neminem
Posted

I have noticed that it not just checking main movie but also all extra folders.

Anyway to exclude extras for movies and TV Shows ?

That would speed up the operation a lot 😉

 

yocker
Posted
6 minutes ago, Neminem said:

I have noticed that it not just checking main movie but also all extra folders.

Anyway to exclude extras for movies and TV Shows ?

That would speed up the operation a lot 😉

 

Yes i was going to look at that next after what i'm going on now

CasaAtardecer
Posted

Hello friend,

Your Emby plugin work is intriguing. Do you think it might be adapted to overlay any type of media metadata on the media image poster? An example of an adaptation to your plugin could be to overlay on top of a photo image the Overview or Title metadata.

What do you think, is it a possibility? I would love to test field your plugin if you’re interested in feedback.

Cheers! Ta!

yocker
Posted
9 minutes ago, CasaAtardecer said:

Hello friend,

Your Emby plugin work is intriguing. Do you think it might be adapted to overlay any type of media metadata on the media image poster? An example of an adaptation to your plugin could be to overlay on top of a photo image the Overview or Title metadata.

What do you think, is it a possibility? I would love to test field your plugin if you’re interested in feedback.

Cheers! Ta!

I probably could but there is already the plugin CoverArt for that and i don't want to walk in on it's territory.
I made this plugin only because CoverArt couldn't do what this does.

You are welcome to take this code for this and change it any way you want to suit your needs. :)

 

  • Like 1
yocker
Posted (edited)

@NeminemI believe i got it working.

Emby seems to refresh posters twice so had problems having the plugin run twice and not respecting the settings because of that.
Please see if it's still a problem, it shouldn't be though.

Still haven't fixed the problem of having to reset the server for new settings to take effect though and i have no real idea of how to do that.

Edit: I put another file in here.. It's actual release and fully (Should 99% sure be fully) working. :)

 

 

EmbyIconsV1.zip

Edited by yocker
yocker
Posted

For any one wanting to use this plugin.

It might make scanning and refreshing meta data take a bit longer as i had do invoke FFMpeg twice for the scanning, one for audio and one for subtitles.
It's not an elegant solution but was all i could do to get this functionality, It shouldn't be to bad though.

Do with the plugin and code as you will, i made it for my own personal use so doesn't matter to me what others use it for! ;)

Lastly i suggest people look up Iconic and CoverArt as well as they are great plugins with similar functionality.

CasaAtardecer
Posted

Hello friend,

Thank you for making your custom plugin available to everyone, for potential adaptation for other overlays on different media types.

The CoverArt and Iconic plugins absolutely do provide the opportunity to display various bits of metadata information on the media image; however, to the best of my knowledge and research, neither plugin has any functionality with respect to photo media.

The Emby developers are hard at work reviewing and crafting enhancements for the Photo Viewer, so one hopes that features like those you have developed with your custom plugin might find their way into the core Emby programming.

Cheers!

Neminem
Posted

I think there is a bug in the new version, where I see part of path not found

image.png.175d891497cde89e74b3e50f81b09916.png

[2025-05-12 05:36:32] External subtitles scan failed: Could not find a part of the path '/mnt/Movies/The Adventures of Ford Fairlane (1990) {TmdbId-9548}'.
[2025-05-12 05:36:32] No icons to draw for 'The Adventures of Ford Fairlane', copying original
[2025-05-12 05:36:32] External subtitles scan failed: Could not find a part of the path '/mnt/Movies/The Adventures of Ford Fairlane (1990) {TmdbId-9548}'.
[2025-05-12 05:36:32] No icons to draw for 'The Adventures of Ford Fairlane', copying original
 

  • Thanks 1
yocker
Posted
8 minutes ago, Neminem said:

I think there is a bug in the new version, where I see part of path not found

image.png.175d891497cde89e74b3e50f81b09916.png

[2025-05-12 05:36:32] External subtitles scan failed: Could not find a part of the path '/mnt/Movies/The Adventures of Ford Fairlane (1990) {TmdbId-9548}'.
[2025-05-12 05:36:32] No icons to draw for 'The Adventures of Ford Fairlane', copying original
[2025-05-12 05:36:32] External subtitles scan failed: Could not find a part of the path '/mnt/Movies/The Adventures of Ford Fairlane (1990) {TmdbId-9548}'.
[2025-05-12 05:36:32] No icons to draw for 'The Adventures of Ford Fairlane', copying original
 

I think i see the problem, the addon doesn't like the { } signs.

Will look into it, many thanks!

yocker
Posted (edited)
45 minutes ago, Neminem said:

I think there is a bug in the new version, where I see part of path not found

image.png.175d891497cde89e74b3e50f81b09916.png

[2025-05-12 05:36:32] External subtitles scan failed: Could not find a part of the path '/mnt/Movies/The Adventures of Ford Fairlane (1990) {TmdbId-9548}'.
[2025-05-12 05:36:32] No icons to draw for 'The Adventures of Ford Fairlane', copying original
[2025-05-12 05:36:32] External subtitles scan failed: Could not find a part of the path '/mnt/Movies/The Adventures of Ford Fairlane (1990) {TmdbId-9548}'.
[2025-05-12 05:36:32] No icons to draw for 'The Adventures of Ford Fairlane', copying original
 

Should be fixed now.
Please try this version.

As a bonus i threw in a fix for it trying to add icons to actor posters that i have been working on. :)
Should speed up the scanning a bit as well.

 

EmbyIcons.dll

Edited by yocker
yocker
Posted
3 hours ago, CasaAtardecer said:

Hello friend,

Thank you for making your custom plugin available to everyone, for potential adaptation for other overlays on different media types.

The CoverArt and Iconic plugins absolutely do provide the opportunity to display various bits of metadata information on the media image; however, to the best of my knowledge and research, neither plugin has any functionality with respect to photo media.

The Emby developers are hard at work reviewing and crafting enhancements for the Photo Viewer, so one hopes that features like those you have developed with your custom plugin might find their way into the core Emby programming.

Cheers!

Thank you to! :)

I'm sorry but i have no plans on making anything for photos and home videos.

Without having looked it up, i don't know what to make the plugin to hook on to with photos anyway, only thing i can think of is resolution.
Without that all photos would just get the same icons, maybe a tag in the photo or name but that would require people to go through and rename their entire photo library.
 

Neminem
Posted
1 hour ago, yocker said:

Should be fixed now.
Please try this version.

@yockerwill test when I get home from work 😁

Thank you 👍

Neminem
Posted (edited)

OK just testing the new dll you put up.

It look like still are some issues.

[2025-05-12 14:38:35] No icons to draw for 'All the Right Moves', copying original
76) {TmdbId-891}, skipping subtitle scan
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All of Me (1984) {TmdbId-10631}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'All of Me', copying original
ying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/Allan Quatermain and the Lost City of Gold (1986) {TmdbId-9710}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Allan Quatermain and the Lost City of Gold', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/Allan Quatermain and the Lost City of Gold (1986) {TmdbId-9710}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Allan Quatermain and the Lost City of Gold', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All for One (2011) {TmdbId-72054}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Alle For Én', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All for One (2011) {TmdbId-72054}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Alle For Én', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All for Two (2013) {TmdbId-168510}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Alle For To', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All for Two (2013) {TmdbId-168510}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Alle For To', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All for Three (2017) {TmdbId-420956}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Alle for tre', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All for Three (2017) {TmdbId-420956}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Alle for tre', copying original
[2025-05-12 14:39:45] Folder does not exist: /mnt/Movies/Nighthawks (1981) {TmdbId-21610}, skipping subtitle scan
[2025-05-12 14:39:45] Folder does not exist: /mnt/Movies/Die Another Day (2002) {TmdbId-36669}, skipping subtitle scan
[2025-05-12 14:39:45] No icons to draw for 'Nighthawks', copying original
[2025-05-12 14:39:45] No icons to draw for 'Die Another Day', copying original
[2025-05-12 14:39:45] Folder does not exist: /mnt/Movies/Braven (2018) {TmdbId-459910}, skipping subtitle scan
an
[2025-05-12 14:39:45] Folder does not exist: /mnt/Movies/Die Another Day (2002) {TmdbId-36669}, skipping subtitle scan
[2025-05-12 14:39:45] No icons to draw for 'Braven', copying original
nal


And I see this in the server logs.

2025-05-12 14:38:35.805 Error ImageProcessor: Error enhancing image
	*** Error Report ***
	Version: 4.9.0.53
	Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3
	Operating system: Linux version 6.12.24-Unraid (root@Develop) (gcc (GCC) 14.2.0, GNU ld version 2.44-slack151) #1 SMP PREEMPT_DYNAMIC Sat May  3 00:12:52 PDT 2025
	OS/Process: x64/x64
	Framework: .NET 8.0.11
	Runtime: system/System.Private.CoreLib.dll
	Processor count: 8
	Data path: /config
	Application path: /system
	System.IO.IOException: System.IO.IOException: The process cannot access the file '/config/cache/images/enhanced-images/3/368e9e8c5375de7a691d67b3d402c89d.png' because it is being used by another process.
	   at Microsoft.Win32.SafeHandles.SafeFileHandle.Init(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Int64& fileLength, UnixFileMode& filePermissions)
	   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException)
	   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
	   at EmbyIcons.EmbyIconsEnhancer.EnhanceImageAsync(BaseItem item, String inputFile, String outputFile, ImageType imageType, Int32 imageIndex)
	   at Emby.Drawing.ImageProcessor.ExecuteImageEnhancers(IEnumerable`1 imageEnhancers, String inputPath, String outputPath, BaseItem item, ImageType imageType, Int32 imageIndex)
	   at Emby.Drawing.ImageProcessor.GetEnhancedImageInternal(String originalImagePath, BaseItem item, ImageType imageType, Int32 imageIndex, IImageEnhancer[] supportedEnhancers, String cacheGuid, CancellationToken cancellationToken)
	   at Emby.Drawing.ImageProcessor.GetEnhancedImage(ItemImageInfo image, List`1 imageFeatures, ImageProcessingOptions options, BaseItem item, Int32 imageIndex, IImageEnhancer[] enhancers, CancellationToken cancellationToken)
	Source: System.Private.CoreLib
	TargetSite: Boolean Init(System.String, System.IO.FileMode, System.IO.FileAccess, System.IO.FileShare, System.IO.FileOptions, Int64, Int64 ByRef, System.IO.UnixFileMode ByRef)

On a side note I'm using Beta Server to test.

That's might be the issue right 😉

Edited by Neminem
yocker
Posted (edited)
21 minutes ago, Neminem said:

OK just testing the new dll you put up.

It look like still are some issues.

[2025-05-12 14:38:35] No icons to draw for 'All the Right Moves', copying original
76) {TmdbId-891}, skipping subtitle scan
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All of Me (1984) {TmdbId-10631}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'All of Me', copying original
ying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/Allan Quatermain and the Lost City of Gold (1986) {TmdbId-9710}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Allan Quatermain and the Lost City of Gold', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/Allan Quatermain and the Lost City of Gold (1986) {TmdbId-9710}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Allan Quatermain and the Lost City of Gold', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All for One (2011) {TmdbId-72054}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Alle For Én', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All for One (2011) {TmdbId-72054}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Alle For Én', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All for Two (2013) {TmdbId-168510}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Alle For To', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All for Two (2013) {TmdbId-168510}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Alle For To', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All for Three (2017) {TmdbId-420956}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Alle for tre', copying original
[2025-05-12 14:38:35] Folder does not exist: /mnt/Movies/All for Three (2017) {TmdbId-420956}, skipping subtitle scan
[2025-05-12 14:38:35] No icons to draw for 'Alle for tre', copying original
[2025-05-12 14:39:45] Folder does not exist: /mnt/Movies/Nighthawks (1981) {TmdbId-21610}, skipping subtitle scan
[2025-05-12 14:39:45] Folder does not exist: /mnt/Movies/Die Another Day (2002) {TmdbId-36669}, skipping subtitle scan
[2025-05-12 14:39:45] No icons to draw for 'Nighthawks', copying original
[2025-05-12 14:39:45] No icons to draw for 'Die Another Day', copying original
[2025-05-12 14:39:45] Folder does not exist: /mnt/Movies/Braven (2018) {TmdbId-459910}, skipping subtitle scan
an
[2025-05-12 14:39:45] Folder does not exist: /mnt/Movies/Die Another Day (2002) {TmdbId-36669}, skipping subtitle scan
[2025-05-12 14:39:45] No icons to draw for 'Braven', copying original
nal


And I see this in the server logs.

2025-05-12 14:38:35.805 Error ImageProcessor: Error enhancing image
	*** Error Report ***
	Version: 4.9.0.53
	Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3
	Operating system: Linux version 6.12.24-Unraid (root@Develop) (gcc (GCC) 14.2.0, GNU ld version 2.44-slack151) #1 SMP PREEMPT_DYNAMIC Sat May  3 00:12:52 PDT 2025
	OS/Process: x64/x64
	Framework: .NET 8.0.11
	Runtime: system/System.Private.CoreLib.dll
	Processor count: 8
	Data path: /config
	Application path: /system
	System.IO.IOException: System.IO.IOException: The process cannot access the file '/config/cache/images/enhanced-images/3/368e9e8c5375de7a691d67b3d402c89d.png' because it is being used by another process.
	   at Microsoft.Win32.SafeHandles.SafeFileHandle.Init(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Int64& fileLength, UnixFileMode& filePermissions)
	   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException)
	   at System.IO.FileSystem.CopyFile(String sourceFullPath, String destFullPath, Boolean overwrite)
	   at EmbyIcons.EmbyIconsEnhancer.EnhanceImageAsync(BaseItem item, String inputFile, String outputFile, ImageType imageType, Int32 imageIndex)
	   at Emby.Drawing.ImageProcessor.ExecuteImageEnhancers(IEnumerable`1 imageEnhancers, String inputPath, String outputPath, BaseItem item, ImageType imageType, Int32 imageIndex)
	   at Emby.Drawing.ImageProcessor.GetEnhancedImageInternal(String originalImagePath, BaseItem item, ImageType imageType, Int32 imageIndex, IImageEnhancer[] supportedEnhancers, String cacheGuid, CancellationToken cancellationToken)
	   at Emby.Drawing.ImageProcessor.GetEnhancedImage(ItemImageInfo image, List`1 imageFeatures, ImageProcessingOptions options, BaseItem item, Int32 imageIndex, IImageEnhancer[] enhancers, CancellationToken cancellationToken)
	Source: System.Private.CoreLib
	TargetSite: Boolean Init(System.String, System.IO.FileMode, System.IO.FileAccess, System.IO.FileShare, System.IO.FileOptions, Int64, Int64 ByRef, System.IO.UnixFileMode ByRef)

On a side note I'm using Beta Server to test.

That's might be the issue right 😉


The problem is it's trying to write to files that are already in use.
Might be the beta causing the issue but also other plugins.

Will look into making some safe guards against this problem.

Edited by yocker
Neminem
Posted

No need the beta is a test server.

I will create a release server on my test environment 😁

And try there, then we can see if its because of beta 🤣😂

Neminem
Posted (edited)

😂🤣 beta issue 👍

Sorry about the fuss.

Installed a release version on my test server.

Scanning my lib now and already working 👍

image.thumb.png.91766598111206b5c9b5a266e58da4cf.png

Edited by Neminem
yocker
Posted
4 minutes ago, Neminem said:

😂🤣 beta issue 👍

Sorry about the fuss.

Installed a release version on my test server.

Scanning my lib now and already working 👍

image.thumb.png.91766598111206b5c9b5a266e58da4cf.png

Nice, many thanks!
I will still look into it, the beta will be a release someday! ;)

For now this one should work with the beta though if you want to keep using the beta.

EmbyIcons.dll

Neminem
Posted

I will test the new one on beta, too.

I will report back later 👍

Neminem
Posted
14 minutes ago, yocker said:

For now this one should work with the beta though if you want to keep using the beta.

Just testing this on beta server, so fare so good 👍

image.thumb.png.96b801995dd9b1ce5b40e854acbfba84.png

yocker
Posted
4 minutes ago, Neminem said:

Just testing this on beta server, so fare so good 👍

image.thumb.png.96b801995dd9b1ce5b40e854acbfba84.png

Nice!
I can't thank you enough for testing! I don't have access to a test server with Linux at the moment so your help has been absolutely wonderful to have!
 

Neminem
Posted

Np 😉

Got my main unRaid tower server + ond Nuc that's my test / fun house unRaid server.

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...