// ==UserScript== // @name open163_download // @namespace zt // @version 0.1 // @description download subtitle and video in netease open163 // @author zt // @include http://*.163.com/movie/* // @include http://*.163.com/special/* // @downloadURL none // ==/UserScript== var debug = true; var xbug = debug ? console.debug.bind(console) : function(){}, xlog = debug ? console.log.bind(console) : function(){}; function insertAfter( newElement, targetElement ){ // newElement是要追加的元素 targetElement 是指定元素的位置 var parent = targetElement.parentNode; // 找到指定元素的父节点 if( parent.lastChild == targetElement ){ // 判断指定元素的是否是节点中的最后一个位置 如果是的话就直接使用appendChild方法 parent.appendChild( newElement, targetElement ); }else{ parent.insertBefore( newElement, targetElement.nextSibling ); } } //获得视频,字幕链接 function geturl(url,doc,callback){ //var lc = location,url = location.href,doc = document; var piece_url = url.split('/'); //xbug(doc); var scripts = doc.getElementsByTagName("script"); //xbug(scripts); var curmovieappsrc = null; for(var i=0;i 英文'; insertAfter(ensrt, insertplace.nextSibling); } if(zh_srt != ""){ var zhsrt = doc.createElement("a"); zhsrt.innerHTML = ' 中文'; insertAfter(zhsrt, insertplace.nextSibling); } if(curmovieflv != ""){ c = count+1; var flv = doc.createElement("a"); flv.innerHTML = ' 视频'+''; insertAfter(flv, insertplace.nextSibling); } } //在单独的视频页面插入 function insert(curmovieflv,zh_srt,en_srt,insertplace,doc){ if(en_srt != ""){ var ensrt = doc.createElement("span"); ensrt.className = "f-fl intro f-pr"; ensrt.innerHTML = ' 英文'; insertAfter(ensrt, insertplace.nextSibling); } if(zh_srt != ""){ var zhsrt = doc.createElement("span"); zhsrt.className = "f-fl intro f-pr"; zhsrt.innerHTML = ' 中文'; insertAfter(zhsrt, insertplace.nextSibling); } if(curmovieflv != ""){ var flv = doc.createElement("span"); flv.className = "f-fl intro f-pr"; flv.innerHTML = ' 视频'; xbug(curmovieflv); insertAfter(flv, insertplace.nextSibling); } } var count = 0; var ahref = new Array(); var movurl = new Array(); var timer = null; //请求单独视频页面,得到视频字幕链接,然后插入 function sentMsg(){ if(count < movurl.length){ //xbug("c",count,"c"); getmovpage(movurl[count],document,function(movdoc){ //xbug("h",count,"h"); //xbug(movurl[count]); geturl(movurl[count],movdoc,function(curmovieflv,zh_srt,en_srt){ //xbug(movdoc); insert2(curmovieflv,zh_srt,en_srt,ahref[count],document); count++; }); }); //sleep(5000); }else { clearInterval(timer); } } function sleep(n) { var start = new Date().getTime(); while(true) if(new Date().getTime()-start > n) break; } //处理课程页面 function processspecialpage(url,doc){ var list1 = doc.getElementById("list1"); var list2 = doc.getElementById("list2"); var list1tr = list1.getElementsByTagName("tr"); var list2tr = list2.getElementsByTagName("tr"); var listtr = new Array(); var i; for(i = 0;i= 0){ processspecialpage(url,doc); } else{ processmoviepage(url,doc); } } open163();