youtube-dl将视频标题处理为字符串崩溃

时间:2019-03-27 01:57:06

标签: c# wpf youtube-dl

我正在使用Visual Studio 2015,C#,WPF。

我正在尝试在视频上运行youtube-dl.exe,并将标题捕获到string

我通过using Process运行命令。通过Visual Studio以C#Debug模式运行Release程序时,它可以工作,但只有在Visual Studio外部单独运行编译的exe时,它才崩溃。 >

将副本粘贴到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 :(得分:0)

有命令行选项:

youtube-dl --encoding UTF8 

为我工作!