import os
from openai import OpenAI
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
def parse_filename_with_deepseek(filename):
"""使用DeepSeek API解析文件名并生成INFUSE命名"""
prompt = (
f"请根据以下文件名结合IMDB生成符合INFUSE规范的命名,要求包含标题、年份、分辨率、版本(如果有)、音频和字幕信息。"
f"文件名: {filename}\n"
f"INFUSE命名格式示例: 《标题》(年份) [分辨率-编码类型][音频格式][字幕].扩展名\n"
f"请直接返回INFUSE命名,无需额外解释。"
)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "你是一个电影命名专家,擅长根据文件名生成符合INFUSE规范的命名。"},
{"role": "user", "content": prompt},
],
stream=False
)
return response.choices[0].message.content.strip()
def batch_rename_files(directory):
"""批量重命名文件夹中的文件"""
supported_extensions = (".mp4", ".mkv", ".avi", ".mov", ".flv", ".wmv")
for filename in os.listdir(directory):
if filename.lower().endswith(supported_extensions):
file_path = os.path.join(directory, filename)
try:
new_filename = parse_filename_with_deepseek(filename)
new_file_path = os.path.join(directory, new_filename)
os.rename(file_path, new_file_path)
print(f"重命名成功: {filename} -> {new_filename}")
except Exception as e:
print(f"重命名失败: {filename} ({e})")
directory = "/path/to/your/folder"
if os.path.isdir(directory):
batch_rename_files(directory)
else:
print(f"错误: 文件夹路径无效 {directory}")