Skip to content

leaven/VideoSpider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

什么是视频嗅探

视频嗅探就是通过对一个可播放的url进行分析,最终获取该url中的视频资源。

###视频嗅探的作用

骚年有木有在看视频的时候面对60秒的广告有摔电脑的冲动,有木有面对一堆广告位X疼X紧,想看高清资源特么还要加入会员有木有...没关系,通过视频嗅探,一切都会变得so easy,广告也没了,视频流畅了,一口气看完不是梦! ###视频嗅探原理 要想获取到一个播放页的视频资源,要经过以下三部曲:

  • 分析播放页url规则
  • 抓包
  • 破解规则

分析播放页url规则

在抓取一段视频资源前,需要对视频播放页的url进行分析,把具有相同规则的url归位一类,以便在抓取的时候根据不同的url对应不同的规则,在这里我们仅抓http请求,加密的https放弃。

###抓包

在破解规则之前,我们需要抓取所有的请求,一般需要改下ua模拟一下移动端设备,值得关注的有视频资源(mp4,flv,flash等)、json请求、xml、网页源码等,还要注意其中的http states 是否有302、301等。

###破解规则

#####在成功抓包后,需要对它们之间的关系进行猜解,一般步骤是这样的:

  1. 抓到视频资源,一般是mp4神马格式的,如果有302神马的还需要往上找,直到找到最初发出请求的那个地址。

  2. 找到最初地址后,看看该地址的格式,如果是一堆码神马的应该就是在js里面经过一些编码转码操作搞出来的,如果是一个规则的url,有两种可能,一种是直接打在源码里面的,这个时候直接抓源码即可,另外一般就是在json、xml接口里面的,这个时候需要我们再对抓到的json、xml进行分析。

  3. 一般第二步完成之后,如果能顺利在json接口里面找到真实的播放地址,那就进入第四步,否则,还需要再进行分析,可以把视频真实地址分割,然后再在json里面找,有很多视频地址是经过拼接完成的,一般来说,绝大数视频地址都是通过json接口或者xml取到的,无非是对json的一些字段进行一些混淆与包装最终拼接成真实的url。

  4. 找到json接口后,我们得分析该json接口的地址是怎么发出的。技术渣一点的网站一般是直接写死在js里面,通过调试瞬间可以抓到。牛逼一点的站点可能会定义一个时间种子跟服务器密钥,在获取每个视频资源的时候,该种子跟密钥唯一,但是再牛逼,js是开放的,密钥无非是跟服务器的另外一个通信接口而已,我们只需要伪造一个相同的请求就可以获取到密钥,然后种子也是,可能在本地对时间函数进行了一些加密包装,只要一步一步调试即可发现具体生成步骤。

  5. 通过以上4步基本可以搞定绝大多数站点。

###示例

http://tv.sohu.com/20140518/n399706722.shtml的视频资源进行抓取

  • 配置ua,url跳转至http://m.tv.sohu.com/xxxx

  • 很容易抓取到初步的请求地址http://data.vod.itc.cn/?new=/67/254/DtqGJ5QDo3yxdWQ4qCbC9.mp4&vid=1001434726&plat=17&mkey=DZo7YHoBK66QA2Hfrt6NiYlRU9d9p3XQ&ch=tv&vid=1775180&uid=1312061159241820&plat=17&pt=1&prod=h5&pg=1&eye=0&cateCode=122;122102

  • 然后也很容易抓到是http://api.tv.sohu.com/v4/video/info/1775180.json?site=1&callback=initLoadVideoCallback&api_key=695fe827ffeb7d74260a813025970bd5&plat=17&sver=1.0&partner=1 该json请求中的download_url字段

  • 通过对min.tv.js分析,可以发现该json请求中的唯一变量就是XXXX.json,而这个id正是写在网页源码中的vid

  • 最终可以通过先抓网页源码中的vid,再拼接成json请求,取到download_url字段的值便是真实的视频地址。

###demo http://liwei24.fe.baidu.com/VideoSpider/index.php

https://github.com/leaven/VideoSpider/

未完待续...

About

A spider used php to crawel videos from some sites

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published