| 
					
				 | 
			
			
				@@ -33,14 +33,14 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             _appHost = appHost; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        public async Task<List<M3UChannel>> Parse(string url, string channelIdPrefix, string tunerHostId, CancellationToken cancellationToken) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        public async Task<List<M3UChannel>> Parse(string url, string channelIdPrefix, string tunerHostId, bool enableStreamUrlAsIdentifier, CancellationToken cancellationToken) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var urlHash = url.GetMD5().ToString("N"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // Read the file and display it line by line. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             using (var reader = new StreamReader(await GetListingsStream(url, cancellationToken).ConfigureAwait(false))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return GetChannels(reader, urlHash, channelIdPrefix, tunerHostId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return GetChannels(reader, urlHash, channelIdPrefix, tunerHostId, enableStreamUrlAsIdentifier); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -51,7 +51,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // Read the file and display it line by line. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             using (var reader = new StringReader(text)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return GetChannels(reader, urlHash, channelIdPrefix, tunerHostId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return GetChannels(reader, urlHash, channelIdPrefix, tunerHostId, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -71,7 +71,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const string ExtInfPrefix = "#EXTINF:"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        private List<M3UChannel> GetChannels(TextReader reader, string urlHash, string channelIdPrefix, string tunerHostId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private List<M3UChannel> GetChannels(TextReader reader, string urlHash, string channelIdPrefix, string tunerHostId, bool enableStreamUrlAsIdentifier) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             var channels = new List<M3UChannel>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             string line; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -97,7 +97,7 @@ namespace Emby.Server.Implementations.LiveTv.TunerHosts 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 else if (!string.IsNullOrWhiteSpace(extInf) && !line.StartsWith("#", StringComparison.OrdinalIgnoreCase)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     var channel = GetChannelnfo(extInf, tunerHostId, line); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (string.IsNullOrWhiteSpace(channel.Id)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (string.IsNullOrWhiteSpace(channel.Id) || enableStreamUrlAsIdentifier) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         channel.Id = channelIdPrefix + urlHash + line.GetMD5().ToString("N"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 |