php - 用php服务外部文件下载

标签 php youtube

我正在尝试使用我在网络上找到的一些片段制作个人的youtube视频下载器。我得到了youtube给出的网址,该网址仅对请求它的ip有用,因此它只能在localhost上工作,因为当它在Web服务器上时,由于请求下载链接的IP(Web服务器一个)导致下载失败)与下载它(我)的客户端不同。我的问题是是否有某种方式可以:

a)将视频下载到Web服务器,然后从那里下载到我的PC(不是最好的)

b)让youtube认为网络服务器正在下载它,而实际上我正在使用网络服务器下载视频。

网址看起来像这样:

http://o-o---preferred---ams03s12---v13---lscache7.c.youtube.com/videoplayback?upn=TGDxfz8IZxI&sparams=cp%2Cgcr%2Cid%2Cip%2Cipbits%2Citag%2Cratebypass%2Csource%2Cupn%2Cexpire&fexp=917000%2C903802%2C901425%2C920917%2C922401%2C920704%2C912806%2C924412%2C913558%2C912706&key=yt1&itag=18&ipbits=8&signature=4F0668E4E49852653FA995D28FECC455B552327D.3DEB3B58D1C5343B5EA03B7DA21355326EF29B7E&mv=m&sver=3&mt=1347451352&ratebypass=yes&source=youtube&ms=au&gcr=es&expire=1347475934&ip=95.39.206.66&cp=U0hTTFRSU19ITkNOM19MTFdKOkVhV2otM1FhTXNj&id=2b4258153228ebc9

如果您将该网址中的IP更改为您的网址仍然无法使用,我已经尝试过了。

最佳答案

因此,我试图最终找到一种类似于ianhales所说的方式:这是最简单的方法,可能是最好的方法,但是它困扰并帮助我解决了另一个问题,该问题是将文件名设置为对应的youtube的名称视频。就这个:

$url=$_POST['url'];
$filename=$_POST['name'];

header('Content-type: video/mp4');
header('Content-Disposition: attachment; filename="'.$filename.'"');

echo file_get_contents($url);

其中$ url是我在问题上发布的大网址,而$ filename是视频的名称。

也许对某人会有帮助,所以我将其留在这里。

关于php - 用php服务外部文件下载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12388294/

相关文章:

api - 为什么对我的 YouTube API 调用进行的这个小更改不起作用?

java - 从 PHP 运行 Java 文件

javascript - 如何将 JavaScript 中声明的变量发送到服务器端 PHP 脚本,以便我可以使用该变量执行 SQL 查询?

javascript - 如何使用ajax从php while循环发布数据

php - WordPress获取YouTube图片缩略图

Java YouTube正则表达式获取视频ID和时间戳

php - 如何在我的 Wordpress 主页上使某些部分/行图像全宽?

php - MySQL全连接三表

ruby-on-rails-4 - 如何显示从数据库调用的 YouTube 嵌入链接

ruby-on-rails - 从 Ruby on Rails 应用程序上传视频到 youtube