emby 调用外部播放器用户脚本,支持网页和服务端:
现用户脚本更新地址
https://greasyfork.org/zh-CN/scripts/514529
原作者(bpking1)提示信息
- 添加mpv player, 桌面端需要使用这个项目进行设置 https://github.com/akiirui/mpv-handler
- 请使用Potplayer官方最新版,目前的版本号是230208,影片标题中文表现为乱码,需要等potplayer官方更新才行
- PotPlayer可以调用外挂字幕,未选中外挂字幕的时候默认会尝试加载中文外挂字幕
- 取消直链网盘播放按钮,直链需求可以在emby_server解决,请参考 这篇文章
- potPlayer调用不生效的情况通常是注册表没加上,请重新安装pot官网最新版
- 需要多开potPlayer的话,将脚本第186行左右的 /current 删除即可
- 推荐直接将js脚本部署到emby_server,这样就不需要油猴了: 以linux为例,在/opt/emby-server/system/dashboard-ui目录下新建externalPlayer.js文件,将本脚本内容复制到里面,然后在当前目录下的index.html的 /body上面引入脚本即可
- 提示信息引用至原地址1: https://greasyfork.org/zh-CN/scripts/459297-embylaunchpotplayer
- 原脚本的账号无法登陆了,以后在这个地址更新,原地址2 https://greasyfork.org/en/scripts/406811-embylaunchpotplayer ,github地址: https://github.com/bpking1/embyExternalUrl
部署方式,任选一种
一.原生部署到服务端上(推荐)
- 优点是不依赖其他插件,例如: 油猴/篡改猴, 所有 Web 端共享加载插件,缺点是用户无法手动禁用插件,且非 Web 端不生效
- 修改服务端的
../emby-server/system/dashboard-ui/index.html
最下方,/body 标签上,<script src="apploader.js" defer></script>
这行的下方添加,
js
...
<script src="apploader.js" defer></script>
<script src="https://emby-external-url.7o7o.cc/embyWebAddExternalUrl/embyLaunchPotplayer.js" defer></script>
</body>
- 客户端浏览器刷新页面或清空缓存生效
二.服务端插件用户脚本管理器部署方式(推荐)
- 优点是多端统一共用,支持强制启用,手动启用或禁用插件,更为灵活与现代化,缺点是依赖第三方用户脚本管理器,属于 emby 插件,也可添加其它类型脚本并快捷管理,但同样需要服务端与客户端配合使用CustomCssJS,服务端改一次,客户端修改集成可手动参考三,不想自己改的可直接使用第三方魔改增强版已内置 CustomCssJS 集成的即可,缺点为无 iOS 端的已修改版
三.浏览器用户脚本管理器部署方式
- 优点是最传统且符合习惯,缺点是甚至每个浏览器都需要装用户脚本管理器
四.其他部署方式和各客户端集成方式
- 参考:
https://github.com/chen3861229/dd-danmaku#%E5%AE%89%E8%A3%85
按需更改的地方
1.代码内部变量
const iconConfig = {
// 隐藏异构平台的播放器图标
hideByOS: true,
// 启用后将只显示图标,不显示文字
iconOnly: false,
// 图标来源,以下三选一,注释为只留一个,3 的优先级最高
// 1.add icons from jsdelivr, network
baseUrl: "https://emby-external-url.7o7o.cc/embyWebAddExternalUrl/icons",
// baseUrl: "https://fastly.jsdelivr.net/gh/bpking1/embyExternalUrl@main/embyWebAddExternalUrl/icons",
// 2.server local icons, same as /emby-server/system/dashboard-ui/icons
// baseUrl: "icons",
// 3.add icons from Base64, script inner, this script size 22.5KB to 74KB,
// 自行复制 ./iconsExt.js 内容到此脚本的 getIconsExt 中
};
// 启用后将修改直接串流链接为真实文件名,方便第三方播放器友好显示和匹配,
// 默认不启用,强依赖 nginx-emby2Alist location two rewrite,如发现原始链接播放失败,请关闭此选项
const useRealFileName = false;
效果:
Emby Web, iconOnly: false
Emby Web, iconOnly: true
CHANGELOG
1.1.15
- 添加几个播放器支持
- 默认开启隐藏其他平台播放器图标
1.1.14
- 修复剪切板 API 兼容性
1.1.13
- 修复 Google Chrome Version >= 130 导致的 PotPlayer 拉起播放错误,但注意不要禁用剪切板权限
- 意外修复了 PotPlayer 串流的中文标题支持问题
- 更换为现代方式写入剪切板 API 以支持火狐,且可能会导致老旧浏览器无法复制
1.1.12
- 更换默认的网络图标 CDN 为 Cloudflare Pages 地址,以改善中国移动宽带的体验
- 更换 @match 为严格匹配以兼容暴力猴
1.1.11
- 播放链接添加 DeviceId 参数
1.1.10
- 修复 mpv-handler 编码错误
1.1.9
- 修复非管理员账号 ddplay 的无 filePath 错误
1.1.8
- 修复自定义的串流和下载地址
1.1.7
- 添加 iconOnly 设置
- 兼容Jellyfin 10.9.6 +
1.1.6
- 重构 html 字符串为 js 对象方式,方便排错
- 修复未定义变量
- 复制并填写了 getIconsExt 函数时优先使用本地图标提升加载速度
- 修复 live 文件名
1.1.5
- 修复复制链接按钮
1.1.4
- 兼容 jellfin 10.8.13
- stream 提供 useRealFileName 开关
- 修复无当前集情况
- 调整 JellyfinWebMobileCss 上的样式
1.1.3
- 同步 emby2Alist 中对 stream.ext 的修改
- 修复错误的 URL 双重编码
1.1.2
- 兼容播放列表页
- 修正一个造成当前集无法播放的 bug
- 兼容直播详情页
- 添加弹弹 play 和 base64 图标方式
- 兼容 jellfin
- 修复直播页面 bug
1.1.1
兼容首次没有音视频信息加载(STRM)