【问题标题】:youtube-dl is downloading php file instead of videoyoutube-dl 正在下载 php 文件而不是视频
【发布时间】:2015-08-20 12:20:17
【问题描述】:

我几周前才开始编程,所以请记住,我不知道我到底在做什么。

我正在尝试创建一个小网站,您可以在其中输入一个 youtube 网址,它会以 mp3 格式下载视频并使用音频可视化器将其播放给您。除了下载部分,我几乎所有东西都在工作。

当我输入一个 url 并提交它而不是下载 youtube 视频时,它会下载代码所在的 php 文件。

HTML

<!DOCTYPE html>
<html lang="en">
    <head>
        <link rel="stylesheet" href="main.css">
        <script src="prefixfree.min.js"></script>
    </head>
    <body>        
        <div id="main">
            <h1 id="header">Audio Visualizer</h1>
            <div id="form" class="container-center">
                <form action="download.php" method="get">
                    <input class="t-input" name="url" type="text" placeholder=" enter youtube video URL here">
                    <br>
                    <input  class="submit" type="submit" name="submit">
                </form>
            </div>
        </div>

        <script src="sketch/sketch.min.js"></script>
        <script src="animation.js"></script>
    </body>
</html>

PHP

<?php
$url = $_GET['url'];
try {
    new yt_downloader($url, TRUE, 'audio');
}
catch (Exception $e) {
    die($e->getMessage());
}

重要的下载器:https://github.com/eyecatchup/php-yt_downloader/

到目前为止,我只是在搞乱 javascript,所以我不知道 php 是如何工作的。我想我在某个地方犯了一些新手错误,我不能很好。

感谢您的帮助!

编辑:正如 Joel Hinz 所指出的,我未能下载 ffmpeg,不幸的是它似乎仍然无法正常工作:(

发现问题的根源:xampp 似乎不想运行 ffmpeg。

【问题讨论】:

  • 你用什么网址测试?
  • @Joel Hinz - 这个:youtube.com/watch?v=x_artPecEaM
  • 好吧,那不是你忘记复制粘贴http部分。您是否安装了 ffmpeg,就像文档说您需要音频一样?
  • @Joel Hinz - 我似乎没有它,我不知道它是如何错过的。现在安装...
  • 如果还是不行,恐怕我也没有什么线索了。祝你好运! :)

标签: php audio video download youtube


【解决方案1】:

首先,恭喜您在几周后取得了进展!

对于大多数编程问题,当您超越直观的“猜测”时,最好的调试方法是第一次通过就可以了,采取缓慢而彻底的方法来逐步检查并确切地了解正在发生的事情。

针对您的问题:

  • 作为快速的初始检查,您确实有 'require('youtube-dl.class.php');'在你的代码中也行?如果是这样,如果您发布更多 PHP 代码(或者如果它很短,则全部发布)会更容易。
  • 要检查您的 PHP 服务器代码是否正确获取 url,您可以让它将看到的内容写入日志或将其“回显”到屏幕上。解决问题后,您可以删除或整理它:
<?php
if (isset($_GET['url'])) {
    echo $_GET['url'];
}else{
    echo "Error: url is not set";
}
.
. (the rest of your PHP code here)
.


?>
  • 您可以做的另一件事是缩小问题范围,即用代码中的 url 变量替换已知的硬编码 YouTube URL(如 php-yr-downloader 的示例中所示)。如果这可行,那么您就知道问题出在您的 url 获取机制上,如果不是,那么问题很可能出在下载器或它的使用方式上。

希望这有助于为您指明正确的方向(它实际上更像是“评论”而不是答案,但不适合评论部分!)。

祝你好运……

【讨论】:

  • 感谢您的帮助,我正打算用解决方案更新这篇文章。经过一些调试后,似乎 ffmpeg 似乎不想在 xampp 上工作,也没有出现在 phpinfo 上。我猜是时候去服务器故障了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-12
相关资源
最近更新 更多