package com.newvideo.util.video;
|
|
import java.io.IOException;
|
import java.util.List;
|
|
import org.apache.log4j.Logger;
|
import org.jsoup.Jsoup;
|
import org.jsoup.nodes.Document;
|
import org.jsoup.select.Elements;
|
|
import com.newvideo.dao.BaseDao;
|
import com.newvideo.domain.SoHuVideoUrlId;
|
import com.newvideo.domain.VideoDetailInfo;
|
import com.newvideo.domain.VideoInfo;
|
import com.newvideo.domain.VideoUrl;
|
import com.newvideo.util.LogUtil;
|
import com.newvideo.util.StringUtil;
|
|
import net.sf.json.JSONObject;
|
|
public class SoHuVideoParser {
|
static Logger logger = Logger.getLogger(SoHuVideoParser.class);
|
|
public static String getUrl(SoHuVideoUrlId urlid) {
|
if (!StringUtil.isNullOrEmpty(urlid.getAid()))
|
return "http://api.tv.sohu.com/v4/video/info/" + urlid.getVid()
|
+ ".json?site=1&plat=6&poid=1&api_key=9854b2afa779e1a6bff1962447a09dbd&sver=5.0.1&sysver=4.4.2&partner=282&aid="
|
+ urlid.getAid();
|
else
|
return "http://api.tv.sohu.com/v4/video/info/" + urlid.getVid()
|
+ ".json?site=1&plat=6&poid=1&api_key=9854b2afa779e1a6bff1962447a09dbd&sver=5.0.1&sysver=4.4.2&partner=282";
|
}
|
|
public static void addVideoUrlId(SoHuVideoUrlId urlid) {
|
BaseDao<SoHuVideoUrlId> dao = new BaseDao<SoHuVideoUrlId>();
|
List<SoHuVideoUrlId> list = dao.list("from SoHuVideoUrlId ids where ids.url=?",
|
new String[] { urlid.getUrl() });
|
if (list == null || list.size() == 0) {
|
dao.create(urlid);
|
}
|
}
|
|
public static void addVideoUrlIds(VideoInfo info) {
|
for (VideoDetailInfo detail : info.getVideoDetailList()) {
|
for (VideoUrl videoUrl : detail.getUrls()) {
|
addVideoUrlId(getVideoUrlIdFromUrl(videoUrl.getUrl()));
|
}
|
}
|
}
|
|
public static SoHuVideoUrlId getVideoUrlIdFromUrl(String url) {
|
SoHuVideoUrlId urlid = new SoHuVideoUrlId();
|
urlid.setUrl(url);
|
urlid.setCreatetime(System.currentTimeMillis() + "");
|
Document doc = null;
|
try {
|
doc = Jsoup.connect(url).timeout(10000).get();
|
} catch (IOException e1) {
|
// TODO Auto-generated catch block
|
e1.printStackTrace();
|
}
|
Elements els = doc.getElementsByTag("script");
|
for (int i = 0; i < els.size(); i++) {
|
org.jsoup.nodes.Element el = els.get(i);
|
if (!url.contains("m.tv.sohu.com")) {
|
if (el.toString().contains("var vid=")) {
|
String text = el.childNode(0).toString();
|
String vid = text.split("var vid=")[1].split(";")[0].replace("\"", "");
|
String aid = text.split("var playlistId=")[1].split(";")[0].replace("\"", "");
|
LogUtil.i("VID:" + vid + "--AID:" + aid);
|
urlid.setVid(vid);
|
urlid.setAid(aid);
|
if (StringUtil.isNullOrEmpty(vid)) {
|
logger.error("VID���ܽ���:" + url);
|
}
|
break;
|
}
|
} else {
|
if (el.toString().contains("var videoData")) {
|
String text = el.childNode(0).toString();
|
String vid = text.split("vid:")[1].split(",")[0].replace("\"", "");
|
String aid = null;
|
try {
|
aid = text.split("\"aid\":")[1].split(",")[0].replace("\"", "");
|
} catch (Exception e) {
|
|
}
|
LogUtil.i("VID:" + vid + "--AID:" + aid);
|
urlid.setVid(vid);
|
urlid.setAid(aid);
|
break;
|
}
|
}
|
|
}
|
return urlid;
|
}
|
|
public static String parseRequestResult(String result) {
|
JSONObject obj =JSONObject.fromObject(result);
|
try {
|
return obj.optJSONObject("data").optString("download_url");
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return "";
|
}
|
|
}
|