Abel Lee

 
   

各大视频网站的视频解析(SWF地址)

把国内几大主力视频网站的视频解析发一下

没什么难点 只是我花了点时间折腾而已

发这里对各位可能有点帮助

再者是 这个是我的微博工具里使用的 Mew微博 https://mew.iabel.com

然后我关注的人发出来的视频 大部分都是youku tudou之类的 所以我可以确定的是这几个的解析是肯定没问题的

其它的几个网站 已知的存在问题的是ku6 但也并不是完全失效 因为这段时间没太关注这些网站的这方面的动态 貌似ku6新弄了个版块 二级域名不一样了 所以这部分才出问题了

但我感觉 基本解析过程还是一样的

然后除了上面提到的几个站 还有sina这些都是OK的之外 其它的网站是我自己在折腾过程中试过的 是的确可以的 只是我没在我的微博工具里看到有人发那些网站的视频

再者是奇异的视频 我只能找出视频的swf链接 找不到视频的缩略图 之前花了好多时间在奇异视频解析上 但始终找不到 也就没太在意了 最近也没顾的上再去看看 如果各位谁知道方法 麻烦请回复在下面 指教一下 谢谢了哈。。。

域名检测以确定视频的发布网站那一步就不说了

反正各大视频网站的域名弄个表比对过去就能确定是哪个网站的了

还有要说明的几点是 我只帖解析过程中关键用到的正则 其它你们自己按需求写就可以了

正则是我用as3写的 有些特有的写法我会作解释

再一个是 各大视频网站的视频播放页面的编码不同 也需要你自己特别处理一下

就像优酷用的是utf8 土豆好像是gbk之类的问题

优酷:

/id_(?P<id>.+?).html/

优酷的视频解析起来还是比较轻松的

但也有两种情况

第一种情况是,链接的最后是id_***.html形式的 那星号部分 就是视频的id

直接用上面的正则把视频id取出来

然后

https://player.youku.com/player.php/sid/ + 视频id + /v.swf

组合一下就是视频的swf地址

正则里的?P<id>你可以无视 这个是as3特有的写法

这样正则比对出来的结果集中 可以直接通过id这个索引去取结果

别的语言没这种写法的 删除这部分就OK了。。。

第二种情况是 如果链接的最后不是id_***.html形式的

那就得在页面里找视频的id了

打开页面源代码 ctrl+f搜索 videoId2

整个页面就只有这一个 后面紧跟着的就是视频的id

拿到id后就跟第一种情况最后的步骤一样了


土豆:

土豆的解析有点麻烦,当初在做的时候就一直抱怨。

因为土豆的视频链接就不止一种

第一种情况:

/\/p\/[a-z]\d+i(?P<id>\d+).*\.html

里面as3特有的正则写法不重复说了,具体可以根据这个正规的写法去对比一下土豆的视频链接

同样 拿到id后

https://www.tudou.com/v/+ 视频id + /v.swf

跟这个组合起来就是视频地址

第二种情况:

