SpringBoot基于VIP视频解析接口实现视频播放

版权声明:本文为博主原创文章,未经博主允许不得转载。 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了解一下.

      再次声明,学习了解一下就可以了,提提兴趣就好啊,不要用于商业活动,侵犯公司的权益!!!

猜你喜欢

转载自blog.csdn.net/HcJsJqJSSM/article/details/80753712