[Issue]: Metadata is being updated on TV shows causing Jellyfin to think episodes are newly added #5948

Closed
opened 2026-02-07 02:42:44 +03:00 by OVERLORD · 11 comments
Owner

Originally created by @mikul9 on GitHub (Jun 7, 2024).

Please describe your bug

TV shows are showing as recently added when they have not been. The files for these shows show a modified data of four years ago except for the associated NFO files which were changed today and contain a modified date of the same.

With no modifications to the video files as confirmed by the download client logs, these shows shouldn't indicate recent adds.

Reproduction Steps

Allow Jellyfin to refresh metadata

Jellyfin Version

10.9.0

if other:

10.9.4

Environment

- OS: DSM 7.2.1 (Synology) 
- Linux Kernel: 4.4.302+
- Virtualization: Docker 20.10.23
- Clients: Kodi via Jellyfin for Kodi
- Browser: n/a
- FFmpeg Version: 4.1.9
- Playback Method: n/a
- Hardware Acceleration: none
- GPU Model: none
- Plugins: Jellyfin for Kodi
- Reverse Proxy: none
- Base URL: 192.168.1.10
- Networking: wired ethernet to local network clients
- Storage: WD Red Pro drives

Jellyfin logs

2024-06-06 04:56:56.728 +00:00] [INF] [30] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Mr. Robot/Season 1/Mr. Robot - S01E01 S01E06 - eps1.0_hellofriend.mov - eps1.5_br4ve-trave1er.asf.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-06-06 04:56:56.931 +00:00] [ERR] [14] MediaBrowser.XbmcMetadata.Savers.EpisodeNfoSaver: Error reading existing xml tags from "/tv/Mr. Robot/Season 1/Mr. Robot - S01E09 - eps1.8_m1rr0r1ng.qt.nfo".
System.Xml.XmlException: Root element is missing.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo(String res)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlReader.MoveToContent()
   at MediaBrowser.XbmcMetadata.Savers.BaseNfoSaver.AddCustomTags(String path, IReadOnlyCollection`1 xmlTagsUsed, XmlWriter writer, ILogger`1 logger)
[2024-06-06 04:56:56.960 +00:00] [INF] [62] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Mr. Robot/Season 1/Mr. Robot - S01E01 S01E07 - eps1.0_hellofriend.mov - eps1.6_v1ew-s0urce.flv.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-06-06 04:56:57.180 +00:00] [INF] [62] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Mr. Robot/Season 1/Mr. Robot - S01E01 S01E08 - eps1.0_hellofriend.mov - eps1.7_wh1ter0se.m4v.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-06-06 04:56:57.224 +00:00] [INF] [13] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Mr. Robot/Season 1/Mr. Robot - S01E10 - eps1.9_zer0-day.avi.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-06-06 04:56:57.248 +00:00] [INF] [62] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Mr. Robot/Season 1/Mr. Robot - S01E11 - The Land Where a Hero Once Lived.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-06-06 04:56:57.573 +00:00] [ERR] [21] MediaBrowser.XbmcMetadata.Savers.EpisodeNfoSaver: Error reading existing xml tags from "/tv/Mr. Robot/Season 1/Mr. Robot - S01E10 - eps1.9_zer0-day.avi.nfo".
System.Xml.XmlException: Root element is missing.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo(String res)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlReader.MoveToContent()
   at MediaBrowser.XbmcMetadata.Savers.BaseNfoSaver.AddCustomTags(String path, IReadOnlyCollection`1 xmlTagsUsed, XmlWriter writer, ILogger`1 logger)

FFmpeg logs

Where can I find these?

Please attach any browser or client logs here

N/A

Please attach any screenshots here

N/A

Code of Conduct

  • I agree to follow this project's Code of Conduct
