2012-09-12 16 views
0

나는 웹에서 찾은 일부 스 니펫을 사용하여 개인 YouTube 비디오 다운 로더를 만들려고합니다. 내가 요청한 IP에 유용합니다 유튜브에 의해 주어진 URL을 얻을, 그래서 그것은 웹 서버에서 다운로드 링크를 요청한 IP 이후 다운로드가 실패하기 때문에 localhost에서 일하고있다 (웹 서버 하나)은 클라이언트가 다운로드하는 것과 다릅니다 (나). 방법은 어떤 종류가있는 경우 내 질문은 :PHP로 외부 파일 다운로드 서비스

A)

b)는 웹 서버에 비디오를 다운로드하여 최고의 아니다 (거기에서 내 PC에 다운로드) 유튜브는 웹 서버이라고 생각합니다 웹 서버를 사용하여 비디오를 다운로드하는 사용자가 실제로 다운로드 할 때.

URL은 다음과 같이 :

여전히 일을 해달라고 할 것이다 당신에게 해당 URL의 IP를 변경하는 경우

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

, 나는 이미 그와 함께했습니다.

+0

서버를 프록시로 사용할 수 있습니까? 나는. 전체 비디오를 서버에 다운로드하는 것보다 원시 비트를 서버로 스트리밍 한 다음 웹 클라이언트에 직접 전달할 수 있습니까? 어떻게 달성 될지 확신 할 수는 없지만 가능하다고 확신합니다. – n00dle

답변

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은 내 질문에 게시 한 큰 URL이고 $ filename은 동영상의 이름입니다.

어쩌면 다른 사람에게 도움이 될 것입니다.

관련 문제