如何获取youtube视频的数据流链接?

如何获取youtube视频的数据流链接?,youtube,youtube-channels,Youtube,Youtube Channels,我不确定这是否是发布这个问题的正确位置,我在谷歌上搜索了很多关于这个问题的信息,但什么也没找到,。获取表单的链接 http://www.youtube.com/watch?v=[视频识别码] 如何获取数据流的链接?每个频道都提供rss数据,不会立即更新 这是Youtube RSS文件的生成器。您应该能够根据RSS信息推断视频文件的位置。flv文件应该是可流化的,但也提供了其他格式 编辑: http://www.referd.info/不再可用。这基本上是一个服务,你提供了youtube链接,它取

我不确定这是否是发布这个问题的正确位置,我在谷歌上搜索了很多关于这个问题的信息,但什么也没找到,。获取表单的链接

http://www.youtube.com/watch?v=[视频识别码]


如何获取数据流的链接?

每个频道都提供rss数据,不会立即更新

这是Youtube RSS文件的生成器。您应该能够根据RSS信息推断视频文件的位置。flv文件应该是可流化的,但也提供了其他格式

编辑:
http://www.referd.info/
不再可用。这基本上是一个服务,你提供了youtube链接,它取消了引用,找到了所有可能的视频下载源。我确信那些服务仍然存在。。。这个不再是了。

每个频道都提供rss数据,不会立即更新

这是Youtube RSS文件的生成器。您应该能够根据RSS信息推断视频文件的位置。flv文件应该是可流化的,但也提供了其他格式

编辑:
http://www.referd.info/
不再可用。这基本上是一个服务,你提供了youtube链接,它取消了引用,找到了所有可能的视频下载源。我确信那些服务仍然存在。。。这一个不再是了。

这里有一个快速的课程,可以对YouTube页面进行反向工程以提取流数据

在HTML中,您会发现一个标记,它定义了一个变量“swfHTML”-看起来像这样:“var swfHTML=(isIE)?”

该代码段后面的引号中的文本是显示Flash对象的HTML。请注意,此文本是一组被连接起来的拆分字符串,因此您需要对其进行清理(例如,剥离“+”的实例并转义反斜杠以获取HTML字符串)

清理后,您需要找到带有name=“flashvars”标记,该标记的值是一个以&-分隔的URL。在&上进行拆分,您将获得与此视频相关的所有数据的键值对


您要查找的主键是“fmt_url_map”,它是一个url编码字符串,由逗号分隔的值组成,以“35 |”或“34 |”或其他开头。(这些文件在另一个键中定义,fmt_list“是分辨率为854x480的文件,适用于35640x360的文件,适用于34的文件,等等)

下面是一个关于反向工程YouTube页面以提取流数据的快速课程

在HTML中,您会发现一个标记,它定义了一个变量“swfHTML”-看起来像这样:“var swfHTML=(isIE)?”

该代码段后面的引号中的文本是显示Flash对象的HTML。请注意,此文本是一组被连接起来的拆分字符串,因此您需要对其进行清理(例如,剥离“+”的实例并转义反斜杠以获取HTML字符串)

清理后,您需要找到带有name=“flashvars”标记,该标记的值是一个以&-分隔的URL。在&上进行拆分,您将获得与此视频相关的所有数据的键值对


您要查找的主键是“fmt_url_map”,它是一个url编码字符串,由逗号分隔的值组成,以“35 |”或“34 |”或其他开头。(这些在另一个键中定义,fmt_list“将是分辨率为854x480的文件,分辨率为35,分辨率为640x360的文件,等等。)

以下bash脚本将检索youtube流媒体url。我知道这已经过时了,但也许这会对某些人有所帮助

#!/bin/bash

[ -z "$1" ] && printf "usage: `basename $0` <youtube_url>\n" && exit 1