Originally created by @mikul9 on GitHub (Jun 7, 2024). ### Please describe your bug TV shows are showing as recently added when they have not been. The files for these shows show a modified data of four years ago except for the associated NFO files which were changed today and contain a modified date of the same. With no modifications to the video files as confirmed by the download client logs, these shows shouldn't indicate recent adds. ### Reproduction Steps Allow Jellyfin to refresh metadata ### Jellyfin Version 10.9.0 ### if other: 10.9.4 ### Environment ```markdown - OS: DSM 7.2.1 (Synology) - Linux Kernel: 4.4.302+ - Virtualization: Docker 20.10.23 - Clients: Kodi via Jellyfin for Kodi - Browser: n/a - FFmpeg Version: 4.1.9 - Playback Method: n/a - Hardware Acceleration: none - GPU Model: none - Plugins: Jellyfin for Kodi - Reverse Proxy: none - Base URL: 192.168.1.10 - Networking: wired ethernet to local network clients - Storage: WD Red Pro drives ``` ### Jellyfin logs ```shell 2024-06-06 04:56:56.728 +00:00] [INF] [30] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Mr. Robot/Season 1/Mr. Robot - S01E01 S01E06 - eps1.0_hellofriend.mov - eps1.5_br4ve-trave1er.asf.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format" [2024-06-06 04:56:56.931 +00:00] [ERR] [14] MediaBrowser.XbmcMetadata.Savers.EpisodeNfoSaver: Error reading existing xml tags from "/tv/Mr. Robot/Season 1/Mr. Robot - S01E09 - eps1.8_m1rr0r1ng.qt.nfo". System.Xml.XmlException: Root element is missing. at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo(String res) at System.Xml.XmlTextReaderImpl.ParseDocumentContent() at System.Xml.XmlReader.MoveToContent() at MediaBrowser.XbmcMetadata.Savers.BaseNfoSaver.AddCustomTags(String path, IReadOnlyCollection`1 xmlTagsUsed, XmlWriter writer, ILogger`1 logger) [2024-06-06 04:56:56.960 +00:00] [INF] [62] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Mr. Robot/Season 1/Mr. Robot - S01E01 S01E07 - eps1.0_hellofriend.mov - eps1.6_v1ew-s0urce.flv.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format" [2024-06-06 04:56:57.180 +00:00] [INF] [62] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Mr. Robot/Season 1/Mr. Robot - S01E01 S01E08 - eps1.0_hellofriend.mov - eps1.7_wh1ter0se.m4v.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format" [2024-06-06 04:56:57.224 +00:00] [INF] [13] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Mr. Robot/Season 1/Mr. Robot - S01E10 - eps1.9_zer0-day.avi.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format" [2024-06-06 04:56:57.248 +00:00] [INF] [62] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Mr. Robot/Season 1/Mr. Robot - S01E11 - The Land Where a Hero Once Lived.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format" [2024-06-06 04:56:57.573 +00:00] [ERR] [21] MediaBrowser.XbmcMetadata.Savers.EpisodeNfoSaver: Error reading existing xml tags from "/tv/Mr. Robot/Season 1/Mr. Robot - S01E10 - eps1.9_zer0-day.avi.nfo". System.Xml.XmlException: Root element is missing. at System.Xml.XmlTextReaderImpl.Throw(Exception e) at System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo(String res) at System.Xml.XmlTextReaderImpl.ParseDocumentContent() at System.Xml.XmlReader.MoveToContent() at MediaBrowser.XbmcMetadata.Savers.BaseNfoSaver.AddCustomTags(String path, IReadOnlyCollection`1 xmlTagsUsed, XmlWriter writer, ILogger`1 logger) ``` ### FFmpeg logs ```shell Where can I find these? ``` ### Please attach any browser or client logs here N/A ### Please attach any screenshots here N/A ### Code of Conduct - [X] I agree to follow this project's Code of Conduct
OVERLORD added the bugstale labels 2026-02-07 02:42:44 +03:00
Author
Owner

@jellyfin-bot commented on GitHub (Jun 7, 2024):

Hi, it seems like your issue report has the following item(s) that need to be addressed:

  • The title of this issue report is empty. Please change it to something descriptive.
  • You have not provided the ffmpeg log unaltered from the server. Please provide a valid ffmpeg log.

This is an automated message, currently under testing. Please file an issue here if you encounter any problems.

