diff --git a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
index f2d0bdc54..a23012716 100644
--- a/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
+++ b/MediaBrowser.XbmcMetadata/Parsers/BaseNfoParser.cs
@@ -1030,6 +1030,45 @@ namespace MediaBrowser.XbmcMetadata.Parsers
break;
}
+ case "type":
+ {
+ var val = reader.ReadElementContentAsString();
+
+ if (!string.IsNullOrWhiteSpace(val))
+ {
+ switch (val)
+ {
+ case PersonType.Composer:
+ type = PersonType.Composer;
+ break;
+ case PersonType.Conductor:
+ type = PersonType.Conductor;
+ break;
+ case PersonType.Director:
+ type = PersonType.Director;
+ break;
+ case PersonType.Lyricist:
+ type = PersonType.Lyricist;
+ break;
+ case PersonType.Producer:
+ type = PersonType.Producer;
+ break;
+ case PersonType.Writer:
+ type = PersonType.Writer;
+ break;
+ case PersonType.GuestStar:
+ type = PersonType.GuestStar;
+ break;
+ // unknown type --> actor
+ default:
+ type = PersonType.Actor;
+ break;
+ }
+ }
+
+ break;
+ }
+
case "order":
case "sortorder":
{
diff --git a/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs b/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs
index e1f50876f..765464ece 100644
--- a/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs
+++ b/tests/Jellyfin.XbmcMetadata.Tests/Parsers/MovieNfoParserTests.cs
@@ -60,7 +60,7 @@ namespace Jellyfin.XbmcMetadata.Tests.Parsers
Assert.Equal(new TimeSpan(0, 0, 6268).Ticks, item.RunTimeTicks);
Assert.True(item.HasSubtitles);
- Assert.Equal(18, result.People.Count);
+ Assert.Equal(19, result.People.Count);
var writers = result.People.Where(x => x.Type == PersonType.Writer).ToArray();
Assert.Equal(2, writers.Length);
@@ -82,6 +82,10 @@ namespace Jellyfin.XbmcMetadata.Tests.Parsers
Assert.Equal(5, aquaman!.SortOrder);
Assert.Equal("https://m.media-amazon.com/images/M/MV5BMTI5MTU5NjM1MV5BMl5BanBnXkFtZTcwODc4MDk0Mw@@._V1_SX1024_SY1024_.jpg", aquaman!.ImageUrl);
+ var lyricist = result.People.FirstOrDefault(x => x.Type == PersonType.Lyricist);
+ Assert.NotNull(lyricist);
+ Assert.Equal("Test Lyricist", lyricist!.Name);
+
Assert.Equal(new DateTime(2019, 8, 6, 9, 1, 18), item.DateCreated);
}
diff --git a/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Justice League.nfo b/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Justice League.nfo
index f838af8d0..6e6da25d3 100644
--- a/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Justice League.nfo
+++ b/tests/Jellyfin.XbmcMetadata.Tests/Test Data/Justice League.nfo
@@ -221,6 +221,11 @@
14
https://m.media-amazon.com/images/M/MV5BOTFjOTFhNTgtZjk3Ny00MTNjLWE3MWUtMWI3ZWM5NDljZjQwXkEyXkFqcGdeQXVyMjQwMDg0Ng@@._V1_SX1024_SY1024_.jpg
+
+ Test Lyricist
+ Lyricist
+ 15
+
0.000000
0.000000