Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Url Can';t从youtube下载_Url_Video_Download_Youtube_Mp4 - Fatal编程技术网

Url Can';t从youtube下载

Url Can';t从youtube下载,url,video,download,youtube,mp4,Url,Video,Download,Youtube,Mp4,我有一个从youtube下载mp4文件的脚本。它所做的是生成形式为*VIDEO\u ID*&&t=*the\u TOKEN*=&fmt=18&asv=2的链接,但它不再工作了(今天注意到了)。你觉得怎么样?如果你想下载到一个服务器上,你可以使用仍然有效的。看来他们已经删除了fmt选项。请参阅。不要尝试使用get\u video来获取视频,而是尝试解析fmt\u url\u映射(格式化url映射) 您应该能够在找到令牌的同一位置找到fmt_url_地图(比如在YouTube flash视频播放器的

我有一个从youtube下载mp4文件的脚本。它所做的是生成形式为*VIDEO\u ID*&&t=*the\u TOKEN*=&fmt=18&asv=2的链接,但它不再工作了(今天注意到了)。你觉得怎么样?

如果你想下载到一个服务器上,你可以使用仍然有效的。

看来他们已经删除了fmt选项。请参阅。

不要尝试使用get\u video来获取视频,而是尝试解析fmt\u url\u映射(格式化url映射)

您应该能够在找到令牌的同一位置找到fmt_url_地图(比如在YouTube flash视频播放器的flashvars中,或者在YouTube页面的某个地方)。如果找不到,请向VIDEO_ID发送请求,您应该会得到一个非常长的结果,格式为
name=value&name=value&…
find“fmt_url_map”(在结果中搜索以“&fmt_url_map=”开头,以“&”结尾的字符串)

获得此值后(您可能需要对其进行url解码),它将类似于(不带换行符):

其中,每个以逗号分隔的条目以fmt值(本例中为22或35)开头,后跟管道字符,然后后跟URL,您可以使用该URL以该格式下载视频。(此URL是特定于客户端的,因此由于YouTube检查IP,某个客户端的URL很可能无法与另一个客户端协同工作。此外,URL确实会在一段时间后过期。)

有关不同fmt值的列表,请参阅:并显示“YouTube媒体编码选项的组合”。注意:并非所有格式都适用于所有视频


已弃用:不再有效

我已经创建了一个node.js服务器,可以将YouTube视频直接流式传输到客户端,并且可以正常工作。详细信息请参见。

如果您解析fmt_url_map(来自*VIDEO_ID*),您可以获得更直接的下载url,但它们通常没有所有可能的格式…好的,我将其作为答案发布-如果您有任何问题,请提问。我们都非常需要一个开源项目来跟上youtube dl链接。我对跟上他们的比赛感到厌倦了。如果可以的话,我可以+10。问题:你说它是特定于客户端的,所以如果我生成url供用户自己下载文件,这就行不通了?这可能是个问题(尽管get_video也有这个问题)。如果您实际请求页面并在外部服务器上获取下载URL,YouTube会将服务器的IP与该URL关联(就像它将IP与get_video方法中的每个令牌关联一样)。假设您正在尝试在web浏览器中进行此操作,您可以尝试使用Java小程序在客户端进行此操作(这是许多像clipnabber.com这样的网站所做的,尽管它可能非常笨重)。如果您只是编写一个完全的客户端程序,那么应该没问题,因为所有请求都是通过客户端的IPI发送的。今天,我们注意到这种方法不再有效。如果你们中有人知道一种工作方法,请将其张贴出来here@PavanK我找到了一种新方法。有关详细信息,请参阅我的答案。
22|http://blah.youtube.com/videoplayback?blah,
35|http://blah.youtube.com/videoplayback?blah,
...