源创宝库吧 新一代精品资源网 在线工具箱 此位置招租 SanS三石导航页 ⚡免费影视资源库丨极速无广告⚡ 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 ⚡免费影视资源库丨极速无广告⚡ 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 ⚡免费影视资源库丨极速无广告⚡ 此位置招租 此位置招租 此位置招租 此位置招租 此位置招租 ⚡免费影视资源库丨极速无广告⚡ 此位置招租
返回列表 发布新帖
查看: 128|回复: 1

[模块插件] 短视频解析

  在线 
灌水成绩
127
203
806
主题
回帖
积分

等级头衔
UID : 83
等级 : 版主

积分成就
威望 : 93 点
贡献 : 378 点
蛋壳 : 5714 枚
在线时间 : 1311 小时
注册时间 : 2024-4-17
最后登录 : 2024-9-17

荣誉勋章
发表于 2024-5-29 12:51:51 | 查看全部 |阅读模式 来自: 中国–黑龙江–七台河

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

短视频解析

短视频解析



  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. <!-- 获取更多源码:www.qqmu.com -->
  21.     <div class="main">
  22.         <blockquote class="layui-elem-quote tt">短视频解析</blockquote>
  23.         <div class="layui-row">
  24.             <div class="layui-col-md12">
  25.                 <div class="layui-card-body" id="player" style="display: none;">
  26.                     <div class="layui-form-item" style="margin: 0 10px 10px 10px;">
  27.                         <video name="video" id="video" width="100%" controls autoplay loop></video>
  28.                     </div>
  29.                 </div>
  30.             </div>
  31.             <div class="layui-col-md12">
  32.                 <div class="layui-card-body">
  33.                     <form class="layui-form layui-form-pane" action="">
  34.                         <div class="layui-form-item layui-form-text">
  35.                             <label class="layui-form-label">输入分享链接</label>
  36.                             <div class="layui-input-block">
  37.                             <textarea name="link" id="link" placeholder="请输入内容" class="layui-textarea">https://v.kuaishou.com/74k3H0</textarea>
  38.                             </div>
  39.                         </div>
  40.                         <input type="text" name="downloadurl" style="display: none;">
  41.                         <input type="text" name="filename" style="display: none;">
  42.                         <div class="layui-form-item center">
  43.                         <button class="layui-btn" lay-submit="" lay-filter="Submit">提交</button>
  44.                         <button class="layui-btn" lay-submit="" lay-filter="Remove">再来一个</button>
  45.                         <button class="layui-btn" lay-submit="" id="download" style="display: none;" lay-filter="Download">下载</button>
  46.                         </div>
  47.                     </form>
  48.                 </div>
  49.                 <div id="Result" style="display: none;">
  50.                     <div class="layui-card-header">解析结果</div>
  51.                     <div class="layui-card-body">
  52.                         <div class="layui-field-box">
  53.                             <div style="margin-top: 0px;">
  54.                             <p><span class="layui-badge">uid</span> <span id="uid"></span></p>
  55.                             <p><span class="layui-badge">author</span> <span id="author"></span></p>
  56.                             <p><span class="layui-badge">create_time</span> <span id="create_time"></span></p>
  57.                             <p><span class="layui-badge">desc</span> <span id="desc"></span></p>
  58.                             <p><span class="layui-badge">video_id</span> <span id="video_id"></span></p>
  59.                             </div>
  60.                         </div>
  61.                     </div>
  62.                 </div>
  63.             </div>
  64.         </div>
  65.     </div>
  66. </body>
  67. <script>
  68.     layui.use(['form'], function(){
  69.         var form = layui.form
  70.         ,$ = layui.jquery
  71.         ,layer = layui.layer;

  72.         form.on('submit(Submit)', function(data){
  73.             var link = data.field.link;
  74.             if (link.length === 0) {
  75.                 layer.alert('请输入您要解析的内容!', { title: '提示' })
  76.                 return false;
  77.             }

  78.             var i = link.lastIndexOf("https://");
  79.             i = i === -1 ? link.lastIndexOf("http://") : i;
  80.             var url = link.substr(i);
  81.             var index = layer.load(0, {shade: false});
  82.             $.ajax({
  83.                 type: 'GET',
  84.                 url: 'https://api.qoc.cc/api/video?url=' + url,
  85.                 success: function(s) {
  86.                     if (s.code === 200) {
  87.                         var filename = s.data.title
  88.                         var videourl = s.data.url;
  89.                         $('#author').html(s.data.author);
  90.                         $('#uid').html(s.data.uid);
  91.                         $('#create_time').html(s.data.time);
  92.                         $('#desc').html(s.data.title);
  93.                         $('#video_id').html(s.data.like);
  94.                         $('#title').html(filename);
  95.                         $('#download').show();
  96.                         $('#Result').show();
  97.                         $('#vice').show();
  98.                         downloadBlobFile('get', videourl).onreadystatechange = res=>{
  99.                             if (res.currentTarget.readyState == 4 && res.currentTarget.status == 200) {
  100.                                 const url = window.URL.createObjectURL(res.currentTarget.response);
  101.                                 $('#video').attr('src',url);
  102.                                 $('#player').show();
  103.                                 $("input[name=downloadurl]").val(url);
  104.                             }
  105.                         }
  106.                         $("input[name=filename]").val(filename);
  107.                         document.title = filename;
  108.                     } else {
  109.                         layer.msg(s.message);
  110.                     }
  111.                     layer.close(index);
  112.                 }
  113.             });
  114.             return false;
  115.         });

  116.         form.on('submit(Remove)', function(data){
  117.             $("#Result").hide();
  118.             $("#link").val('');
  119.             $('#video').attr('src','');
  120.             $('#download').hide();
  121.             $('#player').hide();
  122.             $('#vice').hide();
  123.             return false;
  124.         });

  125.         form.on('submit(Download)', function(data){
  126.             downloadBlobFile('get',data.field.downloadurl).onreadystatechange = res=>{
  127.                 if(res.currentTarget.readyState == 4 &&  res.currentTarget.status==200){
  128.                     const url = window.URL.createObjectURL(res.currentTarget.response);
  129.                     let a = document.createElement('a');
  130.                     a.href=url;
  131.                     a.download = data.field.filename;
  132.                     a.click();
  133.                 }
  134.             }
  135.             return false;
  136.         });

  137.         function downloadBlobFile(_method,_url){
  138.             const request = new XMLHttpRequest();
  139.             request.open(_method,_url);
  140.             request.send();
  141.             request.responseType = 'blob';
  142.             return request;
  143.         }
  144.         function isClipboardAPIEnabled() {
  145.             return !!(navigator.clipboard && navigator.clipboard.readText);
  146.         }
  147.         function addClipboardEventListener() {
  148.             var pasteButton = document.getElementById('paste-button');
  149.             pasteButton.addEventListener('click', async function() {
  150.                 try {
  151.                     var text = await navigator.clipboard.readText();
  152.                     $('#link').val(text);
  153.                 } catch (err) {
  154.                     console.error('An error occurred while reading clipboard contents:', err);
  155.                 }
  156.             });
  157.         }
  158.         if (!isClipboardAPIEnabled()) {
  159.             document.getElementById('paste-button').style.display = 'block';
  160.             addClipboardEventListener();
  161.         }
  162.     });
  163. </script>
  164. </body>
  165. </html>
复制代码
生无可恋
  离线 
灌水成绩
53
378
1513
主题
回帖
积分

等级头衔
UID : 86
等级 : 高级会员

积分成就
威望 : 259 点
贡献 : 658 点
蛋壳 : 1206 枚
在线时间 : 389 小时
注册时间 : 2024-4-18
最后登录 : 2024-8-27

荣誉勋章

荣誉会员最佳新人活跃会员热心会员实习版主推广达人宣传达人论坛元老优秀作者帅哥认证

发表于 2024-5-29 16:16:08 | 查看全部 来自: 中国–江苏–南通
孤独才是寂寞的唯一出口。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1楼
2楼
投诉/建议联系

8641340@qq.com

欢迎各位朋友加入本社区,
共同维护良好的社区氛围
  • QQ用户交流群
  • 钉钉新帖推送群
Powered by Discuz! X3.5 Licensed  Copyright © 2001-2024 荷包蛋部落 版权所有 All Rights Reserved. 鲁ICP备20023396号-6
关灯 在本版发帖
加入钉钉新帖推送群
QQ客服返回顶部
快速回复 返回顶部 返回列表