解决PLEX不读取本地封面–批量删除视频自带封面tag

发布于 / 系统运维 / 0 条评论

问题现象:

文件结构:

root@NAS:/volume1/NASdata/Video/Anime/亡骸游戏# tree
.
├── fanart.jpg
├── poster.jpg
├── season01-poster.jpg
├── Season 1
│   ├── logo.png
│   ├── season.nfo
│   ├── 亡骸游戏 - S01E01 - 第1集.mp4
│   ├── 亡骸游戏 - S01E01 - 第1集.nfo
│   ├── 亡骸游戏 - S01E01 - 第1集-thumb.jpg
│   ├── 亡骸游戏 - S01E02 - 第2集.mp4
│   ├── 亡骸游戏 - S01E02 - 第2集.nfo
│   ├── 亡骸游戏 - S01E02 - 第2集-thumb.jpg
│   ├── 亡骸游戏 - S01E03 - 第3集.mp4
│   ├── 亡骸游戏 - S01E03 - 第3集.nfo
│   ├── 亡骸游戏 - S01E03 - 第3集-thumb.jpg
│   ├── 亡骸游戏 - S01E04 - 第4集.mp4
│   ├── 亡骸游戏 - S01E04 - 第4集.nfo
│   ├── 亡骸游戏 - S01E04 - 第4集-thumb.jpg
│   ├── 亡骸游戏 - S01E05 - 第5集.mp4
│   ├── 亡骸游戏 - S01E05 - 第5集.nfo
│   ├── 亡骸游戏 - S01E05 - 第5集-thumb.jpg
│   ├── 亡骸游戏 - S01E06 - 第6集.mp4
│   ├── 亡骸游戏 - S01E06 - 第6集.nfo
│   ├── 亡骸游戏 - S01E06 - 第6集-thumb.jpg
│   ├── 亡骸游戏 - S01E07 - 第7集.mp4
│   ├── 亡骸游戏 - S01E07 - 第7集.nfo
│   ├── 亡骸游戏 - S01E07 - 第7集-thumb.jpg
│   ├── 亡骸游戏 - S01E08 - 第8集.mp4
│   ├── 亡骸游戏 - S01E08 - 第8集.nfo
│   └── 亡骸游戏 - S01E08 - 第8集-thumb.jpg
├── thumb.png
└── tvshow.nfo

在PLEX论坛询问后得知,这是因为Plex默认优先读取视频文件里的tag 而不是本地封面图片

知道了问题,那就着手解决吧!python中的mutagen库就能帮我们删除封面tag,具体怎么部署python请自行百度

先安装库:

pip install mutagen

写入脚本:

nano test.py

里面有些参数需要自己指定,比如我指定了只编辑1天内的文件,只编辑mp4文件,路径也是要自己改的,因为我是每天定时执行两次

import os
import time
from mutagen.mp4 import MP4

def remove_mp4_cover(directory):
    # 获取当前时间戳
    current_time = time.time()

    # 遍历目录下的所有文件和子目录
    for root, dirs, files in os.walk(directory):
        for file in files:
            # 检查文件扩展名是否为MP4
            if file.endswith('.mp4'):
                # 构建文件的完整路径
                filepath = os.path.join(root, file)

                # 获取文件的创建时间戳
                file_creation_time = os.stat(filepath).st_mtime

                # 计算文件创建时间与当前时间的差值
                time_difference = current_time - file_creation_time

                # 判断文件是否在1天内创建
                if time_difference <= 1 * 24 * 60 * 60:  # 30 days * 24 hours * 60 minutes * 60 seconds
                    # 加载MP4文件
                    mp4 = MP4(filepath)

                    # 删除封面元数据
                    if 'covr' in mp4:
                        del mp4['covr']

                    # 保存修改后的MP4文件
                    mp4.save()

# 调用函数删除封面
remove_mp4_cover('/volume1/NASdata/Video/Anime/')

效果:

有封面:

执行脚本后,封面已删除:

PLEX显示也调用了本地封面图片:

脚本执行前:

执行后:

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
转载原创文章请注明,转载自: 沧水的博客 » 解决PLEX不读取本地封面–批量删除视频自带封面tag
Not Comment Found