#!/usr/bin/env python3
import os
import html
# ====================== 配置区,只需要修改这里 ======================
MEDIA_ROOT = "/home/fred/PT/Movies"
OVERWRITE_EXIST_NFO = True # True: 强制重写已存在的nfo,更新标题
VIDEO_EXT = {".mkv", ".mp4", ".m4v", ".webm", ".mov", ".avi", ".flv", ".wmv"}
FOLLOW_SYMLINK = False
# ====================================================================
def main():
total_videos = 0
created = 0
overwrote = 0
print(f"开始递归扫描根目录:{MEDIA_ROOT}")
print(f"强制重写已有nfo:{OVERWRITE_EXIST_NFO}")
print("-"*60)
for dirpath, _, filenames in os.walk(MEDIA_ROOT, followlinks=FOLLOW_SYMLINK):
print(f"\n【正在扫描目录】{dirpath}")
for fname in filenames:
file_base, ext = os.path.splitext(fname)
ext_lower = ext.lower()
if ext_lower not in VIDEO_EXT:
continue
total_videos += 1
nfo_path = os.path.join(dirpath, f"{file_base}.nfo")
safe_title = html.escape(file_base)
nfo_content = f"""
{safe_title}
true
"""
if os.path.exists(nfo_path):
# 覆盖已有nfo
with open(nfo_path, "w", encoding="utf-8") as f:
f.write(nfo_content)
print(f" [覆盖] {fname}")
overwrote +=1
else:
# 新建nfo
with open(nfo_path, "w", encoding="utf-8") as f:
f.write(nfo_content)
print(f" [新建] {fname}")
created +=1
print("\n" + "="*60)
print("===== 任务完成 =====")
print(f"扫描到视频总数: {total_videos}")
print(f"新建nfo数量: {created}")
print(f"覆盖已有nfo: {overwrote}")
print("="*60)
if __name__ == "__main__":
if not os.path.isdir(MEDIA_ROOT):
print(f"错误:媒体根目录不存在 -> {MEDIA_ROOT}")
else:
main()