- 地址動態生成,每次請求返回的地址都不一樣。
- 長視頻會被分割成多段短視頻。
- 對視頻下載有一些限制,下載地址只對與請求的瀏覽器相同的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&it=
後面,比如
http://v2.tudou.com/v?vn=02&st=1%2C2&it=75629467
訪問該地址,返回的是一個xml格式的文件,裏面就有視頻下載地址和一些視頻相關信息(根據情況自己進行url_decode)。
土豆視頻的解析相比於優酷的解析,因爲地址沒有加密,顯得更直接。但是在服務器端限制了請求用戶和下載用戶的user-agent,需要特別注意。可以利用切換用戶user-agent的工具,改變自己的user-agent然後發送請求,得到具有針對性的下載地址。比如利用httpClient:
httpClient.getParams().setParameter(HttpMethodParams.USER_AGENT, userAgent);