e.Trim()).Where(e => !string.IsNullOrEmpty(e)).ToArray(); if(inputType == "video") return string.Join(",",lines.Select((e) => FetchVideoId(e)).ToArray()); else if(inputType == "channel") return string.Join(",",lines.Select((e) => FetchChannelId(e)).ToArray()); else return string.Join(",",lines.Select((e) => e).ToArray()); } string FetchVideoId(string input) { Regex regex = new Regex(@"^.*(youtu.be\/|v\/|e\/|u\/\w+\/|(embed|watch)\/|v=)([^#\&\?]*).*"); if(!regex.IsMatch(input)) return input; Match match = regex.Match(input); return match.Groups[3].Value; } string FetchChannelId(string input) { Regex regex = new Regex(@"^(?:http|https):\/\/[a-zA-Z-]*\.{0,1}[a-zA-Z-]{3,}\.[a-z]{2,}\/channel\/([a-zA-Z0-9_\-]{3,24})"); if(!regex.IsMatch(input)) return input; Match match = regex.Match(input); return match.Groups[1].Value; } ]]>