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);
        },
      }
    },
  });
相关推荐
饭饭大王66612 小时前
CANN 生态深度整合:使用 `pipeline-runner` 构建高吞吐视频分析流水线
人工智能·音视频
晚霞的不甘14 小时前
CANN 编译器深度解析:TBE 自定义算子开发实战
人工智能·架构·开源·音视频
愚公搬代码14 小时前
【愚公系列】《AI短视频创作一本通》016-AI短视频的生成(AI短视频运镜方法)
人工智能·音视频
那个村的李富贵15 小时前
CANN赋能AIGC“数字人”革命:实时视频换脸与表情驱动实战
aigc·音视频
晚霞的不甘15 小时前
CANN 支持强化学习:从 Isaac Gym 仿真到机械臂真机控制
人工智能·神经网络·架构·开源·音视频
晚霞的不甘19 小时前
CANN 支持多模态大模型:Qwen-VL 与 LLaVA 的端侧部署实战
人工智能·神经网络·架构·开源·音视频
拾荒的小海螺1 天前
开源项目:LTX2 高效可控的开源视频生成模型
开源·音视频
EasyGBS1 天前
视频画面模糊、卡顿、丢失?EasyGBS新增“视频质量诊断”功能,告别人工盯屏
视觉检测·音视频·gb28181·花屏·视频质量诊断·蓝屏检测
zhuweisky2 天前
ArkTS实现鸿蒙手机视频聊天、屏幕分享(HarmonyOS)
音视频·harmonyos·鸿蒙开发
XHW___0012 天前
webrtc 关键模块创建的时机
网络·音视频·webrtc