抖音视频无水印解析【html文件】,浏览器打开即可食用

发表于 2023-9-4 15:25:16 | |阅读模式
发表于 2023-9-4 15:25:16 | 显示全部楼层 |阅读模式
某网站拔的是个外部接口地址
下载功能好像在手机端食用的话  好像必须搭建网站才行

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset="utf-8">
  5.     <title>抖音解析</title>
  6.     <meta name="renderer" content="webkit">
  7.     <meta name="referrer" content="never">
  8.     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  9.     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  10.     <link href="https://cdn.bootcdn.net/ajax/libs/layui/2.7.6/css/layui.min.css" rel="stylesheet">
  11.     <script src="https://cdn.bootcdn.net/ajax/libs/layui/2.7.6/layui.min.js"></script>
  12. </head>
  13. <style>
  14. body {max-width: 500px;margin: auto;}
  15. .main {padding:6px 6px;margin:auto;background-color: white;}
  16. .tt {color: #1aa700;font-size: 1.2rem;font-weight: 700;padding: 8px;}
  17. .center {text-align: center;}
  18. </style>
  19. <body>
  20.     <div class="main">
  21.         <blockquote class="layui-elem-quote tt">抖音解析</blockquote>
  22.         <div class="layui-row">
  23.             <div class="layui-col-md12">
  24.                 <div class="layui-card-body" id="player" style="display: none;">
  25.                     <div class="layui-form-item" style="margin: 0 10px 10px 10px;">
  26.                         <video name="video" id="video" width="100%" controls autoplay loop></video>
  27.                     </div>
  28.                 </div>
  29.             </div>
  30.             <div class="layui-col-md12">
  31.                 <div class="layui-card-body">
  32.                     <form class="layui-form layui-form-pane" action="">
  33.                         <div class="layui-form-item layui-form-text">
  34.                             <label class="layui-form-label">输入分享链接</label>
  35.                             <div class="layui-input-block">
  36.                             <textarea name="link" id="link" placeholder="请输入内容" class="layui-textarea">0.74 odN:/ 复制打开抖音,看看【饭思思的作品】# salt 艾瑞巴蒂嗨起来 https://v.douyin.com/6W4jytR/</textarea>
  37.                             </div>
  38.                         </div>
  39.                         <input type="text" name="downloadurl" style="display: none;">
  40.                         <input type="text" name="filename" style="display: none;">
  41.                         <div class="layui-form-item center">
  42.                         <button class="layui-btn" lay-submit="" lay-filter="Submit">提交</button>
  43.                         <button class="layui-btn" lay-submit="" lay-filter="Remove">再来一个</button>
  44.                         <button class="layui-btn" lay-submit="" id="download" style="display: none;" lay-filter="Download">下载</button>
  45.                         </div>
  46.                     </form>
  47.                 </div>
  48.                 <div id="Result" style="display: none;">
  49.                     <div class="layui-card-header">解析结果</div>
  50.                     <div class="layui-card-body">
  51.                         <div class="layui-field-box">
  52.                             <div style="margin-top: 0px;">
  53.                             <p><span class="layui-badge">uid</span> <span id="uid"></span></p>
  54.                             <p><span class="layui-badge">author</span> <span id="author"></span></p>
  55.                             <p><span class="layui-badge">create_time</span> <span id="create_time"></span></p>
  56.                             <p><span class="layui-badge">desc</span> <span id="desc"></span></p>
  57.                             <p><span class="layui-badge">video_id</span> <span id="video_id"></span></p>
  58.                             </div>
  59.                         </div>
  60.                     </div>
  61.                 </div>
  62.             </div>
  63.         </div>
  64.     </div>
  65. </body>
  66. <script>
  67. var content = navigator.clipboard.readText();
  68. console.log(content);
  69. layui.use(['form'], function(){
  70.     var form = layui.form
  71.     ,$ = layui.jquery
  72.     ,layer = layui.layer;
  73.      
  74.     form.on('submit(Submit)', function(data){
  75.         var link = data.field.link;
  76.         if(link.length == 0){
  77.             layer.alert('请输入您要解析的内容!', { title: '提示' })
  78.             return false;
  79.         }
  80.         var i = link.lastIndexOf("https://");
  81.         i = i === -1 ? link.lastIndexOf("http://") : i;
  82.         var url = link.substr(i);
  83.         var index = layer.load(0, {shade: false});
  84.         $.ajax({
  85.             type: 'GET',  
  86.             url: 'https://api.shejiz.cn/dy/' + url,
  87.             success: function(s) {
  88.                 if(s.code === 0){
  89.                     var filename = s.data.nickname + '_' + s.data.itemId;
  90.                     var videourl = s.data.playAddr;
  91.                     $('#author').html(s.data.nickname);
  92.                     $('#uid').html(s.data.uid);
  93.                     $('#create_time').html(s.data.createTime);
  94.                     $('#desc').html(s.data.desc);
  95.                     $('#video_id').html(s.data.video_id);
  96.                     $('#title').html(filename);
  97.                     $('#download').show();
  98.                     $('#Result').show();
  99.                     $('#vice').show();
  100.                     downloadBlobFile('get',videourl).onreadystatechange = res=>{
  101.                         if(res.currentTarget.readyState == 4 &&  res.currentTarget.status==200){
  102.                             const url = window.URL.createObjectURL(res.currentTarget.response);
  103.                             $('#video').attr('src',url);$('#player').show();
  104.                             $("input[name=downloadurl]").val(url);
  105.                         }
  106.                     }
  107.                     $("input[name=filename]").val(filename);
  108.                     document.title = filename;                    
  109.                 }else{
  110.                     layer.msg(s.message);
  111.                 }
  112.                 layer.close(index);
  113.             }
  114.         });
  115.         return false;
  116.     });
  117.     form.on('submit(Remove)', function(data){
  118.         $("#Result").hide();
  119.         $("#link").val('');
  120.         $('#video').attr('src','');
  121.         $('#download').hide();
  122.         $('#player').hide();
  123.         $('#vice').hide();
  124.         return false;
  125.     });
  126.     form.on('submit(Download)', function(data){
  127.         downloadBlobFile('get',data.field.downloadurl).onreadystatechange = res=>{
  128.             if(res.currentTarget.readyState == 4 &&  res.currentTarget.status==200){
  129.                 const url = window.URL.createObjectURL(res.currentTarget.response);
  130.                 let a = document.createElement('a');
  131.                 a.href=url;
  132.                 a.download = data.field.filename;
  133.                 a.click();
  134.             }
  135.         }
  136.         return false;
  137.     });   
  138. });
  139. function downloadBlobFile(_method,_url){
  140.     const request = new XMLHttpRequest();
  141.     request.open(_method,_url);
  142.     request.send();
  143.     request.responseType = 'blob';
  144.     return request;
  145. }
  146. </script>
  147. </body>
  148. </html>
复制代码


您需要登录后才可以发帖 登录 | 立即注册

本版积分规则

发表主题

广告赞助

返回顶部 返回列表
小米 为发烧而生