百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
E

embyToLocalPlayer

> 编程语言
开源

etlp - Emby/Jellyfin 使用外部本地播放器,并回传播放记录。适配 Plex。

1.4K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

etlp - Emby/Jellyfin 使用外部本地播放器,并回传播放记录。适配 Plex。

etlp - embyToLocalPlayer

etlp - Emby/Jellyfin 调用 PotPlayer mpv IINA MPC VLC 播放,并回传播放进度(可关)。适配 Plex。

特性

  • 在首页也可以播放。点击原来的播放按钮就可以。可配置版本优先级(若视频多版本)。
  • 播放列表(连续播放)支持,下一集保持相同版本。
  • bgm.tv bangumi.tv simkl.com trakt.tv 单向标记已观看支持。
  • 本地挂载用户:可跳转到路径对应文件夹。(按钮在网页显示文件路径的上面)
  • 未适配的播放器一般也能用,只是不会回传进度。
  • 可在 qBittorrent WebUI 里直接播放或者跳转到路径对应挂载文件夹。 配套脚本
  • 伪 • 聚合搜索。配套脚本

以下播放器支持回传进度

  • 没特殊要求的话,mpv 系的播放器综合体验较好。
  • mpv(纯快捷键)Windows 。 macOS 解压后拖到应用程序即可 macOS。 flatpak mpv Linux。
  • mpv.net(可鼠标)发布页。 其他 mpv 内核的播放器一般也可以。
  • PotPlayer 发布页 若使用 http 播放,可能提示地址关闭, 解决方法在 FAQ。
  • MPC-HC 发布页
  • MPC-BE 发布页
  • VLC 发布页
  • IINA(macOS)发布页

使用说明

基础配置

  1. 油猴插件,装一个即可:
    Tampermonkey v3 并启用开发者模式。启用教程
    Tampermonkey v2 | Violentmonkey 已知问题:新版 chrome 可能无法安装。
  2. 安装油猴脚本并刷新 Emby 页面。发布页
  3. 方案三选一,下载并解压 .zip 到任意英文路径。 发布页
    • 推荐: etlp-mpv-py-embed-win32.zip (mpv 播放器 | Windows only | 快捷键见 FAQ)
      无需修改配置文件,查看下方 .bat 运行方法。
    • etlp-python-embed-win32.zip (Windows only)
      修改配置文件:embyToLocalPlayer_config.ini 中的播放器路径,以及播放器选择。
    • embyToLocalPlayer.zip (Windows / Linux / macOS)
      安装 Python (勾选 add to path) 官网
      修改配置文件:embyToLocalPlayer_config.ini 中的播放器路径,以及播放器选择。

前置说明

  • 网页闪一下是自动关闭兼容流提示。
  • 播放器要退出触发回传进度。
  • 日志出现 serving at 127.0.0.1:58000 为服务启动成功。
  • 碰到问题先参考下方相关 FAQ,没按要求反馈会忽略。

Windows

  1. 双击 embyToLocalPlayer_debug.bat
  2. 若无报错,按 1(不要关闭窗口),然后网页播放测试。(点击原来的播放按钮就可以)
  3. 按 2 则创建开机启动项并后台运行。(隐藏窗口运行)
  • 问题排查:
    • Pot 提示渲染 Pin 失败,无法播放。解决方法在 FAQ。
    • 含 mpv 的版本若要修改为其他播放器,需要删除 mpv_embed 文件夹。
    • 若双击 .bat 就提示找不到 Python,
      或者播放器无法播放,请使用包含 mpv 的便携版测试。
    • 若自启失败,检查启动项是否被禁用:任务管理器 > 启动。
      .bat 按 3 查看开机文件夹里面embyToLocalPlayer.vbs是否被杀毒软件删了。
      若被删,可以自己创建 vbs,然后双击测试是否正常后台运行。 .vbs 模板:
      CreateObject("Wscript.Shell").Run """<Python所在文件夹>\python.exe"" ""<脚本所在文件夹>\embyToLocalPlayer.py""" , 0, True
      
    • 若 bat 或者 vbs 有无法解决的问题,可尝试使用 AutoHotkey 自启动解决方案。
    • 反馈前看下方相关 FAQ,没按要求反馈会忽略

FAQ 内容,以 GitHub 为准。
https://github.com/kjtsune/embyToLocalPlayer#faq

macOS / Linux

macOS / Linux

