Почему я получаю ошибку "PermissionError: [WinError 5] Access is denied" при использовании youtube-dl в классе процессов c#?


Когда я запускаю youtube-dl.exe с классом процесса c# на сервере, он возвращает ниже ошибки в StandardOutput:

Traceback (most recent call last):
  File "__main__.py", line 19, in <module>
  File "C:UsersdstAppDataRoamingBuild archiveyoutube-dlrg3tmpc7h_sle1buildyoutube_dl__init__.py", line 449, in main
  File "C:UsersdstAppDataRoamingBuild archiveyoutube-dlrg3tmpc7h_sle1buildyoutube_dl__init__.py", line 416, in _real_main
  File "C:UsersdstAppDataRoamingBuild archiveyoutube-dlrg3tmpc7h_sle1buildyoutube_dlYoutubeDL.py", line 367, in __init__
  File "C:UsersdstAppDataRoamingBuild archiveyoutube-dlrg3tmpc7h_sle1buildyoutube_dlYoutubeDL.py", line 2100, in _setup_opener
  File "C:UsersdstAppDataRoamingBuild archiveyoutube-dlrg3tmpc7h_sle1buildyoutube_dlutils.py", line 642, in make_HTTPS_handler
  File "C:PythonPython34libssl.py", line 439, in create_default_context
  File "C:PythonPython34libssl.py", line 390, in load_default_certs
  File "C:PythonPython34libssl.py", line 377, in _load_windows_store_certs
PermissionError: [WinError 5] Access is denied

Что это за ошибки?у меня нет этих путей и файлов с этими каталогами. И вот мой код

   string ydlPath = Server.MapPath("/ydlPath/youtube-dl.exe");
    string tempLocation = Server.MapPath("/ydlPath/");

    System.IO.StreamReader errorreader;
    System.Diagnostics.Process proc = new System.Diagnostics.Process();
    proc.EnableRaisingEvents = false;
    proc.StartInfo.ErrorDialog = false;
    proc.StartInfo.RedirectStandardError = true;
    proc.StartInfo.FileName = ydlPath ;
    //proc.StartInfo.Arguments = "-F "" + Url + """;
    proc.StartInfo.WorkingDirectory = tempLocation;
    proc.StartInfo.Arguments = "-f bestvideo[ext=mp4]+bestaudio[ext=m4a] "" + Url + """;
    proc.StartInfo.Verb = "runas";
    proc.StartInfo.UseShellExecute = false;
    proc.StartInfo.CreateNoWindow = false;
    proc.StartInfo.RedirectStandardOutput = true;
    proc.Start();
    errorreader = proc.StandardError;
    string Output = proc.StandardOutput.ReadToEnd();

    proc.WaitForExit();
    proc.Close();

Я использовал это на моем местном, и это работает нормально. Также, когда я использую youtube-dl.exe с cmd на сервере или на моем локальном у меня нет проблем.

Как я могу решить эту проблему? Кто-нибудь может мне помочь?

1 3

1 ответ:

Эта проблема решена, и эта проблема связана с ошибкой python.Подробности существуют на: https://github.com/rg3/youtube-dl/issues/10766