@jellyfin-bot commented on GitHub (Jun 7, 2024): Hi, it seems like your issue report has the following item(s) that need to be addressed: - The title of this issue report is empty. Please change it to something descriptive. - You have not provided the ffmpeg log unaltered from the server. Please provide a valid ffmpeg log. This is an automated message, currently under testing. Please file an issue [here](https://github.com/jellyfin/jellyfin-triage-scripts/issues) if you encounter any problems.
Author
Owner

@VIVxID commented on GitHub (Jun 7, 2024):

I had some issues with this as well when replacing some files with new versions, but with the same name. In theory, I thought they'd have the same date, but when I scanned them into TinyMediaManager, the "dateadded" field in the NFO files for the episodes was updated with a new date.
Manually changing this to the old date, writing it to the NFO and then rescanning the show in Jellyfin (replacing all metadata) fixed the issue for me.

@VIVxID commented on GitHub (Jun 7, 2024): I had some issues with this as well when replacing some files with new versions, but with the same name. In theory, I thought they'd have the same date, but when I scanned them into TinyMediaManager, the "dateadded" field in the NFO files for the episodes was updated with a new date. Manually changing this to the old date, writing it to the NFO and then rescanning the show in Jellyfin (replacing all metadata) fixed the issue for me.
Author
Owner

@Shadowghost commented on GitHub (Jun 7, 2024):

If there is a NFO with dateadded it overrides the file creation date as source of truth for date added. If you don't have that in your NFO, it's we need to find out why it breaks, if you have this is intended behavior.

@Shadowghost commented on GitHub (Jun 7, 2024): If there is a NFO with `dateadded` it overrides the file creation date as source of truth for date added. If you don't have that in your NFO, it's we need to find out why it breaks, if you have this is intended behavior.
Author
Owner

@mikul9 commented on GitHub (Jun 7, 2024):

This leads to two questions:

  1. Should a change to the .nfo dataadded field override the file modified date of the video file? If the file modified date is older, why would the .nfo supersede it? Ok, maybe that's convention, but that leaves...
  2. What changed the .nfo files and updated the dateadded field? From the logs, it looks like Jellyfin which we wouldn't want altering the dataadded field for files that have been in the library for years.
@mikul9 commented on GitHub (Jun 7, 2024): This leads to two questions: 1. Should a change to the .nfo dataadded field override the file modified date of the video file? If the file modified date is older, why would the .nfo supersede it? Ok, maybe that's convention, but that leaves... 2. What changed the .nfo files and updated the dateadded field? From the logs, it looks like Jellyfin which we wouldn't want altering the dataadded field for files that have been in the library for years.
Author
Owner

@Shadowghost commented on GitHub (Jun 7, 2024):

  1. NFO always takes precedence except when you identify or replace metadata, so this is intended
  2. Jellyfin should only have changed the field in the NFO if the file was freshly added and the entry in the NFO was empty. If you run a replace all metadata it might reset too, but I'd need to check if that is really the case.
@Shadowghost commented on GitHub (Jun 7, 2024): 1. NFO always takes precedence except when you identify or replace metadata, so this is intended 2. Jellyfin should only have changed the field in the NFO if the file was freshly added and the entry in the NFO was empty. If you run a replace all metadata it might reset too, but I'd need to check if that is really the case.
Author
Owner

@mikul9 commented on GitHub (Jun 7, 2024):

On #2, it's difficult to imagine a file 4-years old didn't have an NFO file although that's somewhat difficult to prove. No "replace all metadata" was run.

Looking through the logs, every series that had this happen to them has the following lines in the log about having a trailer URL in depreciated format. No untouched series has a similar entry. That seems like a strange reason to update the dateadded field though.

2024-06-06 05:07:57.734 +00:00] [INF] [8] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Vikings/Season 4/Vikings - S04E04 - Yol.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
[2024-06-06 05:07:57.750 +00:00] [WRN] [21] MediaBrowser.XbmcMetadata.Providers.EpisodeNfoProvider: Trailer URL uses a deprecated format : "plugin://plugin.video.youtube/?action=play_video&videoid=LVwf92omPXg". Using "plugin://plugin.video.youtube/play/?video_id=LVwf92omPXg" instead is advised.
[2024-06-06 05:07:57.774 +00:00] [INF] [8] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Vikings/Season 4/Vikings - S04E10 - The Last Ship.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format"
@mikul9 commented on GitHub (Jun 7, 2024): On #2, it's difficult to imagine a file 4-years old didn't have an NFO file although that's somewhat difficult to prove. No "replace all metadata" was run. Looking through the logs, every series that had this happen to them has the following lines in the log about having a trailer URL in depreciated format. No untouched series has a similar entry. That seems like a strange reason to update the dateadded field though. ``` 2024-06-06 05:07:57.734 +00:00] [INF] [8] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Vikings/Season 4/Vikings - S04E04 - Yol.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format" [2024-06-06 05:07:57.750 +00:00] [WRN] [21] MediaBrowser.XbmcMetadata.Providers.EpisodeNfoProvider: Trailer URL uses a deprecated format : "plugin://plugin.video.youtube/?action=play_video&videoid=LVwf92omPXg". Using "plugin://plugin.video.youtube/play/?video_id=LVwf92omPXg" instead is advised. [2024-06-06 05:07:57.774 +00:00] [INF] [8] MediaBrowser.MediaEncoding.Encoder.MediaEncoder: Starting "/usr/lib/jellyfin-ffmpeg/ffprobe" with args "-analyzeduration 200M -probesize 1G -i file:\"/tv/Vikings/Season 4/Vikings - S04E10 - The Last Ship.mkv\" -threads 0 -v warning -print_format json -show_streams -show_chapters -show_format" ```
Author
Owner