macOS

  • macOS 目前没有环境测试,无法提供支持。
  1. 刚才保存的文件夹 > 右击 > 新建位于文件夹的终端窗口 chmod +x *.command 回车。
  2. 双击 etlp_run.command, 若无报错,可播放测试。
  3. 开机自启(无窗口运行):
    1. 方案一:直接进入下一步,但估计只适用于 Monterey 12 及之前的老版本系统。
      方案二:在终端使用 Homebrew 安装 screen。
      brew install screen
      如果你没有安装 Homebrew,请先安装 Homebrew。
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
    2. 启动台 > 自动操作 > 文件 > 新建 > 应用程序 > 运行 Shell 脚本 >
      把 etlp_run.command(方案一)| etlp_run_via_screen.command(方案二) 文件拖入 > 点击运行后测试播放 > 文件 > 存储 > 取名并保存到应用程序。
    3. 启动台 > 刚才的应用 > 双击后台运行后再次播放测试。
    4. 系统偏好设置 > 用户与群组 > 登录项 > 添加刚才的应用。
    5. 如果 Monterey 12.6.6 状态栏有齿轮,把文件拖入的操作替换成写以下内容,注意更改cd目录为你保存的目录。
      cd ~/App/embyToLocalPlayer && nohup ./etlp_run.command > run.log 2&>1 &

Linux

  1. apt install python3-tk(没报错不装也行)

  2. 添加 etlp_run.command 执行权限,并用终端打开。

  3. 正常播放后,加入开机启动项(无窗口运行):

    • 图形界面: Debian_Xfce:设置 > 会话和启动 > 应用程序自启动。
    • systemd 服务自启参考。若失败请用图形界面的自启动。
    systemd service
    [Unit]
    Description=embyToLocalPlayer
    After=graphical-session.target
    
    [Service]
    ExecStart=/root/etlp/etlp_run.command
    ExecStartPre=/bin/bash -c "until loginctl show-session $(loginctl | grep $USER | awk '{print $1}') -p Type | grep -q -e 'x11\|wayland'; do sleep 1; done; sleep 2"
    TimeoutStartSec=infinity
    
    [Install]
    WantedBy=graphical-session.target
    
  • 推荐使用较新版本的 mpv: flatpak mpv:
    Flatpak: mpv config directory is ~/.var/app/io.mpv.Mpv/config/mpv
    Flatpak: mpv scripts directory is ~/.var/app/io.mpv.Mpv/config/mpv/scripts
    

FAQ

通用 FAQ

通用说明

  • Python 最低支持版本为 3.8。Windows 最低支持版本为 10。
  • 有时浏览器与 Emby 之间的 ws 链接会断开,造成回传进度失败假象。等待看看或手动刷新一下页面。
  • 部分域名及 Plex 域名有 dns 污染,若无法播放,修改系统 DNS 或使用代理。
  • 反馈群组在频道置顶,提问前先把 FAQ 看一遍,并按要求反馈。不含敏感数据不私聊。
    小更新会频道提醒,不过应该也没什么更新的了,反馈不需要关注频道。https://t.me/embyToLocalPlayer

如何切换模式

  • 在 Emby 页面点击浏览器油猴插件图标,会有菜单可供点击切换。
  • 脚本在当前服务器:启用(默认);禁用:当前域名不使用脚本。
  • 读取硬盘模式:关闭 > 调用本地播放器但使用服务器网络链接。(默认)
  • 读取硬盘模式:开启 > 调用本地播放器并转换服务器路径为本地文件地址。前提是本地有文件或挂载。
    在 .ini 里填好路径替换规则,服务端在本地则不用填。.bat 按 4 有辅助配置程序。
    出错可尝试设置:dev > path_check = yes 会检查文件是否存在,转换 NFC/NFD。兼容性更高,日志更清楚。(但会慢一点)
    如果还不行,反馈时,提供日志、配置文件、以及服务端媒体文件和客户端对应文件的完整路径。
  • 持久性缓存模式:只看配置文件,与油猴设置不冲突,不需要开启读取硬盘模式。

如何更新

  1. Windows: .bat 按 6
    Linux / macOS:在 .ini 所在的文件夹打开终端,运行 python3 utils/update.py
  2. 查看新旧配置的差异字段。embyToLocalPlayer_diff.ini
  • 油猴脚本有时也要更新。

如何反馈

  • 没按要求反馈会忽略。
  1. 参考 如何更新 ,更新到最新版后测试。
    Windows 用户换含 mpv 的便携版测试,并告知是否正常。
  2. 运行 debug.bat 选 1。
    macOS 或 Linux 运行 etlp_run.command 来代替。
  3. 至少测试两个不同电影/节目的视频。
  4. 截图或复制 .bat/.command 窗口中的日志。
    选中后回车即复制,日志需要包含启动后到出现问题的部分。或者直接提供文件夹下的 log.txt
  5. 说明碰到什么问题及怎么复现。
  6. [可选] 关闭模糊日志。 .ini > [dev] > mix_log = no
  7. 若调用失败(仍在浏览器里播放,或点击播放后 .bat 没有新增日志),反馈时提供在 Emby 页面点击浏览器油猴插件图标后的截图。
  8. 其他油猴脚本的问题,提供浏览器刷新页面后的截图、浏览器控制台完整日志,相关配置信息(如果有)。

