使用php服务外部文件下载

时间:2012-09-12 12:35:45

标签: php youtube

我正在尝试使用我在网络上找到的一些代码段制作个人YouTube视频下载程序。我得到了一个由youtube提供的URL,它只对请求它的ip有用,所以它只适用于localhost,因为当它在Web服务器上时,由于请求下载链接的IP(Web服务器一个),下载失败)与下载它的客户(我)不一样。我的问题是,是否有某种方式:

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

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仍然无法使用,我已经尝试过了。

1 个答案:

答案 0 :(得分:0)

所以试图找到一种类似于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是视频的名称。

也许这对某人有帮助,所以我把它留在这里。