Jump to content

Actor metadata is downloaded only for the people that TMDB has as series regulars


Recommended Posts

Posted

Whether it uses my own nfo's, TVDB or TMDB , Emby will download metadata and TMDB thumbnails only for actors that are series regulars on TMDB. It won't download anything for episode guest stars and, if the series cast provided by the nfo  or TVDB is larger than the one from TMDB, it won't download metadata for the additional series members.

There are two problems with this: one is the ugly aesthetics of 80% of the actors database having placeholders or,  in a few cases, TVDB thumbnails, which don't look good when mixed with others. The other problem is that TMDB returns as series regulars only the regulars of the last aired season, which is extremely annoying because, when I start a series, I don't want to know who is and who isn't in the last season

This is not an issue of not finding the actor on TMDB,  a manual refresh of an "empty" actor will actually pull whatever data is available, but manually refreshing thousands of actors is not feasible. So, what's the issue, is it intentional and in this case why or is it a bug?

 

Posted

Hi, are you saying you've turned off internet metadata features for your library?

Posted
On 8/23/2020 at 12:23 PM, Luke said:

Hi, are you saying you've turned off internet metadata features for your library?

No. I have TMDB set as the primary (and only source) for both series and episodes. I also have nfo files saved in the media folders, so when Emby is scanning, it gives priority to the local files and reads everything like it should.

 

The problem is that it downloads info and pictures from TMDB only for those actors that TMDB has as regulars for the last season, so if I have 15 actors in tvshow.nfo and TMDB has only 8, then 7 actors will have no data. Same with episodes, it won't download any metadata for guest stars, not even if I delete the nfo's so that it can pull episode info directly from TMDB

 

Like I said, it's not a problem of not finding the actor on TMDB, because a manual refresh of an actor will download data and pictures

Posted

Try refreshing the metadata of the movie or series containing the person in question. Please see if that helps. Thanks.

Posted
18 hours ago, Luke said:

Try refreshing the metadata of the movie or series containing the person in question. Please see if that helps. Thanks.

Movies were never a problem, Emby downloads metadata and images for every actor from the nfo file (if they are available on TMDB). The problem is only with series and episodes.

I tried both variants of refreshing metadata (search for missing metadata and replace metadata) and the result is the same. The only difference is that, if you choose replace metadata, it will ignore the nfo files and rewrite everything with data pulled from TMDB. It still won't download anything for episode actors, though.

I don't know if it helps, but here's two logs. The first one is from building a library (just one tv series) using local nfo files, the second one is the same thing , but I had deleted the nfo's, so that it can pull directly from TMDB

 

embyserver-AoS with nfo.txt

embyserver-AoS without nfo.txt

Posted

what metadata fetchers are enabled on your tv library, and in what order?

Posted
6 hours ago, Luke said:

what metadata fetchers are enabled on your tv library, and in what order?

Only TMDB, for both series and episodes

Posted

That's where the people metadata comes from. You can enable tvdb as an additional source for images, but the biography comes from tmdb.

Posted
10 hours ago, Luke said:

That's where the people metadata comes from. You can enable tvdb as an additional source for images, but the biography comes from tmdb.

I know that! What I'm saying is that, during scan, it downloads metadata and images only for those people that appear as series regulars on TMDB. This is what the actors look for a series after scan:

series_cast.thumb.jpg.fd5f825ecf088bc4810a1821c29359f2.jpg

 

And this is how an episode cast looks:

episode_cast.thumb.jpg.7387fc97f3d8b2b53e590e857e592e3a.jpg

 

In both cases, the people that have images are those that TMDB returns as series regulars. Which, btw, kinda blows because they're actually the regulars of the last season. I don't know what TMDB were thinking with this.

The rest have no metadata and no images. "Refresh metadata" for series/episode and "Refresh people" don't fix this. The only way to do it is to do a manual metadata refresh for each actor

series_cast2.thumb.jpg.e6bbc58df1538f17504aff84f7c60e9b.jpg

 

series_cast3.thumb.jpg.d9af48d0d3322f92dc5b8ec05db57ce9.jpg

 

My question was why, is it a bug or it's just how is supposed to work?

Posted

The person image comes from the movie or series metadata, so yes. We don't do automated person lookups by name because the metadata providers have complained about us hammering them.

Manual lookups are ok though because those won't be as frequent, so that's why individual actor metadata refreshes help.

So that's why I suggested tvdb because when you combine the two, you'll get more images.

Posted
3 hours ago, Luke said:

The person image comes from the movie or series metadata, so yes. We don't do automated person lookups by name because the metadata providers have complained about us hammering them.

Manual lookups are ok though because those won't be as frequent, so that's why individual actor metadata refreshes help.

So that's why I suggested tvdb because when you combine the two, you'll get more images.

Okay, I did some digging...

My understanding is that during scan Emby doesn't download images, It just saves the path in the database, so that they can be downloaded when an app has to display them. This makes sense, like you said, it's so that it won't strain the providers. The problem is that the id's and image paths for episode actors are not saved in the database, even though Emby receives this data after making an api request for an episode

