【问题标题】:Web how to hook media request and modify the media request response?Web如何挂钩媒体请求并修改媒体请求响应?
【发布时间】:2022-01-19 05:26:32
【问题描述】:

我在 CDN 上托管了视频。但视频文件已被修改。所以视频不能直接播放。

在我的应用中,我可以在播放前反转视频的修改。

但是我怎样才能在浏览器中做到这一点呢?有ajax hook,我试过了,不能hook midia流。

【问题讨论】:

  • 我不关心安全性,因为网页可以访问本地网络,而不是互联网。
  • #1 你用的是什么cdn? #2 你用的是什么视频播放器? #3 如果视频有误,只需捕获该事件并执行回滚
  • @JRichardsz 视频文件头是通过故意修改头来加密的。

标签: javascript video stream hook


【解决方案1】:

视频文件头是通过故意修改头来加密的。

首先,如果您尝试加密视频,这不会为您提供太多保护。我建议使用带有Encrypted Media Extensions 的某种 DRM。这将确保您的视频在不付出额外努力的情况下无法访问。没有什么是万无一失的,但这至少要好得多。

Web如何hook媒体请求和修改媒体请求响应?

您可以使用Service Worker 来处理任何请求/响应,包括媒体元素。

基本上,Service Worker 充当代理,拦截请求。如果它选择,它可以自己处理请求。通常这用于对缓存做一些特殊的事情,但是您可以使用相同的方法来修改您认为合适的响应数据。在最基本的层面上,你的 Service Worker 会做这样的事情:

self.addEventListener('fetch', (event) => {
  event.respondWith(
    // Your modified data in a Response object here
  );
});

您需要实现很多东西才能开始。你可以在这里找到完整的教程:

https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers

另外请注意,请注意请求中的范围标头。这些在媒体数据中很常见,您需要在 Service Worker 脚本中处理它们!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2015-07-16
    • 2016-11-01
    • 2021-05-08
    相关资源
    最近更新 更多