Я использую 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);