0

我正在尝试使用我在网上找到的一些片段制作个人 youtube 视频下载器。我得到一个由 youtube 提供的 url,它只对请求它的 ip 有用,所以它只在 localhost 上工作,因为当它在 web 服务器上时,下载失败,因为请求下载链接的 IP(web 服务器之一)与下载它的客户端(我)不同。我的问题是是否有某种方法:

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

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

URL 如下所示:

http://oo---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

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

4

1 回答 1

1

所以试图找到一种类似于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 是我在问题上发布的大 url,$filename 是视频的名称。

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

于 2012-09-13T10:11:00.390 回答