字幕/音轨相关

  • Emby 里字幕/音轨选择无效。
    外挂字幕/音轨选择有效,内置字幕会被忽略,由播放器选择。
    视频文件的内置字幕当作外挂字幕处理会导致播放器语言设置失效。(外挂字幕最优先)
    正常播放器都可以设置语言优先顺序。

剧集播放列表(连续播放|多集回传)相关

  • 默认已启用,可在配置文件里 [playlist] 中修改。

  • 建议不要禁用,大部分功能与播放列表绑定,禁用会缺失一些功能。

  • 播放列表添加完成前最好不退出(大部分没事)

  • 特别说明:若是 Emby/Jellyfin 网页上的 全部播放/随机播放/播放列表 ,仅支持电影和音乐视频类型。

  • Windows:

    • mpv:
    • mpv.net:
    • vlc:
    • mpc: be: 播放列表条目超过10个可能会卡住,hc 没这问题。
    • pot: 若日志显示KeyError: 'stream.mkv',看下方 FAQ。
      pot: 下一集无法添加 http 外挂字幕时,会禁用播放列表。
      pot: 读盘模式可能和美化标题和混合S0的功能冲突,不过不影响使用。
  • macOS

    • mpv:
    • iina: 仅读盘模式支持并可回传
    • vlc: 下一集无法添加 http 外挂字幕时,会禁用播放列表。
  • Linux

    • mpv:
    • vlc: 下一集无法添加 http 外挂字幕时,会禁用播放列表。
播放器相关

mpv

mpv
  • 若碰到问题,换含 mpv 的便携版测试。
  • 还不行就换视频或者软解(mpv.conf只保留log-file 选项)并检查 mpv 日志。
    mpv_embed > portable_config > mpv_log.txt
    mpv.conf > log-file = <save path>
  • 弹幕插件推荐:
    https://github.com/Tony15246/uosc_danmaku
    https://github.com/Kosette/danmaku

mpv_embed

  • mpv.conf 是我个人使用的简易配置。
  • 相较原版 mpv,只修改了少部分快捷键和配置。
  • 想更新版本可点击 mpv_embed > updater.bat

mpv_embed 快捷键

mpv_embed 快捷键
  • 中文文档 https://hooke007.github.io/official_man/mpv.html#id4
  • 英文文档 https://mpv.io/manual/master/#keyboard-control
  • 文件位置:mpv_embed > portable_config > input.conf
…

mpv.net

  • 设置播放完自动关闭。不加载下个文件。(方便触发回传进度,.ini配置有播放列表选项)
    右击 > Settings > Playback > idle:no, auto-load-folder:no (大概是这样

PotPlayer

PotPlayer
  • 提示 渲染 Pin 失败 无法播放。或者日志提示 KeyError: 'stream.mkv'
    或者 pot stop, stop_sec=None 或者 请求的操作需要提升 解决方案:
    按以下依次修改,每次修改后尝试播放,还不行就无解,欢迎 PR。

    1. 初始化 PotPlayer 设置。
    2. 换 Pot 为 20240618 版本。
    3. 换 Pot 为 最新版本 版本。
    4. 本地用户查看通用 FAQ > 如何切换模式 使用读盘模式。
    5. 换 mpv 测试此否正常播放。 240618 版本下载链接。
      potplayer-1-7-22286.exe (v240618) | Scoop | winget
      sha256sum 66d03fc13f4949948890675cf62b839b704b542a34a13a180466f93be20d5bc6
  • 本地用户可考虑:MPC-HC 自带 LAV,同样支持 madVR MPCVR BFRC 等。
    网络用户或没有特殊需求的话,mpv 系的播放器综合体验较好。

  • [可选] 选项 > 播放 > 播放窗口尺寸:全屏

  • 配置/语言/其他 > 收尾处理 > 播放完当前后退出(触发回传进度)

  • 若使用 http 播放,可能提示地址关闭。Win8 32bit 碰到。
    解决方案:本地用户使用读盘模式,或者换 pot 便携版。
    安全性未知:PotPlayerPortable-220914.zip
    先打开 PotPlayerPortable.exe 一次,但播放用 C:\<path_to>\PotPlayerPortable\App\PotPlayer\PotPlayer.exe
    不然会要求管理员权限运行。

  • 读盘模式可能和美化标题和混合S0的功能冲突,不过不影响使用。(FAQ > 隐藏功能 有解决方案)

其他播放器

其他播放器

MPC:

  • 会自动开启 WebUI,系统防火墙提示的时候可以拒绝(不影响使用)。
  • 会自动开启 WebUI,建议仅允许从 localhost 访问: 查看 > 选项 > Web 界面:
    打勾 仅允许从 localhost 访问
  • MPC 播放 http 具有加载和拖动慢,视频总时长可能有误的缺点。
    以及点击关闭播放器后,进程可能残留在后台。
  • MPC 播放 http 无外挂字幕:
    MPC-HC 设置 > 回放 > 输出 > 字幕渲染器 > 内部字幕渲染器
    MPC-BE 设置 > 字幕 > 字幕渲染器 > 内部字幕渲染器

IINA

  • 播放完不完全退出会影响进度回传和静态管道名称配置。
    解决方法:设置 > 通用
    启用 没有打开的窗口时退出
    禁用 播放完成后保存窗口打开
  • 非读盘模式不支持播放列表。
bgm.tv / simkl / trakt.tv 存储记录

bgm.tv / simkl / trakt.tv 存储记录

通用 FAQ

  • Clash for Windows 用户:

    • 日志报错:SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:1129)'))
    • 解决方案:Clash > Settings > System Proxy > Specify Protocol > 启用。
  • 使用含 Python 的便携版用户无需安装依赖。其他用户需要安装:命令行终端运行,安装失败尝试在启用或禁用代理的环境来安装:
    python -m pip install requests
    或者:
    python -m pip install requests -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com

