embyLaunchPotplayer

emby/jellfin launch external player

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

作者
chen3861229
日安装量
5
总安装量
1,053
评分
14 0 0
版本
1.2.1
创建于
2024-10-28
更新于
2025-10-27
大小
32.4 KB
许可证
MIT
适用于

English | 简体中文


Emby External Player User Script (Supports Web and Server)

Latest user script update address:
https://greasyfork.org/zh-CN/scripts/514529


Notes from the Original Author (bpking1)

  1. Add MPV Player: On desktop, you need to configure it with this project: mpv-handler.
  2. PotPlayer: Please use the official latest version. Current version 230208 has an issue where Chinese titles appear garbled — wait for the official update.
  3. PotPlayer can load external subtitles. If no external subtitle is selected, it will try to load Chinese subtitles by default.
  4. The direct-link cloud drive playback button has been removed. If you need direct links, solve it on the Emby server side. See this article.
  5. If PotPlayer launch doesn’t work, it’s usually because the registry entry is missing. Reinstall the latest official PotPlayer.
  6. To allow multiple PotPlayer instances, remove /current around line 186 of the script.
  7. Recommended: deploy the JS script directly on the Emby server (no Tampermonkey needed). For Linux:
    • Create externalPlayer.js under /opt/emby-server/system/dashboard-ui/
    • Copy the script content into it
    • In index.html, add a <script> reference just above the closing </body> tag.
  8. Reference info from original script: GreasyFork link.
  9. The original author’s account is no longer accessible. Future updates will be at the new address. Old links:

Deployment Methods (Choose One)

1. Native Server Deployment (Recommended)

  • Pros: No dependency on plugins like Tampermonkey. All web clients share the plugin automatically.
  • Cons: Users cannot disable it manually, and it won’t work on non-web clients.

Steps:

  1. Edit ../emby-server/system/dashboard-ui/index.html.
  2. At the bottom, just above </body>, below the line <script src="apploader.js" defer></script>, add:
    html <script src="https://emby-external-url.7o7o.cc/embyWebAddExternalUrl/embyLaunchPotplayer.js" defer></script> </body>
  3. Refresh the client browser or clear cache to take effect.

2. Server Plugin User Script Manager Deployment (Recommended)

  • Pros: Unified across multiple clients, supports forced enable/disable, more flexible and modern.
  • Cons: Depends on a third-party user script manager plugin.

Use CustomCssJS.

  • Server changes once, clients can integrate manually.
  • Alternatively, use a third-party modified Emby build with CustomCssJS already integrated.
  • Limitation: no modified version available for iOS.

3. Browser User Script Manager Deployment

  • Pros: Traditional and familiar.
  • Cons: Each browser requires its own user script manager installation.

4. Other Deployment & Client Integration

See: dd-danmaku project


Configurable Variables

const iconConfig = {
    // Icon source, choose one (priority: #3 highest)
    // 1. Load icons from jsDelivr CDN
    baseUrl: "https://emby-external-url.7o7o.cc/embyWebAddExternalUrl/icons",
    // baseUrl: "https://fastly.jsdelivr.net/gh/bpking1/embyExternalUrl@main/embyWebAddExternalUrl/icons",
    // 2. Use server local icons (same as /emby-server/system/dashboard-ui/icons)
    // baseUrl: "icons",
    // 3. Embed icons as Base64 inside the script (larger script size)
    // Copy ./iconsExt.js content into getIconsExt function
    removeCustomBtns: false,
};

// Option to rewrite stream links with real filenames for better third-party player compatibility.
// Default: false. Requires nginx-emby2Alist rewrite. If playback fails, disable this option.
const useRealFileName = false;

Preview

  • Emby Web, iconOnly: false
    Preview 1

  • Emby Web, iconOnly: true
    Preview 2


CHANGELOG (Highlights)

  • 1.1.22: Fix compatibility with new vlc-protocol and mpvplay-protocol.
  • 1.1.21: Fixed Jellyfin misbehavior and icon issues.
  • 1.1.20: Adapted to Emby 4.9.0.40, refactored selectors.
  • 1.1.19: Added option to remove redundant custom switches, added icons, added STRM passthrough toggle.
  • 1.1.18: Added multi-instance PotPlayer support.
  • 1.1.17: Improved icon/text mode, isolated data for different platforms.
  • 1.1.16: Added missing MXPlayerPro icon.
  • 1.1.15: Added more player support, default hides other platform icons.
  • 1.1.14: Fixed clipboard API compatibility.
  • 1.1.13: Fixed Chrome ≥130 PotPlayer launch issue, improved Chinese title support, modernized clipboard API.
  • 1.1.12: Changed default CDN to Cloudflare Pages for better China Mobile experience.
  • 1.1.11: Added DeviceId parameter to playback links.
  • 1.1.10: Fixed mpv-handler encoding error.
  • 1.1.9: Fixed ddplay error for non-admin accounts.
  • 1.1.8: Fixed custom stream and download URLs.
  • 1.1.7: Added iconOnly setting, Jellyfin 10.9.6+ compatibility.
  • 1.1.6: Refactored HTML to JS objects, fixed undefined variables, improved local icon loading, fixed live filenames.
  • 1.1.5: Fixed copy link button.
  • 1.1.4: Jellyfin 10.8.13 compatibility, added useRealFileName option, fixed missing episode bug.
  • 1.1.3: Synced with emby2Alist stream.ext changes, fixed double URL encoding.
  • 1.1.2: Playlist compatibility, fixed playback bug, live page support, added DanDan Play and Base64 icons, Jellyfin compatibility.
  • 1.1.1: Fixed STRM playback when no initial audio/video info.

✅ This translation keeps the technical details intact while making it clear for English-speaking developers.

Would you like me to reformat this into a ready-to-use README.md file for GitHub, with proper headings, code blocks, and links?