我正在使用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);
答案 0 :(得分:0)
有命令行选项:
youtube-dl --encoding UTF8
为我工作!