bangumi.tv(bgm.tv) 单向同步(点格子)

  • 缺点:
    1. 只能往 Bangumi 单向同步。
    2. 只在播放器正常关闭后,同步播放器已播放的(网页点击已播放不触发)。
    3. 只支持常规剧集,不支持剧场版等。
  • 使用说明:
    1. 访问并创建令牌 https://next.bgm.tv/demo/access-token:
      复制令牌到 ini 配置文件 [bangumi] 部分,access_token = 里
    2. ini 配置文件 [bangumi] 填写 enable_host user_name 这两项。
    3. 启动脚本,播放一集动漫,拖到最后,关闭播放器。看日志是否同步成功。
  • 常见问题:
    1. 8季或者300集以上的条目暂不支持。同时最多查找10次续集。
    2. 日志提示 Unauthorized 一般是令牌过期或者没填对,Windows 会自动弹出令牌生成页面。
    3. 集上映日期匹配方案:在常规搜索失败后采用,此时无视季和集数对应,只要 Emby bgm 集上映日期相差两天(含)内就匹配成功。
    4. 由于 bgm.tv 的 续集 不一定是下一季,导致第几季可能关联错误(经下面处理后概率低)。
      目前把 续集 里:集数大于3,同时第一集的序号小于2的 续集 当作下一季的开始。
      且只保留类型为 TV 的续集(类型在标题右侧灰字),跳过类型为 OVA 剧场版 WEB 等的。
      例外:如果第一季是 WEB,则续集不会跳过 WEB。
      如果同步的集序号小于12(不会是分批次放送),还会核查 Emby 里的季上映时间(一般是 TMDb 的时间)与 bgm.tv 的上映时间相差是否超过15天,来保证准确性。
      Plex 是核查集上映时间与 bgm.tv 的季上映时间相差是否超过180天,来保证准确性。
      如果还有其他特殊情况,可以反馈。
  • 使用命令行将在看列表的已完成条目标记为已观看。
    1. 在 etlp 所在文件夹打开命令行。
    2. 便携版用户运行:./python_embed/python.exe ./utils/bangumi_sync.py mark_played
    3. 其他用户运行:python utils/bangumi_sync.py mark_played

simkl 单向同步

  • 缺点:
    1. 只能往 simkl 单向同步。
    2. 只在播放器正常关闭后,同步播放器已播放的(网页点击已播放不触发)。
    3. 配置和使用都麻烦。
  • 使用说明:
    1. 点击访问:simkl dev 页面:
      创建 app,名字任意,Redirect uri 填写: http://localhost:58000/simkl_auth ,然后保存。
      已创建的 app 在 dev 页面底部能看到。
    2. ini 配置文件[simkl] 填写 enable_host client_id client_secret 这三项。
    3. 启动脚本,会自动跳验证页面。点击 Yes 按钮,稍等后,网页会显示 etlp: simkl auth success。
      etlp 目录下会自动生成 simkl_token.json
    4. 播放一个视频,拖到最后,关闭播放器。看日志是否同步成功。
  • 其他问题:
    1. 若想用 emby 本身的 simkl 插件,需要开启实时回传,插件有

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Pythonbangumiembyetlpiina

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言