Jump to content

Plugin: EmbyCredits, detect end credits and add auto skip.


Recommended Posts

Neminem
Posted
3 minutes ago, yocker said:

Would you want me to make this EmbyCredit with support for PaddleOCR the default?

Definitely no to that, you will have to deal with people, that does not have a Nvidia GPU with at least 8GB VRAM.

Mine does have problems if images size are to high, and its even worst on series that are in 4K resolution.

But new commers will not understand this and complain about it when using a Nvidia card with > 8GB.

9 minutes ago, yocker said:

POOL_DEFAULT_MIN=2
POOL_DEFAULT_MAX=6
POOL_DEFAULT_IDLETIMEOUTMILLIS=10000
POOL_DEFAULT_EVICTIONRUNINTERVALMILLIS=5000

I will do a test with this ๐Ÿ˜

  • Like 1
yocker
Posted
3 minutes ago, Neminem said:

Definitely no to that, you will have to deal with people, that does not have a Nvidia GPU with at least 8GB VRAM.

Mine does have problems if images size are to high, and its even worst on series that are in 4K resolution.

But new commers will not understand this and complain about it when using a Nvidia card with > 8GB.

You are most likely right, it would likely confuse some and think the plugin is broken. ๐Ÿ˜•ย 
I will see if i can some up with a solution, maybe keep it as a custom plugin with warnings every where.

That said, if any one else have anything to say about it then please do, i aim to please! ;)

  • Like 1
Neminem
Posted

Well that's something new ๐Ÿ˜

With those tweaks I looks better.

image.png.4afab18c4fcf1a8a81c60653d06fae32.png

Lets see when done ๐Ÿ˜

  • Like 1
yocker
Posted
11 minutes ago, Neminem said:

Well that's something new ๐Ÿ˜

With those tweaks I looks better.

image.png.4afab18c4fcf1a8a81c60653d06fae32.png

Lets see when done ๐Ÿ˜

I seriously need to do something about the confidence counter as well. :Dย 

  • Haha 1
Neminem
Posted

Jep all I ever see is 95% ๐Ÿ˜‚๐Ÿคฃ

None above or below.

Its ether fail or 95% ๐Ÿคฃ๐Ÿ˜‚

  • Like 1
  • Agree 1
Neminem
Posted

Same series ๐Ÿ˜ with new docker tweaks.

Start time 15:39

Finish time 16:24

Total time 45 min

2026-01-22 15:39:16.713 Info CreditsDetectionApiService: Series found: Millennium, InternalId: 128621
2026-01-22 15:39:16.724 Info CreditsDetectionApiService: Found 67 episodes for series InternalId: 128621 (excluded 1 specials)
2026-01-22 15:39:16.724 Info Plugin: Cleared in-memory batch detection cache and processing queue for fresh detection
2026-01-22 15:39:16.724 Info Plugin: Queued 67 episodes for processing (forced reprocess). Queue size: 67

2026-01-22 16:24:19.781 Info Plugin: Processing complete: 67 succeeded, 0 failed

It started fast and furious, but had a stall, and recovered to continue.

  • Like 1
yocker
Posted (edited)
4 minutes ago, Neminem said:

Same series ๐Ÿ˜ with new docker tweaks.

Start time 15:39

Finish time 16:24

Total time 45 min

2026-01-22 15:39:16.713 Info CreditsDetectionApiService: Series found: Millennium, InternalId: 128621
2026-01-22 15:39:16.724 Info CreditsDetectionApiService: Found 67 episodes for series InternalId: 128621 (excluded 1 specials)
2026-01-22 15:39:16.724 Info Plugin: Cleared in-memory batch detection cache and processing queue for fresh detection
2026-01-22 15:39:16.724 Info Plugin: Queued 67 episodes for processing (forced reprocess). Queue size: 67

2026-01-22 16:24:19.781 Info Plugin: Processing complete: 67 succeeded, 0 failed

It started fast and furious, but had a stall, and recovered to continue.

Wonder what that stall is. The plugin should wait patiently like a good boy for the tesseract.
Will look into seeing if i can improve it a little.

45 minutes reduction is very nice! Maybe a little "readme" on the front page here would be in order.

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

45 minutes reduction is very nice! Maybe a little "readme" on the front page here would be in order.

That's true ๐Ÿ˜ almost halv the time.

It stalled after the first 2, and recovered but never got fully up to speed again.

It looks as if the docker was overloaded, but it did not restart.

image.thumb.png.f66caf7068934c877509b5d766102f5d.png

Created means I made the tweaks to the docker.

image.png.f4d4dde6e474544ee0e070b2fed03678.png

ย 

Edited by Neminem
yocker
Posted
5 hours ago, Neminem said:

That's true ๐Ÿ˜ almost halv the time.

It stalled after the first 2, and recovered but never got fully up to speed again.

It looks as if the docker was overloaded, but it did not restart.

image.thumb.png.f66caf7068934c877509b5d766102f5d.png

Created means I made the tweaks to the docker.

image.png.f4d4dde6e474544ee0e070b2fed03678.png

