public static VideoInfo SelectBestAudio(IEnumerable<VideoInfo> list) {
if (list == null || list.Count() == 0)
return null;
int MaxBitrate = list.OrderByDescending(v => v.AudioBitrate).Max(v => v.AudioBitrate);
list = list.Where(v => v.AudioBitrate == MaxBitrate);
VideoInfo Result = list.Where(v => v.AudioType == AudioType.Opus).FirstOrDefault();
if (Result == null)
Result = list.Where(v => v.AudioType == AudioType.Opus).FirstOrDefault();
if (Result == null)
Result = list.Where(v => v.AudioType == AudioType.Aac).FirstOrDefault();
if (Result == null)
Result = list.FirstOrDefault();
return Result;
}