DPlayer m3u8 视频禁止下载

1. 介绍

正常的 m3u8 格式视频通过控制台是无法下载的,但是可以通过插件下载,下面介绍如何规避这个问题。

思路:后端生成一个一次性的密钥,前端放在请求头中,可以防止大部分插件下载。这里只说前端。

2. 实现

集成 DPlayer 播放器这里就不说了,网上一大推。

javascript 复制代码
  // 接口封装
  disposable() {
    return new Promise((resolve, reject) => {
      axios.get('file/disposable').then(res => {
        resolve(res);
      }).catch(err => {
        reject(err);
      });
    });
  },
javascript 复制代码
 // m3u8
 let that = this;
 this.dplayer = new DPlayer({
    container: document.getElementById('page-content-view-video'),
    autoplay: true,
    hotkey: true,
    video: {
      url: 'http:xxxx.m3u8',
      type: 'customHls',
      customType: {
        customHls: function(video, player) {
          let config = {
            xhrSetup: async function(xhr, url) {
              // 这里是为了每个请求携带不同的一次性密钥
              if(url.endsWith('.m3u8')) {
                xhr.setRequestHeader('disposable', await that.$api.disposable());
              }else if(url.endsWith('.ts')) {
                xhr.setRequestHeader('disposable', await that.$api.disposable());
              }
            },
          };
          const hls = new window.Hls(config);
          hls.loadSource(video.src);
          hls.attachMedia(video);
        },
      }
    },
  });
相关推荐
1204157137 肖哥7 小时前
UE5 MRQ渲染:解决采样不够造成的角色残影问题
ue5·音视频
技术与健康8 小时前
从Markdown讲义自动生成教学视频的完整解决方案
音视频
小白学大数据11 小时前
Java 异步爬虫高效获取小红书短视频内容
java·开发语言·爬虫·python·音视频
FL162386312912 小时前
基于yolo11实现的车辆实时交通流量进出统计与速度测量系统python源码+演示视频
开发语言·python·音视频
Jacen.L13 小时前
如何选择视频测试编码器? -- 编码器测试序列选择方法论
音视频·视频编解码
z日火13 小时前
腾讯云VOD AIGC视频生成工具 回调实现
aigc·音视频·腾讯云
EasyGBS13 小时前
EasyGBS打造变电站高效智能视频监控解决方案
网络·人工智能·音视频
gf132111115 小时前
制作卡点视频
数据库·python·音视频
EasyCVR16 小时前
安防监控视频汇聚平台EasyCVR打造出入口匝道安全畅行智慧管理方案
安全·音视频
weixin_4368040716 小时前
在线音频音量调节器 - 免费批量调整声音大小与音量控制
音视频