@theguymadmax commented on GitHub (Jun 7, 2024):

@mikul9 are you still on 10.9.4? There have been a few bug fixes regarding nfo files since then.

Two options you can try on 10.9.6, if upgrading and refreshing doesn't help.

  1. Delete the nfo for series and episodes - if you have a date added field in the nfo file then that takes precedence over file metadata. Make sure Dashboard->Libraries->Display->"Date added behavior for new content" is set to "File creation date". Then replace all metadata on a series.
    or
  2. Modified the data added field in the nfo files using external means. I would recommend tinyMediaManager - there's an option in there to adjust how the data added field is created.

image

@theguymadmax commented on GitHub (Jun 7, 2024): @mikul9 are you still on 10.9.4? There have been a few bug fixes regarding nfo files since then. Two options you can try on 10.9.6, if upgrading and refreshing doesn't help. 1. Delete the nfo for series and episodes - if you have a date added field in the nfo file then that takes precedence over file metadata. Make sure Dashboard->Libraries->Display->"Date added behavior for new content" is set to "File creation date". Then replace all metadata on a series. or 2. Modified the data added field in the nfo files using external means. I would recommend tinyMediaManager - there's an option in there to adjust how the data added field is created. ![image](https://github.com/jellyfin/jellyfin/assets/171496228/a963c1de-dbff-40ae-96a0-edd700a6bba8)
Author
Owner

@mikul9 commented on GitHub (Jun 7, 2024):

Yes, I was on 10.9.4 when this happened. I just upgraded to 10.9.6, so I'll keep watching this.

As for the settings in Dashboard->Libraries->NFO... where is that? I must be looking in the wrong place.
Screenshot 2024-06-07 at 11 22 09 AM

@mikul9 commented on GitHub (Jun 7, 2024): Yes, I was on 10.9.4 when this happened. I just upgraded to 10.9.6, so I'll keep watching this. As for the settings in Dashboard->Libraries->NFO... where is that? I must be looking in the wrong place. ![Screenshot 2024-06-07 at 11 22 09 AM](https://github.com/jellyfin/jellyfin/assets/88015094/f0a43424-7f8f-4397-93af-691cd204240d)
Author
Owner

@theguymadmax commented on GitHub (Jun 7, 2024):

Correct path is Dashboard->Libraries-> Display->

@theguymadmax commented on GitHub (Jun 7, 2024): Correct path is Dashboard->Libraries-> Display->
Author
Owner

@jellyfin-bot commented on GitHub (Oct 6, 2024):

This issue has gone 120 days without an update and will be closed within 21 days if there is no new activity. To prevent this issue from being closed, please confirm the issue has not already been fixed by providing updated examples or logs.

If you have any questions you can use one of several ways to contact us.

@jellyfin-bot commented on GitHub (Oct 6, 2024): This issue has gone 120 days without an update and will be closed within 21 days if there is no new activity. To prevent this issue from being closed, please confirm the issue has not already been fixed by providing updated examples or logs. If you have any questions you can use one of several ways to [contact us](https://jellyfin.org/contact).
Author
Owner

@jellyfin-bot commented on GitHub (Oct 27, 2024):

This issue was closed due to inactivity.

@jellyfin-bot commented on GitHub (Oct 27, 2024): This issue was closed due to inactivity.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/jellyfin#5948