ย 

Will look into if there's anything i can do, wouldn't get my hopes up though as suspect you are right and it might be we found the limit to tesseract with your system. :(ย 

rechigo
Posted

Anyone else experiencing issues with QSV? It just immediately fails with no credits found... not seeing anything in the logs pointing to any real errors. I tried specifying the specific card as well (/dev/dri/card0, /dev/dri/renderD128) which both have the same result

ย 

I would like to note VAAPI works fine... I prefer to use QSV because I find it to be slightly higher performance in the applications I've tested.

ย 

in case I missed something, debug logs:

credits-detection-debug-2026-01-23T02-14-11.log

yocker
Posted
23 hours ago, rechigo said:

Anyone else experiencing issues with QSV? It just immediately fails with no credits found... not seeing anything in the logs pointing to any real errors. I tried specifying the specific card as well (/dev/dri/card0, /dev/dri/renderD128) which both have the same result

ย 

I would like to note VAAPI works fine... I prefer to use QSV because I find it to be slightly higher performance in the applications I've tested.

ย 

in case I missed something, debug logs:

credits-detection-debug-2026-01-23T02-14-11.log 15.3 kBย ยทย 0 downloads

@NeminemYou had intel right? Does it work for you?

yocker
Posted
1 minute ago, Neminem said:

@yockerTesting it now ๐Ÿ˜‰

QSV test :

image.png.9b84eef361f243d5f91f454a0233ee54.png

Hmm with QSV they all fail.

credits-detection-debug-2026-01-24T07-33-34.log 18.62 kBย ยทย 0 downloads

image.png.b1b282a97de996077c995208389043f5.png

VAAPI test :ย 

image.png.a9a5d69691646bf6fdb2ca762a2a5ee1.png

credits-detection-debug-2026-01-24T07-46-46.log 19.4 kBย ยทย 0 downloads

image.png.9174ea632e7a5a514dba6945872bdea7.png

VAAPI is working fine.

ย 

QSV issue in Emby's drivers I guess.

And here are server logs, with debug enabled.

embyserver (15).txt 2.38 MBย ยทย 0 downloads

Thank you, will look into it.

yocker
Posted (edited)
On 1/23/2026 at 3:17 AM, rechigo said:

Anyone else experiencing issues with QSV? It just immediately fails with no credits found... not seeing anything in the logs pointing to any real errors. I tried specifying the specific card as well (/dev/dri/card0, /dev/dri/renderD128) which both have the same result

ย 

I would like to note VAAPI works fine... I prefer to use QSV because I find it to be slightly higher performance in the applications I've tested.

ย 

in case I missed something, debug logs:

credits-detection-debug-2026-01-23T02-14-11.log 15.3 kBย ยทย 0 downloads

After testing (Thanks @Neminem) it seems like it might not be the plugin that has a problem but the ffmpeg that Emby uses and/or Emby it self.
I will keep looking at it but don't think there's much i can do.

Edited by yocker
  • Like 1
rechigo
Posted
5 hours ago, yocker said:

After testing it seems like it might not be the plugin that has a problem but the ffmpeg that Emby uses and/or Emby it self.
I will keep looking at it but don't think there's much i can do.

I had a feeling considering I had other issues with QSV a few months ago and we were just told we have to wait for the new FFmpeg version.... not sure when thats coming out

yocker
Posted (edited)

New version out (1.6.9.0) onย yocksers/EmbyCreditsย github

Added:

  1. Image Preprocessing
    Contrast enhancement (adjustable 0.5-3.0)
    Brightness adjustment (adjustable -0.5 to 0.5)
    Sharpening filter with configurable strength

  2. Region of Interest (ROI) Detection
    Focus OCR analysis on specific screen regions
    Options: Full Frame, Bottom Third, Bottom Half, Center, Top Third
    Reduces processing time and improves accuracy for specific layouts
    Note: Not recommended unless uses for re-detecting videos that otherwise failed.

  3. Fuzzy Keyword Matching
    Levenshtein distance algorithm for detecting misspelled/partial keywords
    Configurable maximum edit distance (default: 2)
    Catches OCR errors like "Director" โ†’ "Dlrector"

  4. Scrolling Credits Detection
    Detects text position changes across consecutive frames
    Identifies scrolling credits by tracking vertical movement
    Configurable window size and position threshold

  5. Adaptive Frame Rate
    Dynamically adjusts frame sampling based on text density
    Automatically speeds up/slows down analysis

  6. Credit Structure Detection
    Identifies role-name patterns (e.g., "Director: John Doe")
    Recognizes structured credit layouts
    Configurable role patterns and minimum role count

  7. Quick Preset Buttons
    Best Quality: Optimized for accuracy
    Best Speed: Optimized for performance

Fixed:

  1. Some hardware acceleration bugs.
  2. Confidence score now actually work, yay!

Known bugs:

  1. Intel QSV hardware acceleration not working, this will requires an updated to the ffmpeg built into Emby.
    Please use VAAPI for now.

Please note:
Turning on all settings at once require a large computer to have detections done within a reasonable time so set the settings you need for best results for you and leave the rest.

All the options have only been given for users to customize the plugin to work as best as possible with their libraries.
Improvements to user-friendliness is next on the todo list.

Thank you to @Neminemfor help with testing and bug chasing.

Edited by yocker
  • Like 1
  • Thanks 1
rechigo
Posted (edited)

I am encountering an error when trying to save my settings in the latest version

ย 

It looks like the input field for the language was accidentally removed. I'm not seeing it anywhere in the HTML

image.png.fa796a2060e11e99e1b6463680e8a78c.png

ย 

image.thumb.png.5b730be0cbeff91b6a1fe3b246a9abd4.png

Edited by rechigo
rechigo
Posted

Well I was able to snake my way around that little bug and save my settings... I am very impressed with these new additions! Previously undetected credits in lots of Animes are now detected!

ย 

Now one thing I would be interested in seeing as an addition would be the ability to open a video player from the chapter marker view and skip to the position the credits were detected in to make it easy to verify detection... is this possible to do?

yocker
Posted
35 minutes ago, rechigo said:

I am encountering an error when trying to save my settings in the latest version

ย 

It looks like the input field for the language was accidentally removed. I'm not seeing it anywhere in the HTML

image.png.fa796a2060e11e99e1b6463680e8a78c.png

ย 

image.thumb.png.5b730be0cbeff91b6a1fe3b246a9abd4.png

Have fixed it now.
Uploading to github as we speak.

yocker
Posted

And it's up now, v1.6.9.0.

ย 

5 minutes ago, rechigo said:

Now one thing I would be interested in seeing as an addition would be the ability to open a video player from the chapter marker view and skip to the position the credits were detected in to make it easy to verify detection... is this possible to do?

I'm working on trying to have a screenshot shown next to the time stamp.
Not promising anything though! ;)ย ย 

  • Like 1
