diff --git a/MediaBrowser.Controller/Entities/Video.cs b/MediaBrowser.Controller/Entities/Video.cs
index d8d700d644..ad4cb2d09d 100644
--- a/MediaBrowser.Controller/Entities/Video.cs
+++ b/MediaBrowser.Controller/Entities/Video.cs
@@ -1,4 +1,5 @@
-using MediaBrowser.Controller.Library;
+using System.Collections;
+using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.Resolvers;
using MediaBrowser.Model.Entities;
using System;
@@ -136,7 +137,19 @@ namespace MediaBrowser.Controller.Entities
// Kick off a task to refresh the main item
var result = await base.RefreshMetadata(cancellationToken, forceSave, forceRefresh, allowSlowProviders).ConfigureAwait(false);
- var additionalPartsChanged = await RefreshAdditionalParts(cancellationToken, forceSave, forceRefresh, allowSlowProviders).ConfigureAwait(false);
+ var additionalPartsChanged = false;
+
+ if (IsMultiPart && LocationType == LocationType.FileSystem)
+ {
+ try
+ {
+ additionalPartsChanged = await RefreshAdditionalParts(cancellationToken, forceSave, forceRefresh, allowSlowProviders).ConfigureAwait(false);
+ }
+ catch (IOException ex)
+ {
+ Logger.ErrorException("Error loading additional parts for {0}.", ex, Name);
+ }
+ }
return additionalPartsChanged || result;
}
@@ -151,7 +164,13 @@ namespace MediaBrowser.Controller.Entities
/// Task{System.Boolean}.
private async Task RefreshAdditionalParts(CancellationToken cancellationToken, bool forceSave = false, bool forceRefresh = false, bool allowSlowProviders = true)
{
+ if (!IsMultiPart || LocationType != LocationType.FileSystem)
+ {
+ return false;
+ }
+
var newItems = LoadAdditionalParts().ToList();
+
var newItemIds = newItems.Select(i => i.Id).ToList();
var itemsChanged = !AdditionalPartIds.SequenceEqual(newItemIds);
@@ -171,11 +190,6 @@ namespace MediaBrowser.Controller.Entities
/// IEnumerable{Video}.
private IEnumerable