embyLaunchPotplayer

emby/jellfin launch extetnal player

作者
chen3861229
日安装量
2
总安装量
145
评分
5 0 0
版本
1.1.15
创建于
2024-10-28
更新于
2024-11-10
许可证
MIT
适用于

emby 调用外部播放器用户脚本,支持网页和服务端:

现用户脚本更新地址

https://greasyfork.org/zh-CN/scripts/514529

原作者(bpking1)提示信息

  1. 添加mpv player, 桌面端需要使用这个项目进行设置 https://github.com/akiirui/mpv-handler
  2. 请使用Potplayer官方最新版,目前的版本号是230208,影片标题中文表现为乱码,需要等potplayer官方更新才行
  3. PotPlayer可以调用外挂字幕,未选中外挂字幕的时候默认会尝试加载中文外挂字幕
  4. 取消直链网盘播放按钮,直链需求可以在emby_server解决,请参考 这篇文章
  5. potPlayer调用不生效的情况通常是注册表没加上,请重新安装pot官网最新版
  6. 需要多开potPlayer的话,将脚本第186行左右的 /current 删除即可
  7. 推荐直接将js脚本部署到emby_server,这样就不需要油猴了: 以linux为例,在/opt/emby-server/system/dashboard-ui目录下新建externalPlayer.js文件,将本脚本内容复制到里面,然后在当前目录下的index.html的 /body上面引入脚本即可
  8. 提示信息引用至原地址1: https://greasyfork.org/zh-CN/scripts/459297-embylaunchpotplayer
  9. 原脚本的账号无法登陆了,以后在这个地址更新,原地址2 https://greasyfork.org/en/scripts/406811-embylaunchpotplayer ,github地址: https://github.com/bpking1/embyExternalUrl

部署方式,任选一种

一.原生部署到服务端上(推荐)

  1. 优点是不依赖其他插件,例如: 油猴/篡改猴, 所有 Web 端共享加载插件,缺点是用户无法手动禁用插件,且非 Web 端不生效
  2. 修改服务端的../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>
  3. 客户端浏览器刷新页面或清空缓存生效

二.服务端插件用户脚本管理器部署方式(推荐)

  1. 优点是多端统一共用,支持强制启用,手动启用或禁用插件,更为灵活与现代化,缺点是依赖第三方用户脚本管理器,属于 emby 插件,也可添加其它类型脚本并快捷管理,但同样需要服务端与客户端配合使用CustomCssJS,服务端改一次,客户端修改集成可手动参考三,不想自己改的可直接使用第三方魔改增强版已内置 CustomCssJS 集成的即可,缺点为无 iOS 端的已修改版

三.浏览器用户脚本管理器部署方式

  1. 优点是最传统且符合习惯,缺点是甚至每个浏览器都需要装用户脚本管理器

四.其他部署方式和各客户端集成方式

  1. 参考: 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 image

Emby Web, iconOnly: true image

CHANGELOG

1.1.15

  1. 添加几个播放器支持
  2. 默认开启隐藏其他平台播放器图标

1.1.14

  1. 修复剪切板 API 兼容性

1.1.13

  1. 修复 Google Chrome Version >= 130 导致的 PotPlayer 拉起播放错误,但注意不要禁用剪切板权限
  2. 意外修复了 PotPlayer 串流的中文标题支持问题
  3. 更换为现代方式写入剪切板 API 以支持火狐,且可能会导致老旧浏览器无法复制

1.1.12

  1. 更换默认的网络图标 CDN 为 Cloudflare Pages 地址,以改善中国移动宽带的体验
  2. 更换 @match 为严格匹配以兼容暴力猴

1.1.11

  1. 播放链接添加 DeviceId 参数

1.1.10

  1. 修复 mpv-handler 编码错误

1.1.9

  1. 修复非管理员账号 ddplay 的无 filePath 错误

1.1.8

  1. 修复自定义的串流和下载地址

1.1.7

  1. 添加 iconOnly 设置
  2. 兼容Jellyfin 10.9.6 +

1.1.6

  1. 重构 html 字符串为 js 对象方式,方便排错
  2. 修复未定义变量
  3. 复制并填写了 getIconsExt 函数时优先使用本地图标提升加载速度
  4. 修复 live 文件名

1.1.5

  1. 修复复制链接按钮

1.1.4

  1. 兼容 jellfin 10.8.13
  2. stream 提供 useRealFileName 开关
  3. 修复无当前集情况
  4. 调整 JellyfinWebMobileCss 上的样式

1.1.3

  1. 同步 emby2Alist 中对 stream.ext 的修改
  2. 修复错误的 URL 双重编码

1.1.2

  1. 兼容播放列表页
  2. 修正一个造成当前集无法播放的 bug
  3. 兼容直播详情页
  4. 添加弹弹 play 和 base64 图标方式
  5. 兼容 jellfin
  6. 修复直播页面 bug

1.1.1

兼容首次没有音视频信息加载(STRM)