You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plex批量添加未看剧集到播放列表代码误加已看剧集问题求助

代码问题排查

你的代码存在以下核心逻辑错误:

  • 全局episode变量未按番剧重置:处理完前一个番剧后episode的值会保留,处理下一个番剧时直接从该序号开始取集,会跳过未观看的前序集数,也可能触发索引越界被异常捕获吞掉。
  • 循环逻辑错误:episodes()[episode]返回的是单个单集对象,对其做遍历拿到的不是剧集,而是单集对象的属性,你追加到列表的内容根本不是预期的单集资源。
  • 观看状态判断逻辑写反:当前代码逻辑是如果当前集已观看,才把它加入列表,完全和需求相反。
  • 无差别异常捕获:所有运行时错误(包括索引越界、番剧对象获取失败)都会被直接跳过,你完全感知不到逻辑执行中的问题,自然无法定位错误。
  • 冗余接口调用易出错:x本身就是search(unwatched=True)返回的番剧对象,不需要再通过标题重新拉取番剧数据,重复拉取如果存在同名番剧还会拿错对象。

修正后代码

from plexapi.server import PlexServer
baseurl = 'http://0.0.0.0:0000/'
token = '0000000000000'
plex = PlexServer(baseurl, token)

playlist_items = []
# 遍历所有未看完的番剧
for show in plex.library.section('Anime').search(unwatched=True):
    # 每部番剧单独从第1集开始遍历,找到第一个未观看的就加入列表
    for episode in show.episodes():
        if not episode.isWatched:
            playlist_items.append(episode)
            # 每部番只取第一个未观看的集数,符合你要的 番X第1集、番Z第1集 的排序规则
            break

plex.playlist('Anime Playlist').addItems(playlist_items)

如果需要调整为每部番取所有未观看的集数按顺序加入,删除代码里的break即可。

内容的提问来源于stack exchange,提问作者Baffometo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 14:45:03