CyferShepard / Jellystat

Jellystat is a free and open source Statistics App for Jellyfin
MIT License
1.12k stars 34 forks source link

Emby Support #133

Open tobiasredel opened 11 months ago

tobiasredel commented 11 months ago

Hi,

would it be possible to also support Emby?

CyferShepard commented 11 months ago

Hey @tobiasredel , i plan to include this once iv ironed out all the bugs. Jellystat has actually come a long way in terms of performance and bugs and il soon be focusing on adding new features instead of focusing entirely optimizations and bug fixes. No guaranteed timeline but definitely in the next few months

RenMu-V commented 11 months ago

Very much looking forward to emby's support and release to github! @CyferShepard

rguinn829 commented 10 months ago

I 100% would love to see this last thing needed to move off Plex for good.

bonaminGR commented 10 months ago

Agree with the guys above. This is something we definitely need. <3

PrivatHomeServer commented 10 months ago

I used a long time embystats and I hope that I can change to jellystats with emby soon. So one more upvote in the community @CyferShepard.

Thanks in advance.

Soldize commented 9 months ago

Up Vote!

hadim commented 9 months ago

Up vote!

innosflew commented 9 months ago

Yeah, it would be nice to have Emby support.

Tuumke commented 9 months ago

+1 Don't wan't to switch to Jellyfin just to have this nice statspage (i pay for Emby premiere) and embystat is 'in hybernation'. @CyferShepard Any progress yet on Emby support?

CyferShepard commented 9 months ago

Hey @Tuumke , Emby support will be worked on in the next update, so not the upcoming 1.1.0 but around 1.1.1 or 1.1.2. The current code base is in a good place and im ironing out the last of the bugs, a few big ones, but everything is now mostly setup to support a different source with some minor changes to fit in Emby support as iv been making changes ahead of time for Emby.

Tuumke commented 9 months ago

Hey @Tuumke , Emby support will be worked on in the next update, so not the upcoming 1.1.0 but around 1.1.1 or 1.1.2. The current code base is in a good place and im ironing out the last of the bugs, a few big ones, but everything is now mostly setup to support a different source with some minor changes to fit in Emby support as iv been making changes ahead of time for Emby.

Good to hear! I'll be following this for sure! Jellystats look amazing. Thanks for your quick reply and all the effort you put in <3

daranto commented 9 months ago

Thanks for working on Emby Support 👌

ElectronicEconomy317 commented 8 months ago

Up vote for Emby support!

tcude commented 7 months ago

Just commenting to express interest in this!

iamronr commented 7 months ago

We're still about 2 maybe 3 updates out from getting Emby support. I'm thoroughly looking forward to this...

linedpaper commented 7 months ago

Looking forward to this! Using it for jf currently and it works great!

spaceboy76 commented 7 months ago

very keen to see this

Cruv commented 7 months ago

I would be willing to donate to this cause either financially or through code!

jaketame commented 6 months ago

How can people help?

CyferShepard commented 6 months ago

Hey everyone, for those that are willing to help, to only place that can be worked on right now is to make an api class for emby, similar to jellyfin-api.js. There would also be changes to other code to enable swapping between the two classes either for jellyfin or emby but il work on that later. The api class for emby would be a safe place to start for now

xyxxyxxy commented 6 months ago

To get an Emby API client I can recommend using https://github.com/hey-api/openapi-ts It generates a client implementation based on the OpenAPI documentation.

Example usage: openapi-ts --input https://swagger.emby.media/openapi.json --output ./emby-client --name EmbyClient --client axios

CreekWalker commented 5 months ago

Emby support would be greate, thanks 👍

hacshacdgacs commented 4 months ago

Just adding for others following that 1.1.1 has been working well for me in Emby so far. Thanks @CyferShepard Edit: Mostly well, have just noticed that the jellyfin sync hasn't been working and fails with a blank terminal output but everything else seems to work fine.

Cruv commented 4 months ago

Just adding for others following that 1.1.1 has been working well for me in Emby so far. Thanks @CyferShepard Edit: Mostly well, have just noticed that the jellyfin sync hasn't been working and fails with a blank terminal output but everything else seems to work fine.

I tried as well. The issue you I'm seeing is the users and library pages never load. My guess is its looking for hardcoded Jellyfin database names and Emby doesn't have them named the same.

hacshacdgacs commented 4 months ago

Just adding for others following that 1.1.1 has been working well for me in Emby so far. Thanks @CyferShepard Edit: Mostly well, have just noticed that the jellyfin sync hasn't been working and fails with a blank terminal output but everything else seems to work fine.

