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);
        },
      }
    },
  });
相关推荐
HJ_SDK1 小时前
探索私有化聊天软件:即时通讯与音视频技术的结合
音视频
jndingxin12 小时前
OpenCV视频I/O(8)视频采集类VideoCapture之从视频源中读取一帧图像函数read()的使用
人工智能·opencv·音视频
SEU-WYL13 小时前
基于深度学习的视频生成
人工智能·深度学习·音视频
小神.Chen15 小时前
YouTube音视频合并批处理基于 FFmpeg的
ffmpeg·音视频
EasyCVR20 小时前
安防监控/视频系统EasyCVR视频汇聚平台如何过滤134段的告警通道?
网络协议·音视频·视频编解码·视频监控·gb28181
Q8343158191 天前
华为 海思22AP10(SS524)H.265 编解码处理器用户指南
arm开发·人工智能·嵌入式硬件·音视频·硬件工程·h.265·视频编解码
PlumCarefree1 天前
mp4(H.265编码)转为本地RTSP流
音视频·harmonyos·h.265
Lijunyan12981 天前
Python、C++、java阶乘算法
python·其他·音视频·twitter·segmentfault
顶顶年华正版软件官方2 天前
小红书制作视频如何去原视频音乐,视频如何去原声保留背景音乐?
音视频·视频剪辑·会声会影
2的n次方_2 天前
【AIGC】内容创作——AI文字、图像、音频和视频的创作流程
人工智能·ai·音视频