Jump to content

New Metadata Plugin: TV Maze


softworkz
softworkz
Message added by softworkz,

Currently, the plugin is available for the beta server (>= 4.8.0.16) only.

Recommended Posts

Starting from today, a new metadata plugin is available in the catalog:

TV Maze Metadata Provider

image.png.d8b4f27b9738e4765aa8dd0dd7c69275.png

This is a highly efficient metadata provider for TV series which is safe to add as it has very low impact on library scanning performance.

Features:

  • A single API request per series provides all data: series, season, episode, seriesimage, seasonimage, episodeimage and extra images (banner, logo, backdrop)

  • New 2-stage caching mechanism

    • Single JSON file per series/person

    • In-Memory Cache with auto-expiration

  • Failed lookup caching (with auto-expiration)

  • Uses TvMaze update checking mechanism

    • Works by timestamp comparison

    • Cached files do not expire by fixed interval

  • Added episode matching by name and air date

  • Metadata Providers

    • TvMazeSeriesProvider

    • TvMazeEpisodeProvider

    • TvMazeSeasonProvider

    • TvMazePersonProvider

  • Image Providers

    • TvMazeSeriesImageProvider

    • TvMazeEpisodeImageProvider

    • TvMazeSeasonImageProvider

    • TvMazePersonImageProvider

Limitations

  • Provides metadata in English language only
    (but it is able to identify series and episodes by original title)

Updates

  • Version 4.8.0.20 (March 11, 2023)
    • Now also provides crew information (people) for series
    • Provides guest-cast and guest-crew information (people) for episodes

 

Edited by softworkz
  • Like 4
  • Thanks 1
Link to comment
Share on other sites

rbjtech

If it's API delivery removes the oh-so annoying tvdb's 'TBA' for new episodes then I'll make it my primary provider.. :)

edit

Not sure if it's just my system - but post installing the Plugin/Restart - I needed to go into the Library and enable TV Maze as a metadata provider - it was at the top of the list for each section, but not enabled.

Edited by rbjtech
Link to comment
Share on other sites

10 minutes ago, rbjtech said:

If it's API delivery removes the oh-so annoying tvdb's 'TBA' for new episodes then I'll make it my primary provider.. :)

Well, that's exactly one of the things that you'll be able to figure out using the Data Explorer Plugin:

Which provider returns which data for any given item in Emby server. Then you can adjust your provider order.

12 minutes ago, rbjtech said:

Not sure if it's just my system - but post installing the Plugin/Restart - I needed to go into the Library and enable TV Maze as a metadata provider - it was at the top of the list for each section, but not enabled.

This is normal. It will only get active automatically for libraries where you haven't made an explicit provider configuration yet. But when you have configured something, Emby assumes (must actually assume) that you don't want the installation of a provider affect any of the configurations you have made.

Just think the provider would be for anime for example. You would not want this to become active for all libraries once you have installed it.

  • Thanks 1
Link to comment
Share on other sites

Happy2Play
10 hours ago, rbjtech said:

the oh-so annoying tvdb's 'TBA' for new episodes

Just checking Upcoming episodes that show TVDB also show TBA on TVMaze.

  • Sad 1
Link to comment
Share on other sites

mickle026

getting lots of errors, due to "tvmaze" folder not being created in the cache folder.

 

