问题现象:
文件结构:
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显示也调用了本地封面图片:
脚本执行前:
执行后: