首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Youtube视频下载URL

Youtube视频下载URL
EN

Stack Overflow用户
提问于 2010-07-23 01:50:20
回答 5查看 92.7K关注 0票数 36

我写了一个获取youtube视频URL并下载的程序

今天我做了这样的事情:

  1. 从"/get_video_info?video_id=ID“获取视频"token”,喜欢:

代码语言:javascript
运行
复制
http://www.youtube.com/get_video_info?video_id=jN0nWjvzeNc  

从"/get_video?video_id=ID&t=TOKEN&fmt=FORMAT_ID“请求

  1. 下载视频,如:

代码语言:javascript
运行
复制
http://www.youtube.com/get_video?video_id=jN0nWjvzeNc&t=vjVQa1PpcFMgAK0HB1VRbinpVOwm29eGugPh3fBi6Dg%3D&fmt=18  

但是这不再起作用了!

新的下载URL是什么?

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-07-24 17:08:51

&asv=2添加到URL的末尾。

票数 11
EN

Stack Overflow用户

发布于 2012-11-14 09:04:19

实际上,我正在做一个类似的项目,从youtube下载视频文件。我发现get_video可能被Youtube屏蔽了。因此,我没有使用get_video,而是使用从get_video_info检索到的视频信息并提取它来获得视频文件的url。

在get_video_info中,有url_encoded_fmt_stream_map。编码后,可以找到不同格式的每个视频的url和签名值。因此,文件url类似于url value +‘&sig=’+sig value。

另外,我发现下面的主题与我的使用相同的方法。希望能对你有所帮助。

Can't Download from youtube

如果你对如何下载youtube视频文件感兴趣,有一个我写的小程序来演示这个过程。你可以自由地使用它。

https://github.com/johnny0614/YoutubeVideoDownload

票数 15
EN

Stack Overflow用户

发布于 2012-12-20 16:12:19

您可以使用以下命令直接获取流

http://www.youtube.com/get_video_info?video_id=jN0nWjvzeNc

我做了一个小脚本,在PHP中播放youtube视频。看看脚本是如何获取视频文件的。

代码语言:javascript
运行
复制
<?php 
@set_time_limit(0); 
$id = $_GET['id']; //The youtube video ID
$type = $_GET['type']; //the MIME type of the video

parse_str(file_get_contents('http://www.youtube.com/get_video_info?video_id='.$id),$info); 
$streams = explode(',',$info['url_encoded_fmt_stream_map']); 

foreach($streams as $stream){ 
    parse_str($stream,$real_stream); 
    $stype = $real_stream['type']; 
    if(strpos($real_stream['type'],';') !== false){ 
        $tmp = explode(';',$real_stream['type']); 
        $stype = $tmp[0]; 
        unset($tmp); 
    } 
    if($stype == $type && ($real_stream['quality'] == 'large' || $real_stream['quality'] == 'medium' || $real_stream['quality'] == 'small')){ 
        header('Content-type: '.$stype); 
        header('Transfer-encoding: chunked'); 
        @readfile($real_stream['url'].'&signature='.$real_stream['sig']); //Change here to do other things such as save the file to the filesystem etc.
        ob_flush(); 
        flush(); 
        break; 
    } 
}
?>

请参阅有效的演示here。我希望这能对你有所帮助。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3311795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档