This is the api request taken from the log and the guest stars id and image path are returned:

https://api.themoviedb.org/3/tv/1404/season/1/episode/1?api_key=f6bd687ffa63cd282b6ff2c6877f2669&append_to_response=images,external_ids,credits,videos&language=en&include_image_language=en,null

And this is the database:

database.thumb.jpg.61bb663a787e3144000701e2f61a2e4c.jpg

 

Rows 110 through 118 are the series actors, they have id's and paths saved. Starting with row 123, those are the episode actors and they have no id and no image path. This must be a bug, right? I don't think that downloading 10-15 images when opening the details page of an episode puts that much strain on their servers

 

Posted

Great investigation. Looks like the moviedb plugin isn't capturing this information at the episode level so I'll push an update so that it will do that.

@Happy2Play

  • Like 2
  • 2 weeks later...
Posted (edited)

@Luke    @Happy2Play

Sorry for the lateness, I only now found some time to test the fix. It works, but there are still a few hitches:

 

1. If you have local nfo's, there will be no API requests DURING SCAN for episodes and seasons, only one request for the series and another one for configuration, so that data (id's and image paths) will still not be written to the database. In order to make it work, you have to "refresh metadata - search for missing metadata" after the initial scan, this action will make API requests for episodes and seasons. I don't know if it's by design or an oversight and the workaround is simple and not a deal breaker, but it effectively doubles (even more) the time of a library scan, so it would be nice if it wasn't needed.

 

2. It doesn't work for season actors. It's the same issue as the one from above for episode actors: the API inquiry for a season returns that season's cast, but the id's and images are not written to the database, so, if an actor is not listed by TMDB as a series regular or as a guest star, then he/she won't have  a TMDB id and image.

