土豆视频真实地址解析

土豆的视频下载有以下几个特点:

  1. 地址动态生成,每次请求返回的地址都不一样。

  2. 长视频会被分割成多段短视频。

  3. 对视频下载有一些限制,下载地址只对与请求的浏览器相同的user-agent有效。这就意味着A用户用A浏览器获得的地址,只能用A浏览器下载,即使换个B浏览器也不行,更别说用其它工具了。

要解析土豆视频的下载地址,就必须找到iid。土豆有两种形式的播放地址,一种是形如

http://www.tudou.com/programs/view/QHFawBSeA4k/

的单一视频播放地址,另一种是形如

http://www.tudou.com/playlist/playindex.do?lid=11694367&iid=75610812

的豆单播放地址。 如果是第一种,直接查看源代码,可以找到

,iid = 75629467

如果是第二种,iid直接在url地址里,iid=75610812。 找到iid以后,把iid拼在

http://v2.tudou.com/v?vn=02&st;=1%2C2⁢=

后面,比如

http://v2.tudou.com/v?vn=02&st;=1%2C2⁢=75629467

访问该地址,返回的是一个xml格式的文件,里面就有视频下载地址和一些视频相关信息(根据情况自己进行url_decode)。

土豆视频的解析相比于优酷的解析,因为地址没有加密,显得更直接。但是在服务器端限制了请求用户和下载用户的user-agent,需要特别注意。可以利用切换用户user-agent的工具,改变自己的user-agent然后发送请求,得到具有针对性的下载地址。比如利用httpClient:

1
2

httpClient.getParams().setParameter(HttpMethodParams.USER_AGENT, userAgent);