2022-12-01 04:51:31.485 Info HttpClient: GET http://api.tvmaze.com/lookup/shows?thetvdb=361868
2022-12-01 04:51:31.550 Info HttpClient: GET http://api.tvmaze.com/shows/37809?embed[]=episodeswithspecials&embed[]=seasons&embed[]=cast&embed[]=akas&embed[]=images&embed[]=alternatelists
2022-12-01 04:51:31.666 Error TV Maze: TvMazeDataHub.GetMazeSeries: 
	*** Error Report ***
	Version: 4.8.0.19
	Command line: C:\Users\mickl\AppData\Roaming\Emby-Server\system\EmbyServer.dll -noautorunwebapp
	Operating system: Microsoft Windows 10.0.19045
	Framework: .NET 6.0.10
	OS/Process: x64/x64
	Runtime: C:/Users/mickl/AppData/Roaming/Emby-Server/system/System.Private.CoreLib.dll
	Processor count: 6
	Data path: C:\Users\mickl\AppData\Roaming\Emby-Server\programdata
	Application path: C:\Users\mickl\AppData\Roaming\Emby-Server\system
	System.IO.DirectoryNotFoundException: System.IO.DirectoryNotFoundException: Could not find a part of the path 'L:\cache\tvmaze\37809-series.json'.
	   at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options)
	   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, FileOpenOptions fileOpenOptions)
	   at Emby.Common.Implementations.Serialization.JsonSerializer.SerializeToFile(Object obj, String file)
	   at TvMaze.Data.Cache.Base.FileItemCache`2.SaveItemToFile(TKey key, TValue value)
	   at TvMaze.Data.Cache.Base.FileItemCache`2.Add(TKey key, TValue value)
	   at TvMaze.Data.Cache.MazeSeriesCache.Add(UInt32 key, MazeSeries value)
	   at TvMaze.Data.TvMazeDataHub.GetMazeSeries(Dictionary`2 seriesProviderIds, String preferredMetadataLanguage, CancellationToken cancellationToken)
	Source: System.Private.CoreLib
	TargetSite: Microsoft.Win32.SafeHandles.SafeFileHandle CreateFile(System.String, System.IO.FileMode, System.IO.FileAccess, System.IO.FileShare, System.IO.FileOptions)

I manually created the folder and it all starts working correctly.  I think its just missing the folder creation process?

Link to comment
Share on other sites

18 minutes ago, mickle026 said:

I manually created the folder and it all starts working correctly.  I think its just missing the folder creation process?

No, it actually checks for folder existence and creates the folder if it doesn't exist.

I bet that the first error in the log is about it being unable to create the folder. Maybe a permissions issue as you seem to use a non-standard location for the cache?

Link to comment
Share on other sites

mickle026

It's not permissions.  It has total access to the local drive.

It must be just because it's a custom path then.

Like I said create the folder and everything is fine, remove the folder and it errors continuously.

This is the only issue I can find.. otherwise it seems to be working well 

Link to comment
Share on other sites

mickle026
7 hours ago, softworkz said:

Hmm - what about the "tvmazeperson" folder, did that one get auto-created?

No, That is not created either.

I created both tvmazeperson and tvmaze-person in my custom cache path, but neither seem to be getting used.  I cannot find any errors either in the log for these.

After creating just the main folder of "tvmaze" json files are now downloading for tvshows, but not for people

http://api.tvmaze.com/search/people?q=Robin%20Thicke

Such as this returns json in the browser, but i get no results from identify or image search in emby

	
0	
score	1
person	
id	67644
url	"https://www.tvmaze.com/people/67644/robin-thicke"
name	"Robin Thicke"
country	
name	"United States"
code	"US"
timezone	"America/New_York"
birthday	"1977-03-10"
deathday	null
gender	"Male"
image	
medium	"https://static.tvmaze.com/uploads/images/medium_portrait/334/836709.jpg"
original	"https://static.tvmaze.com/uploads/images/original_untouched/334/836709.jpg"
updated	1669366512
_links	
self	
href	"https://api.tvmaze.com/people/67644"
1	
score	0.23950568
person	
id	26325
url	"https://www.tvmaze.com/people/26325/robyn-thaler-hickey"
name	"Robyn Thaler Hickey"
country	null
birthday	null
deathday	null
gender	"Female"
image	
medium	"https://static.tvmaze.com/uploads/images/medium_portrait/54/135880.jpg"
original	"https://static.tvmaze.com/uploads/images/original_untouched/54/135880.jpg"
updated	1491073591
_links	
self	
href	"https://api.tvmaze.com/people/26325"

The identify issue was explained by Luke as he was ignoring all other results than tmdb - something to do with a metadata refresh issue here .  But im also getting no results shown for getimages either.

is this down to a custom cache path also?

 

Untitled.png.f67c52150cfac2ba9221563778e72abf.png

I should be getting this tvmaze result from getimages

https://static.tvmaze.com/uploads/images/medium_portrait/334/836709.jpg

 

836709.jpg.88583d960f04afe1f49eb1cfb2cdf3e7.jpg

Edited by mickle026
Link to comment
Share on other sites

mickle026

It seems tvmaze person is working - at least in part as 1 json file has just written there.

It seems YET another reboot of the server fixed this issue.  I had to create the folders manually in the custom cache path.

Edited by mickle026
Link to comment
Share on other sites

45 minutes ago, mickle026 said:

It seems tvmaze person is working - at least in part as 1 json file has just written there.

It seems YET another reboot of the server fixed this issue.

I have just updated the plugin. It will now logs info about the path creation.

You should get it by restarting the server (it will tell you then to reboot again).

Please delete or rename the folders tvmaze and tvmazeperson folders, so we'll be able to see what's going on.

Thanks!

Link to comment
Share on other sites

mickle026
1 minute ago, softworkz said:

I have just updated the plugin. It will now logs info about the path creation.

You should get it by restarting the server (it will tell you then to reboot again).

Please delete or rename the folders tvmaze and tvmazeperson folders, so we'll be able to see what's going on.

Thanks!

I will try later aas im in the middle of a new library folder being added and scanned.  Thanks.

  • Thanks 1
Link to comment
Share on other sites

mickle026

I still cannot look at the folder creation just yet because my server is currently in use, but I have noticed another issue

I have an adult library, and because I cannot dissable the fetching of people on libraries wrong people are being fetched from tvmaze

Its a difficult subject to post about without offense to someone.

Heres an example I have a person in a movie (a male actor) called Preston Parker.  None of the API's have valid data on this person.
BUT, TvMaze Returns https://www.tvmaze.com/people/135265/jordan-preston-carter  which is not even spelled the same - just similar.

This is a child actor (Definatelly the wrong actor!)
I cannot delete it, it just redownloads.
I cannot remove the tvMaze Provider Id as it just repopulates.

Even checking to lock the metadata after removing the id, it still repopulates.

What I have done is found an image of the required person on google, and uploaded it to stop the wrong image. 
However the TvMaze id keeps persistantly putting the young (underage) actors ID in the field.

 

 

Edited by mickle026
Link to comment
Share on other sites

10 minutes ago, mickle026 said:

because I cannot dissable the fetching of people on libraries wrong people are being fetched from tvmaze

Is this happening with TvMaze only or with other providers as well?

Link to comment
Share on other sites

mickle026
2 hours ago, softworkz said:

Is this happening with TvMaze only or with other providers as well?

No others too but tvmaze is worse because the names dont have to match 100%  Preston Parker and Jordan Preston Carter,  Preston is the only similarity.

Link to comment
Share on other sites

23 minutes ago, mickle026 said:

No others too but tvmaze is worse because the names dont have to match 100%  Preston Parker and Jordan Preston Carter,  Preston is the only similarity.

I've pushed a new version which requires exact matching names when not used interactively

  • Thanks 1
Link to comment
Share on other sites

BillOatman

Looks like good stuff!  Makes me wish it worked with the stable release, but I'll wait.  Thanks for the effort!

Link to comment
Share on other sites

18 minutes ago, BillOatman said:

Looks like good stuff!  Makes me wish it worked with the stable release, but I'll wait.  Thanks for the effort!

We need a bit of a testing phase to make sure the data is correct and people don't get nonsense in their libraries (like with the fuzzy person search that @mickle026 had reported above.

In case I haven't mentioned - you can use the new DataExplorer plugin to compare the metadata results from different providers:

 

  • Thanks 1
Link to comment
Share on other sites

rbjtech

I've been using since release as my primary provider - no real issues to report.

A couple of the images I've not been too keen on (they seem to Favor 'sponsored' images that list the network and/or distribution network - I prefer a clean 'show' and image only look.) - but easy enough to just change them using thetvdb's image.

No TBA's for episodes to report .. :) .. which was my main real reason for changing.

 

Edited by rbjtech
  • Thanks 1
Link to comment
Share on other sites

11 hours ago, rbjtech said:

I've been using since release as my primary provider - no real issues to report.

A couple of the images I've not been too keen on (they seem to Favor 'sponsored' images that list the network and/or distribution network - I prefer a clean 'show' and image only look.) - but easy enough to just change them using thetvdb's image.

No TBA's for episodes to report .. :) .. which was my main real for changing.

Thanks a lot for the feedback!

Have you tried moving thetvdb's image fetcher to the top? This should work fine together with TVMaze as the primary provider because TVMaze returns tvdb ids, so it won't need an additional identification for thetvdb. 

  • Like 1
Link to comment
Share on other sites

rbjtech
6 hours ago, softworkz said:

Have you tried moving thetvdb's image fetcher to the top? 

haha yea - I thought the metadata/images were linked to the same provider for some reason - but as you say they are separate and have now put thetvdb as my primary image provider - lets see how that plays.

Thanks !

  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
  • 2 months later...

I've just published a new version:

  • Version 4.8.0.20 (March 11, 2023)
    • Now also provides crew information (people) for series
    • Provides guest-cast and guest-crew information (people) for episodes

Requires Emby Server Beta 4.8.0.20

This is the final beta release - please test!

If all goes well, then it will be released alongside the 4.8 server.

  • Like 5
Link to comment
Share on other sites

Junglejim

Thanks mate this looks great. Sorry.. I'm not on beta so I can't test but will defo give this a go when 4.8 goes live. 👍

Data Explorer as well.. your on a roll mate, same as above.. I can wait. :)

Looking forward to testing TGB theme. 👍 Thanks again for the invite.

Edited by Junglejim
  • Like 1
Link to comment
Share on other sites

  • 5 months later...
HappyZombiSlayr

Is this still being worked on? I don't see the releases for it anywhere on the Github Repo.

 

Nevermind... My dumb brain didn't read the 'in the catalog' part.

Edited by HappyZombiSlayr
Cluelessness
  • 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...