У меня есть угловой клиент, пытаясь загрузить видео с веб -сайта через сервер IIS (C#). Процесс загрузки сейчас работает (я использую DLL YouTubeDlSharp для этого). Вещи, которые я не знаю, как это сделать, - это отправлять данные (например, сколько прогресса и текстовой информации) обратно в угловой клиент, в то время как процессы YouTubeDlSharp.
Вот код в Window Exe Platform: < /p>
public MainWindow()
{
this.YoutubeDL = new YoutubeDL() { YoutubeDLPath = "yt-dlp.exe" };
this.DataContext = this;
InitializeComponent();
progress = new Progress((p) => showProgress(p));
output = new Progress((s) => txtOutput.AppendText(s + Environment.NewLine));
}
< /code>
процесс загрузки: < /p>
if (AudioOnly)
{
result = await YoutubeDL.RunAudioDownload(
url, AudioConversionFormat.Mp3, progress: progress,
output: output, overrideOptions: custom
);
}
else
{
result = await YoutubeDL.RunVideoDownload(
url,
progress: progress,
output: output,
overrideOptions: custom
);
}
if (result.Success)
{
MessageBox.Show($"Successfully downloaded \"{url}\" to:\n\"{result.Data}\".", "YoutubeDLSharp");
}
private void showProgress(DownloadProgress p)
{
txtState.Text = p.State.ToString();
progDownload.Value = p.Progress;
txtProgress.Text = $"speed: {p.DownloadSpeed} | left: {p.ETA}";
}
< /code>
«Процесс» и «Вывод» - это информация, которая мне нужно отправить обратно в приложение Angular Client.
Вот мой рабочий код: < /p>
[HttpGet("download")]
public async Task Download()
{
YoutubeDL youtubeDL = new()
{
YoutubeDLPath = @"yt-dlp.exe",
FFmpegPath = @"ffmpeg.exe",
OutputFolder = @"d:\medias\videos\animals",
};
var url = @"https://www.xxxxxxxxx.com/watch?v=xxxxxxxxxx";
var result = await youtubeDL.RunVideoDownload(url);
return Ok(result);
}
`
< /code>
Можно ли это сделать?>
Подробнее здесь: https://stackoverflow.com/questions/794 ... lar-client