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

通过API调用删除Jellyfin播放列表歌曲失败问题求助

Jellyfin API删除播放列表歌曲失败问题解决

问题现象

  • 调用DELETE API删除播放列表歌曲:https://rxyzm.ml/Playlists/<playlistID>/Items?entryIds=<songId>&api_key=<apiKey>,返回状态码204,但歌曲未从播放列表移除
  • 浏览器手动删除歌曲的请求参数(除无api_key外)与API调用一致,可成功删除
  • 手动编辑/var/lib/jellyfin/data/playlists目录下的playlist.xml文件,修改无效果
  • 其他API调用(如删除播放列表)正常,Wireshark确认Jellyfin已接收DELETE请求

环境信息

  • Jellyfin版本:10.8.8
  • 操作系统:Linux,架构Arm64

相关错误日志

[2022-12-30 10:13:39.960 +00:00] [ERR] 元数据保存器出错
System.IO.IOException: 进程无法访问文件 '/var/lib/jellyfin/data/playlists/Actief/playlist.xml',因为该文件正由另一进程使用。
在 Microsoft.Win32.SafeHandles.SafeFileHandle.Init(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
在 Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
在 System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
在 System.IO.Strategies.FileStreamHelpers.ChooseStrategy(FileStream fileStream, String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, Int64 preallocationSize)
在 System.IO.FileStream..ctor(String path, FileStreamOptions options)
在 MediaBrowser.LocalMetadata.Savers.BaseXmlSaver.SaveAsync(BaseItem item, CancellationToken cancellationToken)
在 MediaBrowser.Providers.Manager.ProviderManager.SaveMetadataAsync(BaseItem item, ItemUpdateType updateType, IEnumerable`1 savers)

问题根源

日志明确显示playlist.xml文件被其他进程占用,导致Jellyfin无法保存播放列表的变更——API请求被服务器接收并返回成功状态,但实际修改无法写入文件,最终导致歌曲未被移除;手动编辑文件也因同样的占用问题失效。

解决步骤

  1. 重启Jellyfin服务释放文件锁

    sudo systemctl stop jellyfin
    sudo systemctl start jellyfin
    

    重启后重新调用删除歌曲的API测试。

  2. 定位并终止占用文件的进程
    使用lsof工具查找占用目标文件的进程:

    sudo lsof /var/lib/jellyfin/data/playlists/Actief/playlist.xml
    

    根据输出中的PID,使用kill命令终止对应进程(注意确认进程非系统关键进程):

    sudo kill <PID>
    
  3. 修复目录与文件权限
    确保Jellyfin用户对播放列表目录拥有完整读写权限:

    sudo chown -R jellyfin:jellyfin /var/lib/jellyfin/data/playlists
    sudo chmod -R 755 /var/lib/jellyfin/data/playlists
    
  4. 验证API调用细节

    • 确认entryIds参数格式正确(单首歌曲直接传ID,多首用逗号分隔)
    • 尝试移除api_key参数调用(手动操作无api_key可成功,需确认API权限配置是否存在冲突)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 06:20:40