sydlexius
Posted (edited)
31 minutes ago, yocker said:

And it's up now, v1.6.9.0.

ย 

I'm working on trying to have a screenshot shown next to the time stamp.
Not promising anything though! ;)ย ย 

I was contemplating "borrowing" the UX from SponsorBlock and adapting it to support Emby's existing intro/credit markers, and perhaps add in support for recap/mid-credit scenes, using a similarly highlighted seek bar like how it's done for youtube. It'd be useful purely for manually setting values, and obviously would only work through the web interface. It'd also only store data locally, as previous attempts (ex: Chapter API) had poor uptake on syncing results to a remote server. It's really too bad that there's no standard for storing chapter markers in NFO files!ย 

Edited by sydlexius
  • Like 2
yocker
Posted
22 minutes ago, sydlexius said:

I was contemplating "borrowing" the UX from SponsorBlock and adapting it to support Emby's existing intro/credit markers, and perhaps add in support for recap/mid-credit scenes, using a similarly highlighted seek bar like how it's done for youtube. It'd be useful purely for manually setting values, and obviously would only work through the web interface. It'd also only store data locally, as previous attempts (ex: Chapter API) had poor uptake on syncing results to a remote server. It's really too bad that there's no standard for storing chapter markers in NFO files!ย 

Sounds like a good idea if you can get enough people to install and use it. I like it!
Sadly i think Emby plus the amount of people actually installing plugins is to small a "sample" to make it work but it's worth a try!

  • Like 1
rechigo
Posted (edited)
1 hour ago, yocker said:

And it's up now, v1.6.9.0.

ย 

I'm working on trying to have a screenshot shown next to the time stamp.
Not promising anything though! ;)ย ย 

Now if you can't jump to a specific timestamp in a video, could you at least give us a button to open up a video player or the media page so we can play the video ourselves? Just because a single screenshot might not be a perfect indicator

Edited by rechigo
rbjtech
Posted
6 hours ago, sydlexius said:

I was contemplating "borrowing" the UX from SponsorBlock and adapting it to support Emby's existing intro/credit markers, and perhaps add in support for recap/mid-credit scenes, using a similarly highlighted seek bar like how it's done for youtube. It'd be useful purely for manually setting values, and obviously would only work through the web interface. It'd also only store data locally, as previous attempts (ex: Chapter API) had poor uptake on syncing results to a remote server. It's really too bad that there's no standard for storing chapter markers in NFO files!ย 

Nice.ย  Remember there is semi support for other chapter types beyond just introstart/end and creditstart.ย  We 'may' be able to get those added as values in the lookup table but I highly doubt we can do this via the API.ย  ย Using Jellyfins naming as part of their MediaSegments standards would be a good thing for portability as I don't see Emby enhancing this aspect of Emby any time soon.

re the NFO - when we did this originally (via the backup plugin), we simply used the chapter type as the key, saved under episodedetails to keep it as simple as possible - so

<episodedetails>

ย  <introstart>time</introstart>

ย  <introend>time</introend>

ย </episodedetails>

ย 

ย 

  • Thanks 1
rechigo
Posted

Im getting a lot of false positives right now... claims of keyword detection even in a timeframe that doesnt have any text on screen. Any pointers?

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