Fix Emby TV episode date handling by using <aired> field for import dates

- Issue: Emby displays DateCreated field which gets updated on metadata refresh
- Root cause: Emby ignores <dateadded> but reads <aired> for TV episodes
- Solution: Write import date to <aired> field instead of actual air date
- Emby will now display import date (Feb 19) instead of scan date (Sep 11)
- Maintains backward compatibility with fallback to actual air date
This commit is contained in:
2025-09-11 16:45:36 -04:00
parent 8674b60c85
commit dcbb25ca9e
+9 -8
View File
@@ -261,17 +261,18 @@ class NFOManager:
xml_lines.append(f" <rating>{imdb_rating}</rating>")
xml_lines.append(f" <votes>{imdb_votes}</votes>")
if aired:
# Extract date part from ISO string
if dateadded:
# For Emby TV episodes: Use dateadded (import date) as aired date
# This ensures Emby displays the import date instead of scan date
import_date = dateadded.split('T')[0]
xml_lines.append(f" <aired>{import_date}</aired>")
xml_lines.append(f" <dateadded>{dateadded}</dateadded>")
xml_lines.append(f" <premiered>{import_date}</premiered>")
elif aired:
# Fallback: Use actual air date if no import date available
air_date = aired.split('T')[0]
xml_lines.append(f" <aired>{air_date}</aired>")
if dateadded:
xml_lines.append(f" <dateadded>{dateadded}</dateadded>")
# Add premiered tag for broader compatibility
premiered_date = dateadded.split('T')[0]
xml_lines.append(f" <premiered>{premiered_date}</premiered>")
if lock_metadata:
xml_lines.append(" <lockdata>true</lockdata>")