bpking1 / embyExternalUrl

some emby/jellyfin scripts
MIT License
795 stars 137 forks source link

请问使用115网盘转码直链出现跨域应该怎么解决 #379

Closed zijian0628 closed 1 month ago

zijian0628 commented 1 month ago

是我设置的问题吗,还是只能使用浏览器插件来解决。 image image

chen3861229 commented 1 month ago

在控制台中确定是跨域CORS之类的关键字吗?转码直链这个能获取到图中的这步链接的话,配置是正确的,转码的直链这个 115 是否跨域和网页直接播放原始媒体是一样的,理论上 115 的都会跨域了

浏览器插件

前几个版本贡献者合并后,是不需要浏览器插件了,已经通过此段反代让浏览器的音/视频播放支持了跨域了

# Only emby Proxy the basehtmlplayer.js
    location /web/modules/htmlvideoplayer/basehtmlplayer.js {
        client_body_in_file_only clean;
        js_content emby2Pan.modifyBaseHtmlPlayer;
        add_header X-Proxy-Success true; # for debug
    }

可试下3.浏览器控制台网络选项卡勾选 禁用缓存,刷新页面,在源代码选项卡中确认修改生效后取消勾选,或人眼确认下浏览器开发者选项卡中源代码的/web/modules/htmlvideoplayer/basehtmlplayer.js?v=xxx的最后,getCrossOriginValue方法体中预期应该为return null

BaseHtmlPlayer.prototype.getCrossOriginValue = function(mediaSource, playMethod) {
        return null
    }
zijian0628 commented 1 month ago

已经禁用了缓存,就是这样请求出现CORS error image 并且看basehtmlplayer.js中getCrossOriginValue方法确实是返回null的 image 我试了使用浏览器插件禁用跨域检查确实可以正常播放

chen3861229 commented 1 month ago

不好意思,记起来了,确实有使用限制,受限与 emby web 对于 hls 的加载原理限制,这个功能只能使用浏览器拓展解决

1.web 播放 HLS 时 htmlvideoplayer 的 video 标签 src 为 data:// 形式,即 js 发起的 http 请求,无法解决跨域

https://github.com/bpking1/embyExternalUrl/blob/main/FAQ.md#35115-%E8%BD%AC%E7%A0%81%E7%9B%B4%E9%93%BE-bugs

zijian0628 commented 1 month ago

不好意思,记起来了,确实有使用限制,受限与 emby web 对于 hls 的加载原理限制,这个功能只能使用浏览器拓展解决

1.web 播放 HLS 时 htmlvideoplayer 的 video 标签 src 为 data:// 形式,即 js 发起的 http 请求,无法解决跨域

https://github.com/bpking1/embyExternalUrl/blob/main/FAQ.md#35115-%E8%BD%AC%E7%A0%81%E7%9B%B4%E9%93%BE-bugs

哦 原来如此 谢谢解答