1

プログラムyoutube-dl自体は、ファイル名で非 ASCII 文字をサポートしています。ルート ユーザーと www-data ユーザーの下の Web サーバーで問題なく動作しますが、PHP で youtube-dl を使用してビデオをダウンロードしようとすると、非 ASCII 文字が完全にスキップされます。

例:またはとしてStromae - bâtard保存されますStromae - btard.mp4البث الحي.mp4

このコードを使用して CLI コマンドを実行しています

function cmd($string) {
  $descriptorspec = array(
     0 => array("pipe", "r"),  // stdin
     1 => array("pipe", "w"),  // stdout
     2 => array("pipe", "w"),  // stderr
  );
  $process = proc_open($string, $descriptorspec, $pipes);
  $stdout = stream_get_contents($pipes[1]);
  fclose($pipes[1]);
  $stderr = stream_get_contents($pipes[2]);
  fclose($pipes[2]);
  $ret = proc_close($process);
  return $stdout;
  }
$value = ('youtube-dl https://some.valid/link');
echo cmd($value);

この問題を解決するために何をすべきかアドバイスしてください。

4

2 に答える 2