I tried as well. The issue you I'm seeing is the users and library pages never load. My guess is its looking for hardcoded Jellyfin database names and Emby doesn't have them named the same.

I'm not having that issue, my users and library page load fine. The only issue I have is the full jellyfin sync task fails. My library and user pages work fine so that may be a seperate issue for you. image

Cruv commented 4 months ago

My mistake. Switched to the unstable branch and now users and libraries display. Nice work @CyferShepard !

CyferShepard commented 4 months ago

Hey everyone, glad emby works for the majority of features. Im aware of the issue regarding user/ library syncs, this is why i labeled them as WIP

hadim commented 4 months ago

I tried as well with my Emby server and everything works super smoothly.

salty2011 commented 4 months ago

Just deployed this to check out, heres some initial feedback from some testing I have done

Great start, been looking forward to this. Let me know if there is any additional info you need for the above issues

vw-kombi commented 4 months ago

I found everything working fine until I came across the playback reporting import job. Emby has that too but it does not work. Looking forward to that to being back all my data.

crazybadger commented 4 months ago

Installed in a Docker container without any issue, and on first impression, it looks very good - the closest thing to PlexPy/Tataull I've seen for emby.! I need to play with it once it's finished scanning, but thanks for all your efforts.

gthrift commented 4 months ago

I've been running Jellystat against my Emby library for about a week now (v1.1.1) and had to clear my database and start over. It was tracking activity, which I could see by the statistics on the main page and on the statistics page but activity stopped loading in the last day or two. This is a new system, and I have been doing a lot of reconfiguring, so I may have caused a corrupted database during a couple of hard power losses. I'll keep an eye on it during the next week.

I'll echo another user and say I'm able to browse my media collection within Jellystat but unable to see episodes once clicking into a season.

Also, not sure if a bug or by design, but the recent items on the homepage seems to be in a random order. Clicking into the individual libraries shows the media in chronological order of last added.

Finally, I'm sure there may be roadmap that I have not seen, but I would be interested in seeing some add additional statistics.

I would also at some point like to see an option for emby theming, but that is a very low priority ask.

With all that said, fantastic job and I can't wait to see how the project evolves and matures.

vw-kombi commented 4 months ago

Just reporting an issue in the embyserver.txt log file that is caused by jellystat - seems jellystat is looking for a file that does not exist on the emby server : Note - my jellystat server ip here is 192.168.194 - and it is causing this error in the logs 👍

2024-07-28 17:19:26.604 Info Server: http/1.1 Response 404 to ‌‍‍192.168.1.194‌. Time: 24ms. GET http://‌‍‍192.168.1.201‌:8096/web/assets/img/devices/android.svg

This thing does not exist in emby - so throws this -

