国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - java實(shí)現(xiàn)優(yōu)酷視頻地址解析示例代碼分享

java實(shí)現(xiàn)優(yōu)酷視頻地址解析示例代碼分享

2019-10-30 16:59java代碼網(wǎng) JAVA教程

最近做了一個(gè)在線視頻的下載器,需要解析youku的視頻,獲得真正的視頻地址,現(xiàn)在把解析過(guò)程記錄下來(lái)以供參考

舉個(gè)例子比較好理解,比如我現(xiàn)在要下http://v.youku.com/v_show/id_XNDM2Mjc0MzAw.html這個(gè)視頻。這里我們要獲得的是視頻的id,就是XNDM2Mjc0MzAw這部分,這是一個(gè)視頻唯一的,所以在解析的時(shí)候肯定會(huì)用到。

為了能看清楚youku視頻的播放過(guò)程,可以使用火狐的插件firebug對(duì)網(wǎng)頁(yè)進(jìn)行跟蹤,如下圖。

java實(shí)現(xiàn)優(yōu)酷視頻地址解析示例代碼分享

可以看到有很多GET,我們要找的應(yīng)該是以這個(gè)id作為參數(shù)的GET,在下面我們可以找到這個(gè)鏈接
http://v.youku.com/player/getPlayList/VideoIDS/XNDM2Mjc0MzAw/timezone/+08/version/5/source/video?ran=3545&password=&n=3
這是youku獲取播放列表的GET,打開(kāi)它的響應(yīng),這是一個(gè)json,我們需要的內(nèi)容是seed、streamfileids和segs。segs里面放的是視頻的分段key,streamfileids是一串亂碼,要用seed對(duì)他解碼。下面我截取了下載器的一部分來(lái)說(shuō)明解碼的過(guò)程,解析json用的是json-lib-2.4-jdk15。

 

復(fù)制代碼代碼如下:

List<Video> videos = new ArrayList<Video>();
JSONObject data;
//json就是剛獲得的響應(yīng),類型為String。
data = JSONObject.fromObject(json).getJSONArray("data").getJSONObject(0);
double seed = Double.valueOf(data.getString("seed"));
String style="margin: 3px auto 0px; padding: 0px 3px; outline: none; line-height: 25.2px; font-size: 14px; background: rgb(242, 246, 251); width: 640px; clear: both; border-top: 1px solid rgb(0, 153, 204); border-right: 1px solid rgb(0, 153, 204); border-left: 1px solid rgb(0, 153, 204); border-image: initial; border-bottom: none; font-family: tahoma, arial, "Microsoft YaHei";"> 復(fù)制代碼代碼如下:

private String getFileID(String fileid, double seed) {
    String mixed = getFileIDMixString(seed);
    String[] ids = fileid.split("\\*");
    StringBuilder realId = new StringBuilder();
    int idx;
    for (int i = 0; i < ids.length; i++) {
        idx = Integer.parseInt(ids[i]);
        realId.append(mixed.charAt(idx));
    }
    return realId.toString();
}

private String getFileIDMixString(double seed) {
    StringBuilder mixed = new StringBuilder();
    StringBuilder source = new StringBuilder(
        "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ/\\:._-1234567890");
    int index, len = source.length();
    for (int i = 0; i < len; ++i) {
        seed = (seed * 211 + 30031) % 65536;
        index = (int) Math.floor(seed / 65536 * source.length());
        mixed.append(source.charAt(index));
        source.deleteCharAt(index);
    }
    return mixed.toString();
}

 

代碼最后將得到一個(gè)Video類型的List,Video中的order是視頻的編號(hào),seconds是時(shí)間長(zhǎng)度,size是字節(jié)長(zhǎng)度,youUrl就是真正的視頻地址,還有視頻的標(biāo)題title。還有一些其他的內(nèi)容都可以從json中獲得。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲一区二区三区视频 | 91精品久久久久久9s密挑 | 欧美第一专区 | 久久久成人网 | 久久久久久亚洲精品视频 | 国产做a爰片久久毛片a我的朋友 | 欧美一区二区三区男人的天堂 | 久久免费看少妇a高潮一片黄特 | 久久国 | 亚洲成av人片在线观看无码 | 亚洲污视频 | 一区二区三区四区在线 | 69久久夜色精品国产69乱www | 国产视频综合在线 | 日韩在线免费观看视频 | 国产视频一区二区在线 | 久久久久国产一区二区三区四区 | 久久中文字幕精品 | 日韩成人在线一区 | 亚洲国产精品激情在线观看 | 亚洲国产精品一区在线 | 久久免费精品视频 | 不卡黄色片 | 久久中国精品 | 亚洲成人av在线播放 | 久久九九 | 在线成人一区 | 欧美乱大交xxxxx春色视频 | 日韩在线播放一区二区三区 | 国产精品美女久久久久高潮 | 精品日韩一区二区 | 欧美一级淫片007 | 欧美日韩精品免费观看 | 免费看一区二区三区 | 中文字幕高清免费日韩视频在线 | 亚洲免费观看视频 | 91精品国产九九九久久久亚洲 | 亚洲视频免费观看 | 欧洲免费视频 | 九一精品| 这里只有精品在线 |