/// <summary>
        ///     Downloads context to audio, requires Url, Optional - VideoInfo (Default: Highest Quality), Optional - BaseDirectory
        /// </summary>
        public async static Task ToAudioAsync(this YoutubeContext context) {
            if (context==null)
                throw new ArgumentException(nameof(context));
            if (string.IsNullOrEmpty(context.Url))
                throw new ArgumentException(nameof(context.Url));
            
            if (context.VideoInfo == null)
                await context.FindHighestAudioQualityDownloadUrlAsync();

            var ad = new AudioDownloader(context);
            await ad.ExecuteAsync();
        }