youtube-dl Обрабатывает заголовок видео для сбоя строки - PullRequest
0 голосов
/ 27 марта 2019

Я использую Visual Studio 2015, C #, WPF.

Я пытаюсь запустить youtube-dl.exe на видео и записать заголовок в string.

Я запускаю команду через using Process.Он работает при запуске программы C# в режиме Debug или Release через Visual Studio, но падает только при запуске самого компилированного exe вне Visual Studio.

youtube-dlКоманда также работает, когда копия вставлена ​​в cmd.exe.

 youtube-dl --get-filename -o "%(title)s.mp4" https://www.youtube.com/watch?v=TWNhqCHw0qc

string title = string.Empty;

using (Process p = new Process())
{
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.CreateNoWindow = false;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.StandardOutputEncoding = Encoding.UTF8;
    p.StartInfo.RedirectStandardError = true;
    p.StartInfo.StandardErrorEncoding = Encoding.UTF8;
    p.StartInfo.FileName = "youtube-dl";
    p.StartInfo.Arguments = "--get-filename -o \"%(title)s\" "  + "https://www.youtube.com/watch?v=TWNhqCHw0qc";

    p.Start();

    var output = new List<string>();
    while (p.StandardOutput.Peek() > -1)
    {
        output.Add(p.StandardOutput.ReadLine());
    }

    title = string.Join("", output);
}

MessageBox.Show(title);

1 Ответ

0 голосов
/ 14 июня 2019

Есть опция командной строки:

youtube-dl --encoding UTF8 

Сработало у меня!

...