プログラム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);
この問題を解決するために何をすべきかアドバイスしてください。