Also, when pulling the info from TMDB (as in when there's no local season.nfo), the season regulars are not written to the database. Initially, I thought that this is how is supposed to work, that Emby doesn't support actors at the season level, but then I added actors to a couple of season.nfo files and the scan picked them up and they were written to the database. I can see them in the database and they're displayed at the bottom of the season page, after the list of episodes.

A suggestion related to this: when there are no local nfo's and TMDB is selected as the main source for series metadata, Emby should use an aggregate of the regulars of every season instead of what the API returns for the series cast. That's because, like I've mentioned before, their API has the regulars of the last season as the series cast, but that's too limited and even spoilery. I tried with two series in Kodi and it looks like this is what they're doing when using their TMDB scraper. This doesn't really affect me, since I use my own nfo's. but I thought I'd put it forward

 

3. When reading from nfo's, Emby ignores the GuestStar type and writes everyone as Actor. I thought that it didn't like something about my nfo files, so I went and used the exact ones that it had generated on a previous scan, but nope, it still wrote everyone as Actor. I checked the database, they all had  0 for PersonType. This is one of the files that I used:

Chuck - S01E03 - Chuck Versus The Tango.nfo

It was generated by Emby during a scan from TMBD. Btw, it looks like it didn't save the air date of the episode, only the year

Edited by caalin
Posted
Quote

Btw, it looks like it didn't save the air date of the episode, only the year

Your record at the time of the nfo save must not have had that information.

Happy2Play
Posted
45 minutes ago, caalin said:

It was generated by Emby during a scan from TMBD. Btw, it looks like it didn't save the air date of the episode, only the year

Sorry I am not following as the nfo has a aired date.

<aired>2007-10-07</aired>

 

Posted
38 minutes ago, Happy2Play said:

Sorry I am not following as the nfo has a aired date.


<aired>2007-10-07</aired>

 

Oh, crap, I missed it because the line was somewhere between the cast and the file details and I was looking for it at the top an bottom. My bad

Anyway, it doesn't matter, the actual issues were the ignoring of the GuestStar tags from nfo's and not writing to the database the id's and images of season regulars (basically what was happening before with the episode actors)

Happy2Play
Posted (edited)

@Luke Emby overrites GuestStar with Actor, but would appear at least via the UI GuestStar can not assign Role.  Number 3 above.

<actor>
    <name>Ryan McPartlin</name>
    <role>Devon Woodcomb</role>
    <type>GuestStar</type>
  </actor>

Is Emby converting type to accommodate Role?

  <actor>
    <name>Ryan McPartlin</name>
    <role>Devon Woodcomb</role>
    <type>Actor</type>
    <thumb>https://image.tmdb.org/t/p/original/v0vKYfoSVLBEGBZ2ldjm3cHJwf3.jpg</thumb>
  </actor>

But manually changing applies GuestStar, but technically GuestStar do not have a Role via the UI.

  <actor>
    <name>Ryan McPartlin</name>
    <role>Devon Woodcomb</role>
    <type>GuestStar</type>
    <thumb>C:\Users\Media\AppData\Roaming\Emby-Server\programdata\metadata\library\7a\7a5ef0da19a3424c95515377ee7200f3\folder.jpg</thumb>
  </actor>

 

Edited by Happy2Play
Happy2Play
Posted

1. From a existing metadata standpoint I would not expect Emby to do any queries.  I personally believe local metadata trumps online query.  Further action should need to be required.

 

Happy2Play
Posted (edited)

2. Emby currently does not really parse anything besides Overview from Seasons.  To me very few shows would actually benefit from having Season Crew as they reside at Series level.

Emby still technically has the information as everything queried from the api resides in the cache folder it is just a matter of Emby actually using it.

Edited by Happy2Play
Posted (edited)
3 hours ago, Happy2Play said:

@Luke Emby overrites GuestStar with Actor, but would appear at least via the UI GuestStar can not assign Role.  Number 3 above.

 

 I tested this again. I put the local nfo's into the recycle bin so that Emby would parse data only from TMDB and this is one of the nfo's that it generated:

Chuck - S01E01 - Chuck Versus The Intersect.nfo

Everything looks fine, except for something that is unrelated to this topic: the air date is shorter (smaller?) by one day. It says it's 2007-09-23, but it's 2007-09-24. The API has the correct air date: https://api.themoviedb.org/3/tv/1404/season/1/episode/1?api_key=f6bd687ffa63cd282b6ff2c6877f2669&append_to_response=images,external_ids,credits,videos&language=en&include_image_language=en,null

This is probably a bug with the TMDB plugin, it happens every time when parsing data from them and it affects seasons, too. The dates are wrong in the library, too, not just in the nfo's

Anyway, back to the topic. I think the role-guest star thing is a bug in the UI. In the list of actors, it shows the role, but when you try to edit a person, the "role" field is missing. For the regulars, both the role and type fields are present

actorsList.jpg.05f708829d825ce20646e082693140e6.jpg

 

actorsNoRole.jpg.c64a188df2aee0e57df0f34dc7383623.jpg

 

 

Edited by caalin
Happy2Play
Posted

Emby did not create that nfo file correct?  So it parses the information you provided but Emby will not create the same.

The current parser and UI does not account for Roles of Guest Stars so that to me would be a future enhancement.  But at the same time you have a conflict as you have this person shown twice as Cast and Guest stars in the episode metadata so a dev has to choose.  To me Episode should only show guest stars as cast should be covered with the Series.

Info for the cached episode json received from TMDB.

"credits": {
        "cast": [ {
                "character": "Devon Woodcomb",
                "credit_id": "5256cb8a19c2956ff6062be8",
                "id": 93031,
                "name": "Ryan McPartlin",
                "profile_path": "/v0vKYfoSVLBEGBZ2ldjm3cHJwf3.jpg",
                "order": 7
            }
        ],
        
        "guest_stars": [ {
                "id": 93031,
                "name": "Ryan McPartlin",
                "credit_id": "5256cb4c19c2956ff605edfd",
                "character": "Dr. Devon 'Captain Awesome' Woodcomb",
                "order": 3,
                "profile_path": "/v0vKYfoSVLBEGBZ2ldjm3cHJwf3.jpg"
            }

As for the air date this is a TimeZone conflict as your timezone offset conflict with provider metadata.

"air_date": "2007-09-24T00:00:00.0000000Z",

Since I am UTC -8 I get a airdate of the 23rd also do to my timezone offset.  Discussing in a couple other topics.  

@Luke shouldn't things like Premiere and Air Date be immune to timezone offset since they are specific to that date?

Posted (edited)
1 hour ago, Happy2Play said:

Emby did not create that nfo file correct?  So it parses the information you provided but Emby will not create the same.

Actually, it did. I mentioned above that it was created by Emby with data pulled entirely from TMDB. I had deleted the local nfo's for this exact purpose. So, the parser can do both Role and Type, it actually saves them both in the dbase with 0 for Actor, 1 for Director, 2 for Writer, 4 for Guest Star, 5 for Composer. Like here:

databasePeople.thumb.jpg.564166ec7f3cf4c2f092f038638d9e63.jpg

In the ItemID column, 7 is the database id for the series (Homeland), 16 for ep 1.01, 17 for 1.02, etc. Rows 26 through 33 have 0 for PersonType, those are the season regulars (or the "cast" as per the reply from API, they are returned for each episode inquiry). Rows 34 through 48 are the guest stars for ep. 1.01, with the Person Type being 4. Those three have NULL in the role field because they don't have a role on TMDB

The Android TV app displays only guest stars on the episode page and it shows only the 4's from the above picture, along with their role. So, it's safe to say that it can identify both Role and Type.

In the other case, the duplicate is there because there's an error on TMDB, the actor is incorrectly listed as a season regular for the first season. The parser didn't seem phased by this, though, it just ignored the first instance and wrote him as a guest star.

Edited by caalin
Posted

I saw the NFO plugin was updated.  @Luke, does it have a fix for the GuestStar error that was discussed here?

Posted

Okay. I did a test and it works. Nice

  • Like 1

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