2024-07-28 17:19:26.603 Error Server: Error processing request      Error Report     Version: 4.8.8.0     Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3     Operating system: Linux version 6.1.74-Unraid (root@Develop-612) (gcc (GCC) 12.2.0, GNU ld version 2.40-slack151) #1 SMP PREEMPT_DYNAMIC Fri Feb  2 11:06:32 PST 2024     Framework: .NET 6.0.25     OS/Process: x64/x64     Runtime: system/System.Private.CoreLib.dll     Processor count: 12     Data path: /config     Application path: /system     System.IO.DirectoryNotFoundException: System.IO.DirectoryNotFoundException: Could not find a part of the path '/system/dashboard-ui/assets/img/devices/android.svg'.        at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func2 errorRewriter)        at Interop.CheckIo(Error error, String path, Boolean isDirectory, Func2 errorRewriter)        at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)        at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)        at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)        at System.IO.Strategies.FileStreamHelpers.ChooseStrategy(FileStream fileStream, String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, Int64 preallocationSize)        at System.IO.FileStream..ctor(String path, FileStreamOptions options)        at Emby.Server.Implementations.IO.ManagedFileSystem.GetFileStream(String path, FileOpenMode mode, FileAccessMode access, FileShareMode share, Int32 bufferSize, FileOpenOptions fileOpenOptions, Int64 preAllocationSize)        at Emby.Server.Implementations.IO.ManagedFileSystem.GetFileStream(String path, FileOpenMode mode, FileAccessMode access, FileShareMode share, Int32 bufferSize, FileOpenOptions fileOpenOptions)        at Emby.Server.Implementations.IO.IOManager.GetResponse(HttpRequestOptions options, MediaProtocol protocol)        at Emby.Server.Implementations.IO.IOManager.GetResponse(HttpRequestOptions options)        at Emby.Server.Implementations.HttpServer.HttpResultFactory.GetContent(StaticFileResultOptions options, Int64 offset, Int64 length, CancellationToken cancellationToken)        at Emby.Server.Implementations.HttpServer.FileWriter.SetContentResponseHeaders(Nullable1 reportedTotalContentLength, CancellationToken cancellationToken)        at Emby.Server.Implementations.HttpServer.HttpResultFactory.GetStaticResult(IRequest requestContext, StaticResultOptions options)        at Emby.Web.Api.WebAppService.Get(GetDashboardResource request)        at Emby.Server.Implementations.Services.ServiceController.GetTaskResult(Task task)        at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IServerApplicationHost appHost, IRequest httpReq, IResponse httpRes, IStreamHelper streamHelper, RestPath restPath, String responseContentType, CancellationToken cancellationToken)        at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IRequest httpReq, ReadOnlyMemory1 urlString, ReadOnlyMemory1 localPath, CancellationToken cancellationToken)     Source: System.Private.CoreLib     TargetSite: Void ThrowExceptionForIoErrno(ErrorInfo, System.String, Boolean, System.Func2[Interop+ErrorInfo,Interop+ErrorInfo])      2024-07-28 17:19:26.604 Info Server: http/1.1 Response 404 to ‌‍‍192.168.1.194‌. Time: 24ms. GET http://‌‍‍192.168.1.201‌:8096/web/assets/img/devices/android.svg 2024-07-28 17:19:26.825 Info Server: http/1.1 POST http://‌‍‍emby.mydomain.com‌/emby/Sessions/Playing/Progress. UserAgent: Dalvik/2.1.0 (Linux; U; Android 12; Chromecast Build/STTE.240315.002) 2024-07-28 17:19:26.827 Info SessionManager: Adding playSession 0e4156c9516e4ebdaa9575b0fd134fcf to session 4a6ed5e710036f2069d391ca1e7ce638 2024-07-28 17:19:26.891 Info Server: http/1.1 Response 204 to ‌‍‍2001:8003:651e:3e00:9544:25d9:d017:30af‌. Time: 66ms. POST http://‌‍‍emby.mydomain.com‌/emby/Sessions/Playing/Progress 2024-07-28 17:19:27.571 Error Server: Error processing request      Error Report     Version: 4.8.8.0     Command line: /system/EmbyServer.dll -programdata /config -ffdetect /bin/ffdetect -ffmpeg /bin/ffmpeg -ffprobe /bin/ffprobe -restartexitcode 3     Operating system: Linux version 6.1.74-Unraid (root@Develop-612) (gcc (GCC) 12.2.0, GNU ld version 2.40-slack151) #1 SMP PREEMPT_DYNAMIC Fri Feb  2 11:06:32 PST 2024     Framework: .NET 6.0.25     OS/Process: x64/x64     Runtime: system/System.Private.CoreLib.dll     Processor count: 12     Data path: /config     Application path: /system     System.IO.DirectoryNotFoundException: System.IO.DirectoryNotFoundException: Could not find a part of the path '/system/dashboard-ui/assets/img/devices/android.svg'.        at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func2 errorRewriter)        at Interop.CheckIo(Error error, String path, Boolean isDirectory, Func2 errorRewriter)        at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)        at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)        at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)        at System.IO.Strategies.FileStreamHelpers.ChooseStrategy(FileStream fileStream, String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, Int64 preallocationSize)        at System.IO.FileStream..ctor(String path, FileStreamOptions options)        at Emby.Server.Implementations.IO.ManagedFileSystem.GetFileStream(String path, FileOpenMode mode, FileAccessMode access, FileShareMode share, Int32 bufferSize, FileOpenOptions fileOpenOptions, Int64 preAllocationSize)        at Emby.Server.Implementations.IO.ManagedFileSystem.GetFileStream(String path, FileOpenMode mode, FileAccessMode access, FileShareMode share, Int32 bufferSize, FileOpenOptions fileOpenOptions)        at Emby.Server.Implementations.IO.IOManager.GetResponse(HttpRequestOptions options, MediaProtocol protocol)        at Emby.Server.Implementations.IO.IOManager.GetResponse(HttpRequestOptions options)        at Emby.Server.Implementations.HttpServer.HttpResultFactory.GetContent(StaticFileResultOptions options, Int64 offset, Int64 length, CancellationToken cancellationToken)        at Emby.Server.Implementations.HttpServer.FileWriter.SetContentResponseHeaders(Nullable1 reportedTotalContentLength, CancellationToken cancellationToken)        at Emby.Server.Implementations.HttpServer.HttpResultFactory.GetStaticResult(IRequest requestContext, StaticResultOptions options)        at Emby.Web.Api.WebAppService.Get(GetDashboardResource request)        at Emby.Server.Implementations.Services.ServiceController.GetTaskResult(Task task)        at Emby.Server.Implementations.Services.ServiceHandler.ProcessRequestAsync(HttpListenerHost httpHost, IServerApplicationHost appHost, IRequest httpReq, IResponse httpRes, IStreamHelper streamHelper, RestPath restPath, String responseContentType, CancellationToken cancellationToken)        at Emby.Server.Implementations.HttpServer.HttpListenerHost.RequestHandler(IRequest httpReq, ReadOnlyMemory1 urlString, ReadOnlyMemory1 localPath, CancellationToken cancellationToken)     Source: System.Private.CoreLib     TargetSite: Void ThrowExceptionForIoErrno(ErrorInfo, System.String, Boolean, System.Func2[Interop+ErrorInfo,Interop+ErrorInfo])      2024-07-28 17:19:27.571 Info Server: http/1.1 Response 404 to ‌‍‍192.168.1.194‌. Time: 4ms. GET http://‌‍‍192.168.1.201‌:8096/web/assets/img/devices/android.svg

