【问题标题】:Running youtube-dl with php exec使用 php exec 运行 youtube-dl
【发布时间】:2019-11-05 19:19:31
【问题描述】:

我正在尝试使用 PHP exec() 以 JSON 格式获取视频详细信息
我的 CentOS 服务器上安装了 youtube-dl。
通过SSH/Terminal 运行youtube-dl -J <VideoURL> 工作正常。
我的test.php 脚​​本返回空页:(

echo exec("youtube-dl -J <VideoURL>");
//Installed via pip

//OR

echo exec("python /home/site/youtube-dl -J <VideoURL>");
//Downloaded as file named youtube-dl

exec 如果我像这样测试它就会启用:

if(function_exists('exec')) {
    echo "exec is enabled";
}

IP 的服务器未被 YouTube 阻止,因为我能够通过终端成功运行命令

【问题讨论】:

  • 如果您希望 PHP 返回您命令的控制台输出,请使用 shell_exec 而不是 exec
  • @Bitz 我都试过了,没有结果。
  • 您可能遇到了错误,默认情况下是隐藏的。 stackoverflow.com/questions/9476233/… 我尝试了您想要实现的目标并使其正常工作,我将在下面的答案中提供 test.php 中的代码。

标签: php youtube-dl


【解决方案1】:

通过在我的test.php 文件中执行以下操作,我能够实现您的目标

<?php

if(function_exists('shell_exec')) {
    header('Content-Type: application/json');
    echo shell_exec("youtube-dl -J https://www.youtube.com/watch?v=zGDzdps75ns");
}

?>

【讨论】:

  • 我之前测试过这个,没有任何效果。我不知道这是如何正常工作的。谢谢。
  • 您提供的代码和我的代码之间唯一值得注意的区别是代码周围的 标记,但如果不包括这些标记,则文件的内容将被输出纯文本。很奇怪。真高兴你做到了。 :)
  • 不,他们以前在那里。我也很困惑。截至目前,它甚至可以与exec() 合作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-28
  • 1970-01-01
  • 2020-05-07
  • 1970-01-01
  • 2017-11-06
相关资源
最近更新 更多