使用javascript在各大视频网站一键抓取无水印m3u8格式视频并将视频下载成mp4格式(以Google抓取腾讯视频为例)

        两三天没有更新博客了,最近博主有点夏乏(其实是懒),今日在划水的时候无意中学到了使用javascrpit抓取m3u8格式视频的小技巧,因此进行延伸并作此博客进行记录。接下来,我将使用javascript在各大视频网站(腾讯、优酷、爱奇艺等)进行一键抓取无水印m3u8格式视频并将其下载到本地(下载格式为mp4格式)。本次实例中,以抓取腾讯视频为例。

准备工作

1.Google浏览器
2.m3u8格式视频下载工具(https://wws.lanzous.com/iMcwKe3rlkf)

实战演示

        1.打开谷歌浏览器,同时按下CTRL+D打开书签保存弹窗。点击更多,进入到添加书签页面。
在这里插入图片描述
在这里插入图片描述
        2.在网址栏粘贴如下所示代码(javascript抓取腾讯视频),名称则随意命名(这里我命名为腾讯视频),填写完毕后点击保存即可。

javascript:var a=prompt(PLAYER._DownloadMonitor.context.dataset.title,PLAYER._DownloadMonitor.context.dataset.ckc?PLAYER._DownloadMonitor.context.dataset.currentVideoUrl:PLAYER._DownloadMonitor.context.dataset.currentVideoUrl.replace(/:.*qq.com/g,"://defaultts.tc.qq.com/defaultts.tc.qq.com"));

        3.打开需要下载的视频(因为该段代码仅针对腾讯视频,因此这里我打开腾讯视频),点击书签栏刚保存过的书签。注意:目前经过测试,普通用户只能下载普通用户的视频;会员视频需要使用会员账号下载。如果想要以普通用户身份下载会员视频,可使用谷歌插件完成。
在这里插入图片描述
        4.复制弹出的视频代码串(即抓取到的原生m3u8视频),这里我抓取到的小猪佩奇的视频代码串即为:https://defaultts.tc.qq.com/defaultts.tc.qq.com/uwMROfz2r5zCIaQXGdGnC2df644Q3LWUuLvyGY4RMhgE_3T2/X5TpHg6-J3RDYqEcgXyqJTJaieD5C7-2TIkGNMgpj7h_7dqAi5_oQab-cBpucK4rvndsV03J41HP2esH3fh9p0Di4hkcOsyumQqtF6Fy_P4q148sI97yvROFto-d0lFF4u7fDrw1FXDJ106rmYY6MeJkhzKHvxcw04qtGZMCJbE/i0020zgntzc.321002.ts.m3u8?ver=4
在这里插入图片描述
        5.将视频代码串复制粘贴到m3u8下载工具中(任意一款m3u8视频下载工具均可),这里我使用本文中为大家所提供的下载工具。下载完毕后打开,点击“+”新增下载,将上述抓取到的(小猪佩奇)视频代码串粘贴进去,注意修改视频存储路径。
在这里插入图片描述
        6.点击start Donwnload,即可立刻开始下载视频。等待进度条走完,可发现视频存储路径位置已经出现了以字母数字串命名的视频文件,打开即可看到无水印视频。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

        总体来说,这个方法具有局限性,即不能以普通用户下载会员用户才能观看的视频。不过作为一个小技巧,可以进行学习从而扩展自己的知识面。m3u8视频链接完全可以通过抓包获取到,使用javascript只不过是将其简便化了。

补充

        其他各大视频网址javascript抓取代码补充:(操作方法如上述腾讯视频所示)
        1.芒果TV

javascript:try{prompt(MGTVPlayer.VIDEOINFO.title,MGTVPlayer.playerNaNs.sourceInfo.info)}catch(err){var blob=new Blob([MGTVPlayer.playerNaNs.fakeMasterPlaylist],{type:"text/plain"});var url=URL.createObjectURL(blob);var title=MGTVPlayer.VIDEOINFO.title+".m3u8";var aLink=document.createElement("a");aLink.href=url;aLink.download=title;aLink.style.display="none";var event;if(window.MouseEvent){event=new MouseEvent("click")}else{event=document.createEvent("MouseEvents");event.initMouseEvent("click",true,false,window,0,0,0,0,0,false,false,false,false,0,null)}aLink.dispatchEvent(event)}

        2.搜狐视频

javascript:var dur=document.getElementsByClassName("x-time-duration")[0].innerText;var ti=document.getElementById("vinfobox").getElementsByTagName("h2")[0].innerText;var dfn=document.getElementsByClassName("x-resolution-btn")[0].innerText;var content="#EXTM3U\n";_player.p2pkernel.dispatchUrlArr.forEach(function(item,index){var url=item["0"];$.ajaxSettings.async=false;$.get(url,function(data,status){content+="#EXTINF:0\n"+data["servers"][0]["url"]+"\n"});$.ajaxSettings.async=true});content+="#EXT-X-ENDLIST";var blob=new Blob([content],{type:"text/plain"});var url=URL.createObjectURL(blob);var aLink=document.createElement("a");aLink.href=url;aLink.download=ti+"_"+dfn+"_"+dur.replace(/:/,".")+".m3u8";/*nilaoda*/aLink.style.display="none";var event;if(window.MouseEvent){event=new MouseEvent("click")}else{event=document.createEvent("MouseEvents");event.initMouseEvent("click",true,false,window,0,0,0,0,0,false,false,false,false,0,null)}aLink.dispatchEvent(event)

        3.优酷视频

javascript:var url;var size=0;Array.from(videoPlayer.getData()._playlistData.stream).forEach(function(element,index,array){if(element.audio_lang==videoPlayer.getConfig().language&&element.size>size){url=element.m3u8_url;size=element.size}});/*nilaoda*/var a=prompt(videoPlayer.getData()._videoData.title+"_"+videoPlayer.getConfig().language+"_"+(size/1024/1024).toFixed(2)+"MB",url);

        4.爱奇艺视频

javascript:try{var info=playerObject._player._core._movieinfo.originalData.data.program.video;info.forEach(function(item,index){if(item._selected){var m3u8Content="";if(item.m3u8==undefined){try{if(typeof(eval(cmd5x))=="function"){}}catch(e){var req1=new XMLHttpRequest();req1.open("GET","https://static.iqiyi.com/js/common/f6a3054843de4645b34d205a9f377d25.js",false);req1.onload=function(){var script=document.createElement("script");script.text=req1.responseText;document.getElementsByTagName("head")[0].appendChild(script)};req1.send(null)}var fs=item.fs;var content="#EXTM3U\n";fs.forEach(function(fs_i,fs_index){var url=fs_i.l;var prefix="https://data.video.iqiyi.com/videos";var api=prefix+url;try{var t=playerObject._player._core._movieinfo.originalData.data.boss.data.t;api=prefix+url+"&cross-domain=1&t="+t+"&QY00001="+/qd_uid=(\d+)/g.exec(url)[1]+"&ib=4&ptime=0&ibt="+cmd5x(t+/\/(\w{10,})/g.exec(url)[1])}catch(err){}var req=new XMLHttpRequest();req.overrideMimeType("application/json");req.open("GET",api,false);req.onload=function(){var jsonResponse=JSON.parse(req.responseText);content+="#EXTINF:0\n"+jsonResponse["l"]+"\n"};req.send(null)});content+="#EXT-X-ENDLIST";m3u8Content=content}else{m3u8Content=item.m3u8}var blob=new Blob([m3u8Content],{type:"text/plain"});var url=URL.createObjectURL(blob);var title=(document.title.indexOf("-")!=-1?document.title.substring(0,document.title.indexOf("-")):document.title.replace(/\s/,""))+"_"+item.scrsz+"_"+(item.code==2?"H264":"H265")+"_"+document.getElementsByClassName("iqp-time-dur")[0].innerText.replace(/:/,".")+"_"+(item.vsize/1024/1024).toFixed(2)+"MB.m3u8";var aLink=document.createElement("a");aLink.href=url;aLink.download=title;aLink.style.display="none";var event;if(window.MouseEvent){event=new MouseEvent("click")}else{event=document.createEvent("MouseEvents");event.initMouseEvent("click",true,false,window,0,0,0,0,0,false,false,false,false,0,null)}aLink.dispatchEvent(event)}})}catch(err){var info1=playerObject._player.package.engine.adproxy.engine.movieinfo.vidl;info1.forEach(function(item1,index1){if(item1.responseData!=undefined){var info=item1.responseData.data.program.video;info.forEach(function(item,index){if(item._selected){var m3u8Content="";if(item.m3u8==undefined){try{if(typeof(eval(cmd5x))=="function"){}}catch(e){var req1=new XMLHttpRequest();req1.open("GET","https://static.iqiyi.com/js/common/f6a3054843de4645b34d205a9f377d25.js",false);req1.onload=function(){var script=document.createElement("script");script.text=req1.responseText;document.getElementsByTagName("head")[0].appendChild(script)};req1.send(null)}var fs=item.fs;var content="#EXTM3U\n";fs.forEach(function(fs_i,fs_index){var url=fs_i.l;var prefix="https://data.video.iqiyi.com/videos";var api=prefix+url;try{var t=playerObject._player.package.engine.adproxy.engine.movieinfo.current.boss.data.t;api=prefix+url+"&cross-domain=1&t="+t+"&QY00001="+/qd_uid=(\d+)/g.exec(url)[1]+"&ib=4&ptime=0&ibt="+cmd5x(t+/\/(\w{10,})/g.exec(url)[1])}catch(err){console.error(err)}var req=new XMLHttpRequest();req.overrideMimeType("application/json");req.open("GET",api,false);req.onload=function(){var jsonResponse=JSON.parse(req.responseText);content+="#EXTINF:0\n"+jsonResponse["l"]+"\n"};req.send(null)});content+="#EXT-X-ENDLIST";m3u8Content=content}else{m3u8Content=item.m3u8}var blob=new Blob([m3u8Content],{type:"text/plain"});var url=URL.createObjectURL(blob);var title=(document.title.indexOf("-")!=-1?document.title.substring(0,document.title.indexOf("-")):document.title.replace(/\s/,""))+"_"+item.scrsz+"_"+(item.code==2?"H264":"H265")+"_"+document.getElementsByClassName("iqp-time-dur")[0].innerText.replace(/:/,".")+"_"+(item.vsize/1024/1024).toFixed(2)+"MB.m3u8";/*nilaoda*/var aLink=document.createElement("a");aLink.href=url;aLink.download=title;aLink.style.display="none";var event;if(window.MouseEvent){event=new MouseEvent("click")}else{event=document.createEvent("MouseEvents");event.initMouseEvent("click",true,false,window,0,0,0,0,0,false,false,false,false,0,null)}aLink.dispatchEvent(event)}})}})}

        5.爱奇艺(1080P高帧率)

javascript:eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('3 7=8 U();7.V("W","y://X.t.u/z/Y/Z.z",5);7.10=6(){3 a=4.v("A");a.B=7.11;4.C("D")[0].E(a)};7.12(9);6 k(a){3 b=4.13.F("; ");14(3 i=0;i

        6.爱奇艺(字幕下载)

javascript:var tvid=playerObject._player.package.engine.adproxy.engine.movieinfo.tvid;var oData=playerObject._player.package.engine.adproxy.engine.episode.EpisodeStore[tvid].movieInfo.originalData;var prefix=oData.data.dstl;var subUrl=oData.data.program.stl[0].webvtt;var title=(document.title.indexOf("-")!=-1?document.title.substring(0,document.title.indexOf("-")):document.title.replace(/\s/,""));prompt(title+" [webvtt]",prefix+subUrl);

猜你喜欢

转载自blog.csdn.net/qq_42506411/article/details/106996027