我已经在我的CentOS 6 / Plesk 10专用服务器上安装了youtube-dl,并通过SSH,一切都运作得很好!但是我正在尝试编写一个php脚本,该脚本接收一个POST参数,其中包含我想要复制到服务器的视频URL,然后将其复制并使用ffmpeg进行处理。我想使用exec()函数。如果我输出
当我执行 $string2 时,我得到状态为“0”和“url”:[youtube-dl帮助文本行]。
但是当我执行 $string 时,什么也没有发生,我得到“status”:“1”,没有其他信息,没有下载视频。我也尝试了带有“-g”参数的模拟和变体,但是一旦youtube-dl必须获取视频,它就会中断。
提前谢谢!
编辑
我编辑了我的代码,所以它看起来像这样:
youtube-dl --help
结果,我可以得到一个输出,但是每当我请求php执行实际与视频有关的命令时,它都会返回状态'1',并且不输出任何内容。您有任何想法吗?以下是我的php代码:<?php
$result = array();
$status;
$url = $_POST['src'];
$string = 'youtube-dl "'.$url.'" -f 18 -o "/var/www/vhosts/my.virtual.host.net/httpdocs/downloader/downloads/%(id)s.%(ext)s"';
$string2 = 'youtube-dl --help';
exec($string, $result, $status);
echo json_encode(array('status' => $status, 'url_orginal'=>$url, 'url' => $result));
?>
当我执行 $string2 时,我得到状态为“0”和“url”:[youtube-dl帮助文本行]。
但是当我执行 $string 时,什么也没有发生,我得到“status”:“1”,没有其他信息,没有下载视频。我也尝试了带有“-g”参数的模拟和变体,但是一旦youtube-dl必须获取视频,它就会中断。
提前谢谢!
编辑
我编辑了我的代码,所以它看起来像这样:
<?php
$result = array();
$status;
$url = $_POST['src'];
$string = 'youtube-dl "'.$url.'" -f 18 -o "/var/www/vhosts/my.virtual.host.net/httpdocs/downloader/downloads/%(id)s.%(ext)s"';
$string2 = 'youtube-dl --help';
exec($string, $result, $status);
echo json_encode(array('status' => $status, 'url_orginal'=>$url, 'url' => $result, 'command' => $string));
?>
现在我得到了昨天没有得到的结果:
command: "youtube-dl "http://www.youtube.com/watch?v=coq9klG41R8" -f 18 -o "/var/www/vhosts/my.virtual.host.net/httpdocs/downloader/downloads/%(id)s.%(ext)s""
status: 1
url:
0: "[youtube] Setting language"
1: "[youtube] coq9klG41R8: Downloading video info webpage"
2: "[youtube] coq9klG41R8: Extracting video information"
url_orginal: "http://www.youtube.com/watch?v=coq9klG41R8"
这很奇怪,因为a)昨天我得到了一个空的url[],而且b)即使现在我得到了看起来像正常的youtube-dl返回结果,它只包含前三行,我不能在指定路径中看到任何视频文件...有什么想法吗?