在YouTube上使用get_video下载video

我正在尝试获取像这样的任何YouTubevideo的videourl:

打开

http://youtube.com/get_video_info?video_id=VIDEOID 

然后取出account_playback_token令牌值并打开这个URL:

 http://www.youtube.com/get_video?video_id=VIDEOID&t=TOKEN&fmt=18&asv=2 

这应该打开只有video的网页或开始下载的video。 但没有任何反应,Safari的活动窗口显示“找不到”,所以URL有问题。 我想将它集成到一个iPad应用程序中,并且用于获取在iPhone版本的应用程序中使用的videoURL的javascript方法不起作用,所以我需要另一个解决scheme。

YouTube一直在改变,我认为这个url已经过时了。 请帮忙 :)

编辑:这似乎是get_video方法不工作了。 我真的很感激,如果有人能告诉我另一种方式来findvideourl。

谢谢,我真的需要帮助。

对不起,这是不可能的了。 它们将令牌限制在获取它的IP上。

这是一个使用get_headers()函数的解决方法,该函数为您提供了一个包含video链接的数组。 我不知道什么关于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>'; } ?> 

我用这个,它岩石: http : //rg3.github.com/youtube-dl/

只需从浏览器复制一个YouTubeurl,然后使用YouTubeurl作为唯一参数执行此命令即可。 它会弄清楚如何find最好质量的video,并为你下载。

大! 我需要一种方法来抓取整个video播放列表

在Linux中,这是我使用的:

y = http://www.youtube.com ; F = “http://gdata.youtube.com/feeds/api/playlists/PLeHqhPDNAZY_3377_DpzRSMh9MA9UbIEN?start-index=26&#x201D;; ($ curl -s $ f | grep -o“url ='$ y / watch?v = [^'] '”); do d = $(echo $ i | sed“s | url \ =' $ y / watch?v =(。 )&。*'| \ 1 |“); youtube-dl –restrict-filenames“$ y / watch?v = $ d”; DONE

您必须从以下常见YouTubeurl中find播放列表ID: https : //www.youtube.com/playlist?list = PLeHqhPDNAZY_3377_DpzRSMh9MA9UbIEN

另外,这种技术使用gdata API,每页限制25条logging。
因此,?start-index = 26参数(在我的例子中得到第2页)

这可以使用一些清理,并通过所有25套迭代的逻辑。

积分:

https://stackoverflow.com/a/8761493/1069375

http://www.commandlinefu.com/commands/view/3154/download-youtube-playlist (这本身并没有很好的工作)