/[&#\?]iid=(?P<id>\d+)/

不多说了

还有一种情况,就连视频链接的组合也不同,需要在页面源代码里找,正则是

/defaultIid(?:\s*)=(?:\s*)(?P<id>\d+)/

找到这个id还要找另一个code,而这个code又能分两种情况找- -!!!麻烦吧。。

一种情况是:

/lcode(?:\s*)=(?:\s*)\'(?P<code>.+?)(?:\s*)\'/

另一种情况是:

/icode(?:\s*)=(?:\s*)\'(?P<code>.+?)(?:\s*)\'/

应该能看出差别吧 一个是lcode 一个是icode

唉。。无语。。

然后组合的链接是

https://www.tudou.com/l/+ lcode或者icode + /&iid=+ 视频id + /v.swf


酷6:

酷6蛮干脆的 直接进页面源代码找。

而且也很一次性的把视频id跟缩略图都找出来了

/[\$nsA]\.VideoInfo(?:\s*)=(?:\s*){.+id(?:\s*):(?:\s*)\"(?:\s*)(?P<id>.+?)(?:\s*)\"(?:\s*),(?:\s*)uid.+cover(?:\s*):(?:\s*)\"(?:\s*)(?P<img>.+?)(?:\s*)\"/

然后

https://player.ku6.com/refer/+ 视频id + /v.swf

组合一下就OK了


Sina:

新浪视频也直接进页面源代码

/swfOutsideUrl(?:\s*):(?:\s*)\'(?:\s*)(?P<src>.+?)(?:\s*)\'(?:\s*),/

直接搞定


56:

在视频链接的最后一个"/"与最后一个"."之间的就是视频id

https://player.56.com/"+ 视频id + ".swf


sohu:

直接从页面源代码找

/var(?:\s*)vid(?:\s*)=(?:\s*)\"(?:\s*)(?P<id>.+?)(?:\s*)\"(?:\s*);/

然后是

https://share.vrs.sohu.com/"+ 视频id + "/v.swf


音乐台:

这个也简单,直接在页面源代码找

/<meta(?:\s*)property=\"og:videosrc\"(?:\s*)content=\"(?P<src>.+?)\"(?:\s*)\/>/

就OK了


v1:

- -!麻烦的来了

v1的视频的链接没办法通过链接或源代码里的一些信息就能组合出来

因为他们的播放器涉及到版本的问题

好像是有分高清跟普通的区别

所以这些代码深的很,还需要进入相应的js文件再找

所以我们得先找js文件的链接

/<script(?:\s*)type=\"text\/javascript\"(?:\s*)src=\"(?P<jssrc>.+?)\">(?:\s*)<\/script>(?:\s*)<script>writeAlbumHtml\(\{id:\"(?P<id>.+?)\"\}\);<\/script>/

其中的(?P<jssrc>.+?)里面的jssrc就是js文件的地址,依旧是as3特有写法,不说了哈。

然后(?P<id>.+?)这个是视频id,要记下来

接着加载js文件

然后再用正则在js里找播放器链接

/html8(?:\s*)\+=(?:\s*)\"<embed(?:\s*)src=(?P<src>.+?)(?:\s*)FlashVars=id=\"(?:\s*).+<\/object>\";/

把这里的(?P<src>.+?)跟上面保存的视频id组合起来

也就是src + "&id=" + 视频id


cntv:

这个是更麻烦的- -!!!

你会发现 一些固定的参数一堆又一堆的要找 然后全堆到链接上才算是真正的视频链接- -!!!

页面源代码找,先找一个videoCenterId

/var(?:\s*)videoCenterId(?:\s*)=(?:\s*)\"(?P<videoCenterId>.+?)\";/

再找视频id

/fo\.addVariable\(\"videoId\"\,(?:\s*)\"(?P<videoId>.+?)\"\)\;/

接着找一个文件路径,原来猜了一下这个文件的用处,现在忘记了 反正这个是一定要找的

要在最后跟别的参数组成视频链接地址

/fo\.addVariable\(\"filePath\"\,(?:\s*)\"(?P<filePath>.+?)\"\)\;/

再找一个url  汗。。。

/fo\.addVariable\(\"url\"\,(?:\s*)\"(?P<url>.+?)\"\)\;/

最后组合视频链接- -!作好心理准备 真的很长。。。。

"https://player.cntv.cn/standard/cntvOutSidePlayer.swf?videoId="+ 上面找的视频id +"&filePath="+ 上面找的文件路径 + "&isAutoPlay=false&url="+ 上面找的url +"&tai=bugu&configPath=https://bugu.cntv.cn/nettv/Library/ibugu/player/config.xml&widgetsConfig=https://bugu.cntv.cn/nettv/Library/ibugu/player/widgetsConfig.xml&languageConfig=https://bugu.cntv.cn/nettv/Library/ibugu/player/zh_cn.xml&hour24DataURL=&outsideChannelId=channelBugu&videoCenterId="+ 上面找的videoCenterId

里面的引号你们用的时候去掉吧 我直接代码里复制出来的 太长了 我就不去一个个找出来删了- -! 反正你们也知道什么个意思 哈哈。。。


激动网:

这也比较简单 直接开页面源代码

/var(?:\s*)\_video\_obj\=\{id\:\"(?P<id>.+?)\"\,.+\,cover\:\"(?P<img>.+?)\"\,.+\,title\:\"(?P<title>.+?)"\,.+\,playUrl\:\".+\"\,sharable\:.+\,pId\:.+\,cId\:.+\,vId\:.+\}\;/

这其中已经包含了视频id、缩略图、视频标题了,自己选着用吧

https://client.joy.cn/flvplayer/kx_+ 视频id + _1_1_1.swf

然后组合一下。


奇异:

开页面源代码

先找videoId

/videoId(?:\s*):(?:\s*)\"(?P<vid>.+?)\",/

接着找pid

/pid(?:\s*):(?:\s*)\"(?P<pid>.+?)\",/

再接着找ptype

/ptype(?:\s*):(?:\s*)\"(?P<ptype>.+?)\",/

再找albumId

/albumId(?:\s*):(?:\s*)\"(?P<albumId>.+?)\",/

哭- -!!!!

还要找tvId

/tvId(?:\s*):(?:\s*)\"(?P<tvId>.+?)\",/

终于可以找视频链接了- -!

/var(?:\s*)flashUrl(?:\s*)=(?:\s*)\'(?P<url>.+?)\';/

然后把这一步找出来的url + "?vid="+ vid + "&pid="+ pid + "&ptype="+ ptype +"&albumId="+ albumId + "&tvId="+ tvId

就是视频地址了

至于奇异视频的缩略图,我只能说 我之前一直没找到,但有部分视频 在上面找到的那些信息里是可以拼出缩略图的 但却不是百分百有用的 因为奇异大部分视频的缩略图貌似都跟日期有关 而且这个日期在页面的确能找到 但又有很多视频的缩略图,却跟页面所能找到的日期是不同的,然后我当初就是没搞明白这其中有何规律 如果你们有谁找到解决办法了的话 麻烦请指点我一下,先谢过了。


这些是我之前在做Mew微博的时候所解析的大部分的视频网站的视频地址,因为找了一下 大大小小的网站,实在太多了,之前把六间房的也解析了 但后来感觉六间房现在更注重视频聊天室方面的业务,其它视频质量都很差,虽然解析出来了 也没放进代码,因为之前电脑的硬盘被我摔坏了 数据全没了 所以这些本已经解析好的方法也没了。。。唉~

不过你们完全可以自己去找一下其中的规律,六间房的还是不麻烦的

然后最后我想说的是 这些解析的方法,是我在做Mew微博的时候做的解析,距离现在已经有将近一个半月了 我不知道这些视频网站有没有改过他们的代码,亦或者他们可能已经有了新的版块 其中也有视频 这些可能都需要你们自己去研究了 我这就不多说了 反正都差不多 也没什么难度,花点时间你们完全都能搞出来。不过可以确定的是 youku、tudou、sina这些都是没问题的。

好了 就到这吧 写的肚子都疼了。。去趟厕所先- -!!!


 
 
评论