Не скачивается звук через библиотеку VideoLibrary

Нужно скачать видео с ютуба и отделить от него звуковую дорожку используя язык C#. Использую библиотеку VideoLibrary смог скачать видео, однако на нём нету звук, только визуальная часть. Как отделить от видео звук я знаю, но почему звука нету при скачивании я не знаю. Ниже код если нужно

using System;
using System.IO;
using VideoLibrary;

namespace YouTubeDownloader
{
    public class YouTubeDownloader
    {
        public static string GetURI()
        {
            //В будущем доделать, когда буду связывать с фронтом
            string result = "https://www.youtube.com/watch?v=Cfc-4NgVWgE";
            return result;
        }

        public static void Main(string[] args) 
        {
            string uri = GetURI();
            
            //Получение видео в переменную
            var youtube = YouTube.Default;
            var video = youtube.GetVideo(uri);

            //Массив байтов хранящий видео
            byte[] bytes = video.GetBytes();

            //Получение расположения директории "video" внутри проекта
            string videoDir = Path.GetFullPath(Path.Combine(Directory.GetCurrentDirectory(), @"..\..")) + @"\video\";

            Console.WriteLine("Скачивание начато, ожидайте..");

            //Сохранение видео в файл
            File.WriteAllBytes(videoDir + "video.mp4", bytes);

            string file = videoDir + @"\video.mp4";

            if (!File.Exists(file))
            {
                Console.WriteLine("Файл не обнаружен");
            }
            else Console.WriteLine("Скачивание завершено.");

        }

    }
}

Ответы (1 шт):

Автор решения: Максим Лінюк

Вот такой код в итоге получился, качает аудио в формате mp4, конвертирую в mp3 в другом файле с помощью ffmpeg. Спасибо EvgeniyZ, за развернутый ответ который привел меня к ответу

public void YouTubeDownloader(string uri)
{

    Console.WriteLine("Скачивание начато, ожидайте..");

    //Получаем абсолютный путь к директории "video" внутри проекта
    string videoDir = Path.GetFullPath(Path.Combine(Directory.GetCurrentDirectory(), @"..\..")) + @"\video\";

    //Получаем все доступные потоки видео и аудио по URI
    var youtube = YouTube.Default;
    var videos = youtube.GetAllVideos(uri);

    //Ищем чистый аудио поток в формате mp4
    var video = videos
        .Where(v => v.AdaptiveKind == AdaptiveKind.Audio && v.Format == VideoFormat.Mp4)
        .OrderByDescending(v => v.AudioBitrate)
        .FirstOrDefault();

    //План Б по поиску потока
    if (video == null)
    {
        Console.WriteLine("Не удалось найти подходящий поток. Используем план Б");
        video = videos
            .OrderByDescending(v => v.AudioBitrate)
            .FirstOrDefault();
    }

    if (video != null)
    {

        //Сохранение видео в файл
        File.WriteAllBytes(videoDir + "video.mp4", video.GetBytes());

        string file = videoDir + @"\video.mp4";

        //Проверяем создан файл или нет
        if (!File.Exists(file))
        {
            Console.WriteLine("Файл не обнаружен");
        }
        else Console.WriteLine("Скачивание завершено.");

    } //Обработка исключения если не найдено ни одного потока
    else throw new VideoIsNull("Непредвиденная ошибка с видео");

}
→ Ссылка