我有一个脚本,从YouTube下载MP4文件。它的作用是生成链接的形式http://youtube.com/get_video?video_id= * VIDEO_ID * & & t = * THE_TOKEN * = & fmt = 18 & asv = 2,但它不再工作(今天注意到它)。你怎么看?无法从YouTube下载
回答
而不是尝试使用get_video获取视频,请尝试解析fmt_url_map(format-url map)。
您应该能够在您找到该令牌的相同位置找到fmt_url_map(例如在YouTube Flash视频播放器的flashvars中或在某处的YouTube页面内)。如果找不到,请发送请求至http://www.youtube.com/get_video_info?video_id=VIDEO_ID,您应该得到一个格式为name=value&name=value&...
的非常长的结果在此结果中查找“fmt_url_map”(搜索结果中的字符串以“ & fmt_url_map =“并以”&“结尾)。
后你得到这个值(您可能需要URL解码它),它会是这样的(不换行):
22|http://blah.youtube.com/videoplayback?blah,
35|http://blah.youtube.com/videoplayback?blah,
...
其中每个逗号分隔条目与FMT值开始(在本例中为22或35),然后是一个管道字符,然后是可以用来下载该格式视频的URL。 (这个URL是特定于客户端的,所以某个客户端的URL很可能不会与另一个客户端一起工作,因为YouTube会检查IP,而且这些URL会在一段时间后过期。)
有关不同的fmt值,请参阅:http://en.wikipedia.org/wiki/YouTube#Quality_and_formats并显示“YouTube媒体编码选项的Comarison”。注意:并非所有格式都可用于所有视频。
如果你想下载到服务器,你可以使用youtube-dl仍然有效。
好吧,他们似乎已经删除了fmt选项。请参阅http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs。
我创建了一个node.js服务器,它可以将YouTube视频直接传输到客户端,并且工作正常。详情请参阅https://github.com/licson0729/node-YouTubeStreamer。
- 1. 无法从YouTube
- 2. 无法从YouTube的编码错误下载
- 3. 从YouTube下载音频c#
- 4. 从YouTube下载视频
- 5. 无法从Git下载Symfony2
- 6. 无法从Sourceforge下载MinGW
- 7. Windows Phone Youtube下载
- 8. Android Youtube下载mp3
- 9. 仅从YouTube视频下载音频
- 10. 从Youtube下载视频:errorcode = 150
- 11. 从Python使用Youtube上下载视频
- 12. 无法下载使用phptube类的youtube视频
- 13. 嵌入的YouTube视频无法加载
- 14. 无法下载Appium
- 15. Laravel无法下载
- 16. 无法下载Coderally
- 17. grails无法从maven repo下载jar
- 18. Docx文件无法从网页下载
- 19. buildr build中止 - 无法从repo下载
- 20. 无法从网络应用下载pdf
- 21. 无法从netbeans下载glassfish 3
- 22. 无法从虚拟机下载文件
- 23. 无法从rubygems下载数据
- 24. 无法使用silverlight从sharepoint下载xml。
- 25. 无法从谷歌下载R数据
- 26. 我无法从App Store下载Xcode
- 27. 无法从Microsoft下载Sql Server
- 28. 无法从facebook下载图片iframe
- 29. 无法从给定链接下载.publishsettings
- 30. 无法从github下载Openshift v3
我们都非常需要开源项目来跟上youtube dl链接。我厌倦了跟上他们的比赛。 – samquo 2010-12-11 04:49:57