版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/HcJsJqJSSM/article/details/80753712
一:背景介绍.
网上有很多VIP视频解析接口,都是有专门的团队维护实现VIP视频解析的.添加播放器就可以播放的.仅仅是学习一下即可,
声明:严禁用于商业活动不得侵犯其他公司的权益!!!
二:环境搭建.
SpringBoot框架,VIP视频解析接口,Thymeleaf,LayUI,font-awesome,Jquery实现.
项目结构图如下:
三: 项目源码分析.
Maven依赖.
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lx</groupId>
<artifactId>myvideo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>myvideo</name>
<description>Video project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<!-- set thymeleaf version -->
<thymeleaf.version>3.0.0.RELEASE</thymeleaf.version>
<thymeleaf-layout-dialect.version>2.0.0</thymeleaf-layout-dialect.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Thymeleaf-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!-- 热部署-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>video</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
</project>
application.peoperties
#port
server.port=8081
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.cache=false
video.html(准备了十个VIP视频解析接口,来自互联网)
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.thymeleaf.org" >
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
<title>【各大VIP视频免费播放页面】</title>
<meta name="keywords" content="vip视频免费播放">
<meta name="description" content="vip视频免费播放">
<link rel="icon" th:href="@{/images/newlogo.png}" />
<link rel="stylesheet" th:href="@{/layui/css/layui.css}" media="all">
<link rel="stylesheet" th:href="@{/font-awesome/css/font-awesome.min.css}" />
<link rel="stylesheet" th:href="@{/css/index.css}">
<style type="text/css">
*{
margin:0;
padding:0;
}
.layui-btn-radius{
width:130px;
}
#bo{
z-index: 12;
}
#aboutproject{
position: absolute;
right:16px;
top:41px;
}
#tryline{
position: absolute;
right: 25%;
top:14.5%;
width:30%;
color:red;
font-size:1em;
}
.hide{
display:none;
}
</style>
<script th:src="@{/js/jquery-1.7.1.min.js}"></script>
<script th:src="@{/layui/layui.js}"></script>
<script th:src="@{/js/dedejs.js}"></script>
<script>
layui.use(['form','layer'], function(){
var form = layui.form;
var layer = layui.layer;
form.on('submit(formDemo)', function(data){
var diz = document.getElementById("url").value;
var jkv = $('#jiedian option:selected') .val();
console.log(diz);
console.log(jkv);
$("#player").attr("src",jkv+diz);
});
});
function aboutProject(){
layer.open({
area:['25%','25%'],
title: '关于项目',
content: '项目前台使用LayUI,JQuery框架,后台使用Thymeleaf,SpringBoot框架.'
});
}
function getAiQiYiVideo() {
layer.open({
area:['90%','90%'],
type:2,
title: '爱奇艺搜索',
content: 'http://so.iqiyi.com/'
});
};
function getYouKuVideo() {
layer.open({
area:['90%','90%'],
type:2,
title: '优酷视频搜索',
content: 'http://www.soku.com/'
});
};
function getTengXunVideo() {
layer.open({
area:['90%','90%'],
type:2,
title: '腾讯视频搜索',
content: 'https://v.qq.com/x/search/?q=搜索'
});
};
function getSouHuVideo() {
layer.open({
area:['90%','90%'],
type:2,
title: '搜狐视频搜索',
content: 'https://tv.sohu.com/'
});
};
function getLeShiVideo() {
layer.open({
area:['90%','90%'],
type:2,
title: '乐视视频搜索',
content: 'http://www.leso.cn/'
});
};
function getBiLiVideo() {
layer.open({
area:['90%','90%'],
type:2,
title: '华数视频搜索',
content: 'https://www.wasu.cn/'
});
};
function getMangGuoVideo() {
layer.open({
area:['90%','90%'],
type:2,
title: '芒果TV视频搜索',
content: 'https://www.mgtv.com/'
});
};
</script>
<script>
$(function(){
$("#weixin_btn").click(function () {
layer.open({
type: 1,
title: false,
closeBtn: 0,
area: ['40%','40%'],
skin: 'layui-layer-rim',
shadeClose: true,
anim: 6,
time:10000,
content: $('#weixin_code'),
end:function () {
$("#weixin_code").attr("style","display:none;")
}
});
});
});
</script>
</head>
<body>
<div id="bo">
<div style="display: none;" id="rocket-to-top">
<div style="opacity:0;display: block;" class="level-2"></div>
<div class="level-3"></div>
</div>
<div class="layui-container" style="width: 80%">
<blockquote class="layui-elem-quote">
<div align="center">
<h2><font color="#00bfff">各大VIP视频免费播放</font></h2>
</div>
<ul style="list-style-type:none">
<li style="color:red;font-size:15px;">温馨提示:仅限用于学习,严禁用于商业活动! 使用教程在页面最低端.</li>
<li><a id="aboutproject" href="javascript:void(0); onclick=aboutProject();">关于项目</a></li>
</ul>
</blockquote>
<blockquote class="layui-elem-quote">
<form>
<label class="layui-form-label">视频地址</label>
<div class="layui-input-block">
<input type="text" id="url" name="url" required lay-verify="required" placeholder="电脑使用Ctrl+V粘贴网址/手机直接长按粘贴网址" autocomplete="off" class="layui-input">
</div>
<label class="layui-form-label" style="width: auto">选择解析方式</label>
<select id="jiedian" style="height:38px;width:auto;margin-top: 9px; border: 1px" required>
<option value="http://api.xfsub.com/index.php?url=" >⑩号通用万能接口线路【稳定通用推荐】</option>
<option value="http://yun.mt2t.com/yun?url=" >⑨号云解析接口线路【稳定通用】</option>
<option value="http://vip.jlsprh.com/index.php?url=" >⑧号腾讯高清接口线路【稳定通用推荐】</option>
<option value="https://cdn.yangju.vip/k?url=" >⑦号稳定万能接口线路【稳定通用推荐】</option>
<option value="http://2gty.com/apiurl/yun.php?url=" >⑥号通用万能接口线路【稳定通用】</option>
<option value="http://jx.ejiafarm.com/dy.php?url=" >⑤号通用万能接口线路【稳定通用】</option>
<option value="http://api.baiyug.cn/vip/index.php?url=" >④号通用万能接口线路【稳定通用】</option>
<option value="http://jx.598110.com/zuida.php?url=" >③号通用vip引擎接口线路【稳定通用】</option>
<option value="http://jx.598110.com/duo/index.php?url=" >②号通用vip引擎接口线路【稳定通用】</option>
<option value="http://jx.598110.com/index.php?url=" selected>①号通用vip引擎接口线路【稳定通用】</option>
</select>
<button id="bf" type="button" class="layui-btn layui-btn-normal" lay-submit lay-filter="formDemo">开始播放</button>
<label id="tryline" class="layui-form-label" >温馨提示:如果不能播放,换个线路试一试.</label>
</form>
</blockquote>
<blockquote class="layui-elem-quote">
快速打开下面网站,如果需要补充按钮可以在页面下方的温馨提示中找到联系方式.一起添加吧.
<div>
<button id="getAiQiYiVideo" type="button" class="layui-btn layui-btn-radius" onclick="getAiQiYiVideo();"><i class="layui-icon layui-icon-search" style="font-size: 1em;">爱奇艺搜索</i></button>
<button id="getYouKuVideo" type="button" class="layui-btn layui-btn-radius" onclick="getYouKuVideo();"><i class="layui-icon layui-icon-search" style="font-size: 1em;">优酷视频搜索</i></button>
<button id="getTengXunVideo" type="button" class="layui-btn layui-btn-radius" onclick="getTengXunVideo();"><i class="layui-icon layui-icon-search" style="font-size: 1em;">腾讯视频搜索</i></button>
<button id="getSouHuVideo" type="button" class="layui-btn layui-btn-radius" onclick="getSouHuVideo();"><i class="layui-icon layui-icon-search" style="font-size: 1em;">搜狐视频搜索</i></button>
<button id="getLeShiVideo" type="button" class="layui-btn layui-btn-radius" onclick="getLeShiVideo();"><i class="layui-icon layui-icon-search" style="font-size: 1em;"></i>乐视视频搜索</button>
<button id="getBiLiVideo" type="button" class="layui-btn layui-btn-radius" onclick="getBiLiVideo();"><i class="layui-icon layui-icon-search" style="font-size: 1em;">华数TV搜索</i></button>
<button id="getMangGuoVideo" type="button" class="layui-btn layui-btn-radius" onclick="getMangGuoVideo();"><i class="layui-icon layui-icon-search" style="font-size: 1em;">芒果TV搜索</i></button>
</div>
</blockquote>
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 20px;">
<div id="kj" class="panel-body">
<iframe src="http://jx.aeidu.cn/ks.php" id="player" width="100%" height="600px"
allowTransparency="true" allowfullscreen="true" frameborder="0" scrolling="no">
</iframe>
</div>
</fieldset>
<blockquote class="layui-elem-quote">
<h3>操作指南</h3>
<ul style="list-style-type:none">
<li>第 一 步 首先进入各大视频网站,找到想要观看的VIP视频,然后复制链接(浏览器上的视频地址)</li>
<li>第 二 步 将复制的链接粘贴到本站播放地址,并点击开始播放</li>
<li>第 三 步 等待解析完成,即可免费观看VIP视频</li>
<li><font color="red">温馨提示:播放失败时请尝试更换其他解析方式,如果全都解析失败,下面联系我吧.</font></li>
<li>
<a title="微信" id="weixin_btn" href="javascript:void(0);">
<i class="fa fa-weixin"></i>
<div id="weixin_code" class="hide">
<img src="images/weixin.jpg" alt="我的微信" />
</div>
</a>
</li>
</ul>
</blockquote>
</div>
</div>
</body>
</html>
VideoController
@Controller
public class VideoController {
private static final String TO_PATH="video";
@RequestMapping("/")
public String toTest(){
return TO_PATH;
}
}
运行结果
四: 项目打包(war)Linux下部署运行.
1:项目打包为war包
<packaging>war</packaging>
2:去除Web的Tomcat的吗默认依赖,改为外部依赖.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
3:启动类继承
@SpringBootApplication
public class MyvideoApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(MyvideoApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(MyvideoApplication.class, args);
}
}
4:项目打包使用SpringBoot的打包插件.
将video.war包上传至Linux的服务器上面即可.(Linux早已配置好JAVA和Tomcat和相应的端口)
浏览器访问测试.
部署成功完毕.
五:总结声明
使用的教程是非常方便的,直接粘贴URL就可以的.原理也是非常简单的,就是解析接口+动态URL的播放地址+iframe的播放器.(不是真实地址).可以浏览器抓包看一下.看一下请求头的Host和Referer了解一下.
再次声明,学习了解一下就可以了,提提兴趣就好啊,不要用于商业活动,侵犯公司的权益!!!