gthrift commented 3 months ago

The activity page still does not show any activity for me. It just sits at a spinning circle and never loads.

crazybadger commented 3 months ago

The activity page still does not show any activity for me. It just sits at a spinning circle and never loads.

Activity page working for me on 1.1.0 linked to emby 4.8.8.0

jaycedk commented 3 months ago

Same here !! On 1.1.0 and 4.8.8.0

@gthrift Are you on Emby Beta ?

gthrift commented 3 months ago

Yes, I was on the unstable release, 1.1.1. Rolled back to 1.1.0 and activity shows up.

On Thu, Aug 1, 2024 at 11:36 AM jaycedk @.***> wrote:

Same here !! On 1.1.0 and 4.8.8.0

@gthrift https://github.com/gthrift Are you on Beta ?

— Reply to this email directly, view it on GitHub https://github.com/CyferShepard/Jellystat/issues/133#issuecomment-2263374545, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABB6R6HMQFU4DDQIBCJEKFLZPJIXVAVCNFSM6AAAAABAMFSDGOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRTGM3TINJUGU . You are receiving this because you were mentioned.Message ID: @.***>

jaycedk commented 3 months ago

Its working fine with Emby 4.8.8.0 and Jellystat 1.1.1 aka Unstable image So what version of emby are you running ? 4.9 ? or 4.8 ?

jaycedk commented 3 months ago

Come to think of it. Do you have mixed libraries ? Mine would not work.

gthrift commented 3 months ago

Running Emby 4.8.8.0. I have a movies and a tv library. Both libraries are made up of two directories each (movies-4k and tv and tv-kids).

On Fri, Aug 2, 2024 at 10:32 AM jaycedk @.***> wrote:

Come to think of it. Do you have mixed libraries ? Mine would not work.

— Reply to this email directly, view it on GitHub https://github.com/CyferShepard/Jellystat/issues/133#issuecomment-2265532903, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABB6R6C3KPD54WO5JWBM67TZPOKBLAVCNFSM6AAAAABAMFSDGOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENRVGUZTEOJQGM . You are receiving this because you were mentioned.Message ID: @.***>

mdeeter commented 3 months ago

I'm running Emby Server on Docker (version 4.8.7.0)

cyfershepard/jellystat:latest - this image showed the streaming on the home page, but not much else worked at all

cyfershepard/jellystat:unstable - this image worked for me 100%

CyferShepard commented 3 months ago

Hi @mdeeter , Emby support is not in the latest build, is currently in unstable as WIP and will only make its way to stable on the next release

CyferShepard commented 3 months ago

Emby Integration

mdeeter commented 3 months ago

Hi @mdeeter , Emby support is not in the latest build, is currently in unstable as WIP and will only make its way to stable on the next release

Yup, I understand... I was just confirming what jaycedk found. And just wanted to share the image names in case any noob couldn't figure it out. It's so cool to have this avail for Emby.

evilpig commented 1 month ago

Only issue I'm having with Emby is the Playback Reporting Import feature. Just runs and ends with nothing being imported.