Jon*_*asG 6 youtube url download ios
我想获取任何YouTube视频的视频网址,如下所示:
打开
http://youtube.com/get_video_info?video_id=VIDEOID
Run Code Online (Sandbox Code Playgroud)
然后获取account_playback_token令牌值并打开此URL:
http://www.youtube.com/get_video?video_id=VIDEOID&t=TOKEN&fmt=18&asv=2
Run Code Online (Sandbox Code Playgroud)
这应该打开只包含视频的页面或开始下载视频.但没有任何反应,Safari的活动窗口显示"未找到",因此URL存在问题.我想将它集成到iPad应用程序中,并且获取我在应用程序的iPhone版本中使用的视频URL的javascript方法无效,因此我需要另一种解决方案.
YouTube一直在变化,我认为这个网址已经过时了.请帮忙 :)
编辑:似乎get_video方法不再起作用.如果有人能告诉我另一种查找视频网址的方法,我真的很感激.
谢谢,我真的需要帮助.
Wou*_*elo 10
对不起,这是不可能的.它们将令牌限制为获得它的IP.
这是使用该get_headers()函数的一种解决方法,它为您提供了一个包含视频链接的数组.我什么都不知道ios,所以希望你自己可以重写这个PHP代码.
<?php
if(empty($_GET['id'])) {
echo "No id found!";
}
else {
function url_exists($url) {
if(file_get_contents($url, FALSE, NULL, 0, 0) === false) return false;
return true;
}
$id = $_GET['id'];
$page = @file_get_contents('http://www.youtube.com/get_video_info?&video_id='.$id);
preg_match('/token=(.*?)&thumbnail_url=/', $page, $token);
$token = urldecode($token[1]);
$get = $title->video_details;
$url_array = array ("http://youtube.com/get_video?video_id=".$id."&t=".$token,
"http://youtube.com/get_video?video_id=".$id."&t=".$token."&fmt=18");
if(url_exists($url_array[1]) === true) {
$file = get_headers($url_array[1]);
}
elseif(url_exists($url_array[0]) === true) {
$file = get_headers($url_array[0]);
}
$url = trim($file[19],"Location: ");
echo '<a href="'.$url.'">Download video</a>';
}
?>
Run Code Online (Sandbox Code Playgroud)