Ios 使用YouTube上的get_视频下载视频
我正在尝试获取任何YouTube视频的视频URL,如下所示: 打开 然后获取Ios 使用YouTube上的get_视频下载视频,ios,url,download,youtube,Ios,Url,Download,Youtube,我正在尝试获取任何YouTube视频的视频URL,如下所示: 打开 然后获取帐户\u回放\u令牌令牌值并打开此URL: http://www.youtube.com/get_video?video_id=VIDEOID&t=TOKEN&fmt=18&asv=2 这将打开一个只包含视频的页面或开始下载视频。但什么也没发生,Safari的活动窗口显示“未找到”,所以URL有问题。我想将其集成到一个iPad应用程序中,而我在iPhone版本的应用程序中使用的获取视频URL的j
帐户\u回放\u令牌
令牌值并打开此URL:
http://www.youtube.com/get_video?video_id=VIDEOID&t=TOKEN&fmt=18&asv=2
这将打开一个只包含视频的页面或开始下载视频。但什么也没发生,Safari的活动窗口显示“未找到”,所以URL有问题。我想将其集成到一个iPad应用程序中,而我在iPhone版本的应用程序中使用的获取视频URL的javascript方法不起作用,因此我需要另一个解决方案
YouTube一直在变化,我认为URL已经过时了。请帮忙:)
编辑:看来get_video方法不再有效了。如果有人能告诉我另一种找到视频URL的方法,我将不胜感激
谢谢你,我真的需要帮助。对不起,这已经不可能了。他们将令牌限制在获得它的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>';
}
?>
我使用这个,它会震动:
只需从浏览器复制一个YouTube URL,并以YouTube URL作为唯一参数执行此命令。它将找出如何找到最佳质量的视频并为您下载。太棒了!我需要一种方法来获取整个视频播放列表 在Linux中,我使用的是: y=; f=”http://gdata.youtube.com/feeds/api/playlists/PLeHqhPDNAZY_3377_DpzRSMh9MA9UbIEN?start-指数=26”; 对于以美元表示的i(curl-s$f | grep-o“url='$y/watch?v=[^']'”;do d=$(echo $i|sed“s|url\='$y/watch?v=(.)和。*'|\1 |');youtube dl --限制文件名“$y/watch?v=$d”;完成 您必须从常见的Youtube URL中找到播放列表ID,如: 此外,该技术使用GDataAPI,每页限制25条记录。
因此?start index=26参数(在我的示例中获取第2页) 这可能需要一些清理和额外的逻辑来迭代所有的25个集合 学分:
(这本身不太管用)但您也在使用get\u url吗?什么是get_headers(),它是url的一部分还是一个函数?你能用语言解释一下你的密码吗?我真的很想给你赏金,我只是需要多一点帮助。谢谢我赫斯特再次看了一遍,然后我完全明白了:D但为什么它不提供每个分辨率下所有格式的链接(在720p中,它提供mp4和x-flv,在480p中,它提供flv和x-flv的链接…)有没有办法获得所有分辨率下mp4视频的链接?谢谢所以他们在标题中放了一个真实的视频位置?听起来像是一个主要的缺陷…objc中的代码要多得多,因为URL解析在那里要困难得多,但你给了我正确的想法。赏金!
<?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>';
}
?>