短视频解析单页源码

news2024/10/7 10:24:15

在这里插入图片描述
这个一个网页html解析短视频无水印视频的源码,电脑直接打开也可以本地使用,也可以上传到网站搭建成网页使用。
代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>短视频解析</title>
    <meta name="renderer" content="webkit">
    <meta name="referrer" content="never">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link href="https://cdn.bootcdn.net/ajax/libs/layui/2.7.6/css/layui.min.css" rel="stylesheet">
    <script src="https://cdn.bootcdn.net/ajax/libs/layui/2.7.6/layui.min.js"></script>
</head>
<style>
body {max-width: 500px;margin: auto;}
.main {padding:6px 6px;margin:auto;background-color: white;}
.tt {color: #1aa700;font-size: 1.2rem;font-weight: 700;padding: 8px;}
.center {text-align: center;}
</style>
<body>
<!-- 获取更多源码:www.qqmu.com -->
    <div class="main">
        <blockquote class="layui-elem-quote tt">短视频解析</blockquote>
        <div class="layui-row">
            <div class="layui-col-md12">
                <div class="layui-card-body" id="player" style="display: none;">
                    <div class="layui-form-item" style="margin: 0 10px 10px 10px;">
                        <video name="video" id="video" width="100%" controls autoplay loop></video>
                    </div>
                </div>
            </div>
            <div class="layui-col-md12">
                <div class="layui-card-body">
                    <form class="layui-form layui-form-pane" action="">
                        <div class="layui-form-item layui-form-text">
                            <label class="layui-form-label">输入分享链接</label>
                            <div class="layui-input-block">
                            <textarea name="link" id="link" placeholder="请输入内容" class="layui-textarea">https://v.kuaishou.com/74k3H0</textarea>
                            </div>
                        </div>
                        <input type="text" name="downloadurl" style="display: none;">
                        <input type="text" name="filename" style="display: none;">
                        <div class="layui-form-item center">
                        <button class="layui-btn" lay-submit="" lay-filter="Submit">提交</button>
                        <button class="layui-btn" lay-submit="" lay-filter="Remove">再来一个</button>
                        <button class="layui-btn" lay-submit="" id="download" style="display: none;" lay-filter="Download">下载</button>
                        </div>
                    </form>
                </div>
                <div id="Result" style="display: none;">
                    <div class="layui-card-header">解析结果</div>
                    <div class="layui-card-body">
                        <div class="layui-field-box">
                            <div style="margin-top: 0px;">
                            <p><span class="layui-badge">uid</span> <span id="uid"></span></p>
                            <p><span class="layui-badge">author</span> <span id="author"></span></p>
                            <p><span class="layui-badge">create_time</span> <span id="create_time"></span></p>
                            <p><span class="layui-badge">desc</span> <span id="desc"></span></p>
                            <p><span class="layui-badge">video_id</span> <span id="video_id"></span></p>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
<script>
    layui.use(['form'], function(){
        var form = layui.form
        ,$ = layui.jquery
        ,layer = layui.layer;
 
        form.on('submit(Submit)', function(data){
            var link = data.field.link;
            if (link.length === 0) {
                layer.alert('请输入您要解析的内容!', { title: '提示' })
                return false;
            }
 
            var i = link.lastIndexOf("https://");
            i = i === -1 ? link.lastIndexOf("http://") : i;
            var url = link.substr(i);
            var index = layer.load(0, {shade: false});
            $.ajax({
                type: 'GET',
                url: 'https://api.qoc.cc/api/video?url=' + url,
                success: function(s) {
                    if (s.code === 200) {
                        var filename = s.data.title
                        var videourl = s.data.url;
                        $('#author').html(s.data.author);
                        $('#uid').html(s.data.uid);
                        $('#create_time').html(s.data.time);
                        $('#desc').html(s.data.title);
                        $('#video_id').html(s.data.like);
                        $('#title').html(filename);
                        $('#download').show();
                        $('#Result').show();
                        $('#vice').show();
                        downloadBlobFile('get', videourl).onreadystatechange = res=>{
                            if (res.currentTarget.readyState == 4 && res.currentTarget.status == 200) {
                                const url = window.URL.createObjectURL(res.currentTarget.response);
                                $('#video').attr('src',url);
                                $('#player').show();
                                $("input[name=downloadurl]").val(url);
                            }
                        }
                        $("input[name=filename]").val(filename);
                        document.title = filename;
                    } else {
                        layer.msg(s.message);
                    }
                    layer.close(index);
                }
            });
            return false;
        });
 
        form.on('submit(Remove)', function(data){
            $("#Result").hide();
            $("#link").val('');
            $('#video').attr('src','');
            $('#download').hide();
            $('#player').hide();
            $('#vice').hide();
            return false;
        });
 
        form.on('submit(Download)', function(data){
            downloadBlobFile('get',data.field.downloadurl).onreadystatechange = res=>{
                if(res.currentTarget.readyState == 4 &&  res.currentTarget.status==200){
                    const url = window.URL.createObjectURL(res.currentTarget.response);
                    let a = document.createElement('a');
                    a.href=url;
                    a.download = data.field.filename;
                    a.click();
                }
            }
            return false;
        });
 
        function downloadBlobFile(_method,_url){
            const request = new XMLHttpRequest();
            request.open(_method,_url);
            request.send();
            request.responseType = 'blob';
            return request;
        }
        function isClipboardAPIEnabled() {
            return !!(navigator.clipboard && navigator.clipboard.readText);
        }
        function addClipboardEventListener() {
            var pasteButton = document.getElementById('paste-button');
            pasteButton.addEventListener('click', async function() {
                try {
                    var text = await navigator.clipboard.readText();
                    $('#link').val(text);
                } catch (err) {
                    console.error('An error occurred while reading clipboard contents:', err);
                }
            });
        }
        if (!isClipboardAPIEnabled()) {
            document.getElementById('paste-button').style.display = 'block';
            addClipboardEventListener();
        }
    });
</script>
</body>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1400162.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计选题分享-ssm租房小程序42196(赠送源码数据库)JAVA、PHP,node.js,C++、python,大屏数据可视化等

毕业设计 ssm租房小程序 院 系&#xff1a; 姓 名&#xff1a; 学 号&#xff1a; 专 业&#xff1a; 年 级&#xff1a; 指导教师&#xff1a; 职 称&#xff1…

HYBBS 表白墙网站PHP程序源码 可封装成APP

源码介绍 PHP表白墙网站源码&#xff0c;可以做校园内的&#xff0c;也可以做校区间的&#xff0c;可封装成APP。告别QQ空间的表白墙吧。 安装PHP5.6以上随意 上传程序安装&#xff0c;然后设置账号密码&#xff0c;登陆后台切换模板手机PC都要换开启插件访问前台。 安装完…

MySQL隔离性的进阶理解

数据库的并发场景有三种 读-读&#xff1a;没有问题读-写&#xff1a;有线程安全问题&#xff0c;可能会造成事务隔离性问题&#xff0c;如&#xff1a;脏读&#xff0c;幻读&#xff0c;不可重复读写-写&#xff1a;有线程安全问题&#xff0c;可能会存在更新丢失问题&#xf…

使用OpenCV绘制图形

使用OpenCV绘制图形 绘制黄色的线&#xff1a; # 绘制一个黑色的背景画布 canvas np.zeros((300, 300, 3), np.uint8) # 在画布上&#xff0c;绘制一条起点坐标为(150, 50)、终点坐标为(150, 250)&#xff0c;黄色的&#xff0c;线条宽度为20的线段 canvas cv2.line(canvas,…

AI基于近邻图的向量搜索案例(二)

Graph部分 Graph部分&#xff0c;通过先构建KNN图&#xff0c;再根据RNG Rule移除不符合要求的边&#xff0c;得到RNG。 KNN图的构建 KNN图是指对于样本数据中的每一个点&#xff0c;将其自身与K个近邻点连接而形成的图。 由于样本数据规模非常大&#xff0c;我们采用了一定…

AI+量化02_金融市场的基础概念

文章目录 问答之纯小白 vs GPT4Q1. 请用尽可能简短的语句或例子&#xff0c;给小白讲解宏观经济Q2. 给小白讲解资本边际效率 思维导图 目标: 掌握量化金融知识、使用Python进行量化开发 背景&#xff1a;纯小白 参考资料&#xff1a;https://github.com/datawhalechina/whale-q…

Haxe-UnrealEngine5

Haxe-UnrealEngine5 结论 UE C header > External/**.hx.hx > .h/.cpp&#xff0c;和 UE C 一起编译使用 hxcpp 来调试 .hx good&#xff1a; 理论上不仅限反射代码走 UE C&#xff0c;无需维护 backend&#xff0c;比如 Lua Binding理论上接近 UE C 的性能 bad&…

Python-基础篇-数据结构-列表、元组、字典、集合

文章目录 思维导图❓ 大抵是何物数据结构切片 &#x1f4ac;具体是何物列表&#x1f4bb; list&#x1f4bb; [ ]自我介绍精神面貌使用说明生理体征增删查改 方法汇总 元组&#x1f4bb; tuple&#x1f4bb; ( )自我介绍使用说明精神面貌生理体征增删查改 字典&#x1f4bb; di…

【网络安全】【密码学】【北京航空航天大学】实验五、古典密码(中)【C语言实现】

实验五、古典密码&#xff08;中&#xff09; 实验目的和原理简介参见博客&#xff1a;古典密码&#xff08;上&#xff09; 一、实验内容 1、弗纳姆密码&#xff08;Vernam Cipher&#xff09; &#xff08;1&#xff09;、算法原理 加密原理&#xff1a; 加密过程可以用…

【网站项目】329网月科技公司门户网站

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

一个简单的ETCD GUI工具

使用ETCD没有好用的GUI工具&#xff0c;随手用c#写了一个&#xff0c; 做得好玩的一个ETCD GUI工具&#xff0c;后面加上CLI 工具&#xff0c;类似于 redis Cli工具一样&#xff0c;简化在 Linux下面的操作&#xff0c;不知道有没有必要&#xff0c; git 地址如下&#xff0c;…

KDJ指标的算法、原理和特性

KDJ的完整中文名称是随机摆动指标&#xff0c;是短线交易者最常用的指标之一。作为应用最广泛的指标之一&#xff0c;KDJ的用法网上随处可见&#xff0c;但大部分介绍都只会告诉你超买超卖&#xff0c;金叉死叉&#xff0c;详细点的讲讲背离和钝化&#xff0c;至于为什么这么用…

竞赛保研 机器视觉opencv答题卡识别系统

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 答题卡识别系统 - opencv python 图像识别 该项目较为新颖&#xff0c;适合作为竞赛课题方向&#xff0c;学长非常推荐&#xff01; &#x1f947;学长这里给一个题目综合评分(每项满分5分…

Erp读书笔记20240121

ERP&#xff08;Enterprise Resource Planning&#xff0c;企业资源计划&#xff09;是一种集成的企业管理软件系统&#xff0c;它可以帮助企业实现内部和外部资源的整合和管理。 ERP 系统具有纵观全局的特点&#xff0c;它可以涵盖企业的各个部门和业务流程&#xff0c;实现信…

力扣每日一练(24-1-20)

大脑里的第一想法是排列组合&#xff0c;直接给出超级准确的最优解。 但不适用&#xff0c;hhh 只要连续的n个元素大于或者等于target就可以了 题目比自己想象的要好解决 解法是使用滑动窗口算法。这个算法的基本思想是维护一个窗口&#xff0c;使得窗口内的元素总和大于等于目…

初识MQ-同步异步

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、同步通讯二、异步通讯2.1.异步调用方案2.2.异步的优缺点 三、什么时MQ3.1 mq和broker3.2几种mq的优缺点对比 总结 前言 一、同步通讯 同步调用问题&#…

Windows系统字体尺寸学习

调用GetTextMetrics来获得字体尺寸信息, 函数返回设备描述表中当前选定的字体信息&#xff1b; 返回值到TEXTMETRIC类型的结构中&#xff1b; 返回字段值的单位取决于当前设备描述表映射方式&#xff1b;默认映射方式是MM_TEXT&#xff0c;值的单位是像素&#xff1b; 前7个字…

『C++成长记』模板

&#x1f525;博客主页&#xff1a;小王又困了 &#x1f4da;系列专栏&#xff1a;C &#x1f31f;人之为学&#xff0c;不日近则日退 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 目录 一、泛型编程 二、函数模板 &#x1f4d2;2.1函数模板概念 &#x1f4d2;2.2函数…

第 122 场 LeetCode 双周赛题解

A 将数组分成最小总代价的子数组 I 枚举&#xff1a;枚举后两个子数组的起始下标 class Solution { public:int minimumCost(vector<int> &nums) {int n nums.size();int res INT32_MAX;for (int i 1; i < n; i)for (int j i 1; j < n; j)res min(res, n…

AI日报:扎克伯格瞄准AGI通用人工智能

文章目录 Meta瞄准通用人工智能领域Meta的目标Meta的产品 FAIR移动和装载H100扎克伯格对人工智能竞争对手的真实动机持怀疑态度Meta抛弃了元宇宙吗&#xff1f; Meta瞄准通用人工智能领域 Meta首席执行官马克扎克伯格&#xff08;Mark Zuckerberg&#xff09;在一份可能改变全…