首页
/ PlexTraktSync项目中的Scrobble暂停功能失效问题分析

PlexTraktSync项目中的Scrobble暂停功能失效问题分析

2025-07-07 22:23:27作者:管翌锬

问题概述

PlexTraktSync是一个将Plex媒体服务器与Trakt.tv观影记录服务同步的开源工具。近期版本(0.28.14及更高)中出现了一个功能性问题:当用户在Plex中暂停或停止播放媒体内容时,Trakt.tv上的scrobble(观影记录)不会相应暂停,而是会继续记录直到剧集时长结束。

技术背景

Scrobble是Trakt.tv的核心功能之一,它允许用户实时记录观看进度。PlexTraktSync通过监听Plex的播放事件来实现这一功能:

  1. 当用户开始播放时,发送"开始scrobble"请求
  2. 播放过程中定期更新进度
  3. 当用户暂停/停止时,应发送"暂停scrobble"请求
  4. 当观看进度超过阈值(默认90%)时,标记为已观看

问题根源

在0.28.14版本中,代码变更将scrobble_pause方法从调用scrobbler.pause(progress)改为调用scrobbler.update(progress)。这一改动导致暂停事件被错误地处理为进度更新事件,而非真正的暂停事件。

影响范围

该问题影响所有使用0.28.14及以上版本的用户,表现为:

  • 暂停播放时Trakt.tv上的记录不会停止
  • 未达到观看阈值的停止播放不会被正确记录
  • 已完成的观看记录(超过阈值)不受影响

解决方案

目前有两种临时解决方案:

  1. 降级到0.28.13或更早版本
  2. 手动修改容器中的TraktScrobbleWorker.py文件,将scrobble_pause方法恢复为调用pause而非update

长期解决方案需要等待官方修复该问题并发布新版本。

技术细节

正确的实现应区分三种播放状态:

  1. 开始播放:初始化scrobble记录
  2. 进度更新:定期发送当前播放进度
  3. 暂停/停止:根据当前进度决定是暂停记录还是标记为已观看

暂停逻辑应检查观看进度是否达到配置的阈值(scrobble_threshold),未达到则发送暂停事件,达到则发送观看完成事件。

用户建议

对于依赖准确观影记录的用户,建议:

  1. 暂时使用0.28.13版本
  2. 关注项目更新,及时升级修复后的版本
  3. 检查Trakt.tv上的记录准确性,必要时手动修正

该问题虽然不影响核心同步功能,但对于实时记录观影习惯的用户体验有较大影响,建议重视并及时处理。

登录后查看全文
热门项目推荐
相关项目推荐