Как скачать файл с ютуба в формате mp3 на c# для отправки через телеграм бота?
Я пишу бота для телеграмм, который будет скачивать песню с ютуба по ссылке. Я смог реализовать скачивание видео через YouTubeExtract, но не понимаю как скачать именно аудио. Оно должно сохраняться в переменную типа Stream, чтобы ее принял метод телеграма SendAudioAsync.
Вот пример кода для отправки сообщения:
case InteractionType.DownloadSong:
var aud = await _mediaDownloader.DownloadAudio(messageText);
if (aud is null)
{
sentMessage = await bot.SendTextMessageAsync(
chatId: chatId,
text: "Ошибка при скачивании аудио.\nПопробуйте еще раз!",
cancellationToken: token
);
}
sentMessage = await bot.SendAudioAsync(
chatId: chatId,
audio: new InputFile(aud),
cancellationToken: token);
break;
Вот пример моего функционала для скачивания видео:
public async Task<Stream?> DownloadVideo(string url)
{
using var service = Client.For(YouTube.Default);
var video = await service.GetVideoAsync(url);
return await video.StreamAsync();
}
Источник: Stack Overflow на русском