ID="$(echo "$1" | grep -o "v=[^\&]*" | sed 's|v=||')"
URL="$(curl -s "http://www.youtube.com/get_video_info?&video_id=$ID" | sed -e 's|%253A|:|g' -e 's|%252F|/|g' -e 's|%253F|?|g' -e 's|%253D|=|g' -e 's|%2525|%|g' -e 's|%2526|\&|g' -e 's|\%26|\&|g' -e 's|%3D|=|g' -e 's|type=video/[^/]*&sig|signature|g' | grep -o "http://o-o---preferred[^:]*signature=[^\&]*" | head -1)"

[ -z "$URL" ] && printf "Nothing was found...\n" && exit 2

echo "$URL"
#/bin/bash
[-z“$1”]&&printf“用法:`basename$0`\n”&&exit 1
ID=“$(echo“$1”| grep-o”v=[^\&]*”| sed's | v=| |
URL=“$(curl-s)”http://www.youtube.com/get_video_info?&video_id=12月12日|よよよ:::::::| g-g'-e'1245%252Fよ?よよよ124244??124244?|本月12月12日|:::::::::::::;g-g-g'-e's-e-e'1244's's的国家的第1244'1244'1244's S1244's1244's1244'1244's1244'本本本本本本村村村村村村村村村的第三元元元元元元元元的第二1244 1244 1244????????1244??1244??1244??????|签名| g'| grep-o“http://o-o---preferred[^:]*签名=[^\&]*“|头-1)”
[-z“$URL”]&&printf“未找到任何内容…”\n“&&exit 2
回显“$URL”

以下bash脚本将检索youtube流媒体url。我知道这已经过时了,但也许这会对某些人有所帮助

#!/bin/bash

[ -z "$1" ] && printf "usage: `basename $0` <youtube_url>\n" && exit 1

ID="$(echo "$1" | grep -o "v=[^\&]*" | sed 's|v=||')"
URL="$(curl -s "http://www.youtube.com/get_video_info?&video_id=$ID" | sed -e 's|%253A|:|g' -e 's|%252F|/|g' -e 's|%253F|?|g' -e 's|%253D|=|g' -e 's|%2525|%|g' -e 's|%2526|\&|g' -e 's|\%26|\&|g' -e 's|%3D|=|g' -e 's|type=video/[^/]*&sig|signature|g' | grep -o "http://o-o---preferred[^:]*signature=[^\&]*" | head -1)"

[ -z "$URL" ] && printf "Nothing was found...\n" && exit 2

echo "$URL"
#/bin/bash
[-z“$1”]&&printf“用法:`basename$0`\n”&&exit 1
ID=“$(echo“$1”| grep-o”v=[^\&]*”| sed's | v=| |
URL=“$(curl-s)”http://www.youtube.com/get_video_info?&video_id=12月12日|よよよ:::::::| g-g'-e'1245%252Fよ?よよよ124244??124244?|本月12月12日|:::::::::::::;g-g-g'-e's-e-e'1244's's的国家的第1244'1244'1244's S1244's1244's1244'1244's1244'本本本本本本村村村村村村村村村的第三元元元元元元元元的第二1244 1244 1244????????1244??1244??1244??????|签名| g'| grep-o“http://o-o---preferred[^:]*签名=[^\&]*“|头-1)”
[-z“$URL”]&&printf“未找到任何内容…”\n“&&exit 2
回显“$URL”

您需要像这样打开链接
并在返回数据中找到您的流

您需要这样的打开链接
并在返回数据中查找流

对其中一个URL发出GET请求(使用CURL、Fiddler或其他方法)。确保包含适当的请求头(Cookie和主机,可能还有其他)。我从浏览器中抓取了YouTube cookies。我已经用Fiddler手动测试过了,我已经下载了一些视频。对其中一个URL发出GET请求(使用CURL、Fiddler或其他方法)。确保包含适当的请求头(Cookie和主机,可能还有其他)。我从浏览器中抓取了YouTube cookies。我已经用Fiddler手动测试过了,我已经能够下载一些视频了。似乎是可行的,唯一的问题是它的Java小程序。似乎可以工作,唯一的问题是它的Java小程序。此脚本已过时,需要更新(使用https等)此脚本已过时,需要更新(使用https等)