细说《土豆视频地址解析》
梦回君与我言及土豆网的视频地址。步其后尘,探求一番,有于下心得。记下来,与坛友把玩。
此交流针对制作过视频播放器的朋友。
此前,对土豆网的视频,兴趣不大,未曾接触。一经摸索,得知它已与优酷联姻为“优酷土豆集团”。
根据土豆网视频节目的具体情况,感觉将它的视频节目分两部分处理为好。
一、电视剧、电影类
以《悬崖》电视剧为例,播放页面地址于下(任意集):
http://www.tudou.com/albumplay/Gete07-x03E/NE-h9JoNBAw.html
下载该页面,内中代码的第一段JS中有 aid=171068 项,将此值拼合出于下地址,即得到电视剧的总信息文件:
http://www.tudou.com/outplay/goto/getAlbumItems.html?aid=171068
此总信息文件中,可得到各集的多项参数,其中
"vcode": "XMzM5NjE2NzY4" 可用于拼合单集的信息文件:
"http://v.youku.com/player/getPlayList/VideoIDS/
" + "XMzM5NjE2NzY4"
+ "/timezone/+08/version/5/source/out/Sc/2?n=3&
"
+ "ran=9109" + "&password="
观察一下,较优酷网的单集信息文件地址,仅多了一项 ran=9109 ,单集中各视频文件的真实链接可由其中的参数解密得到。具体方法可参考
【细说《优酷视频真实地址解析》】:
http://webftp.bbs.hnol.net/dysr/201101/youku_url_20111120.htm
加载单集信息文件,也不再需要代理。
产生随机数、土豆网电视剧(电影)vcode 值解析尝试于下,可参照用于播放器制作中。
供试验用:http://www.tudou.com/albumplay/Gete07-x03E/NE-h9JoNBAw.html
电视剧《悬崖》
二、土豆网视频 豆单类
豆单类的视频解析多几个步骤,以【飞碟说】为例,任意节目的播放页面如下:
http://www.tudou.com/listplay/PpF7UQS8rE0/5oD0zZ6CJuA.html
1、下载播放页面,代码中有
lid = 17267227
项,用它拼合出豆单总信息文件地址:
http://www.tudou.com/outplay/goto/getPlaylistItems.html?lid=17267227
2、从总信息文件中,可得到各节目的 "itemId": 179903842 值,
拼合出单节目不同分辨率及片断数的信息文件链接:
http://www.tudou.com/outplay/goto/getItemSegs.action?iid=179903842
节目:“一个备胎的自我修养” ,信息内容于下:
segs: ‘{
"3":[{"seconds":276840,"no":0,"pt":3,"k":180481495,"size":19506422}], 高清
"2":[{"seconds":276870,"no":0,"pt":2,"k":180478415,"size":10128718}], 标清
"5":[{"seconds":276840,"no":0,"pt":5,"k":180484161,"size":41306887}] 超清
}’
3、由
"k":180481495, 拼合得到单个视频文件链接的信息文件地址:
http://v2.tudou.com/f?id=180481495
http://v2.tudou.com/f?id=180478415
http://v2.tudou.com/f?id=180484161
于下为豆单节目
K 值解析尝试:
供试验用:
http://www.tudou.com/listplay/PpF7UQS8rE0/5oD0zZ6CJuA.html 【飞碟说】
http://www.tudou.com/listplay/p6Ne7L01n9E/orzwS7GBwyQ.html 【北京精神科】
一些说明
1、土豆网的电视剧和电影视频节目,就是优酷网的节目,所以视频文件地址的“解密”可完全按优酷的处理方法,这里没必要赘述。
不同之处,在地址链接中增加了“随机数”项 ran
,并且随机数好象是静态的。链接也不需要代理了。某些节目,土豆网有,但优酷网却没有。这样,“优酷片源”更丰富了。
2、豆单节目一般为单文件,也有多文件的节目,那么,在不同分辨率的数组中则有多个 K 值项。
豆单的节目,每个视频文件地址都有一个单独的信息文件(真麻烦)。
3、制作豆单节目的播放器,可以先观察一下解析过程的几个步骤,若某个步骤的数据是静态的,则可固定下来或采用手工处理(这样可节省一点解析的时间)。我估计,只有最后一个步骤需动态处理,也就是视频地址的信息文件需动态读取,因为视频地址是动态的。
暂告一段落,需要完善的地方还很多。欢迎大家多多讨论、指教。