让gpt帮我写代码-jellyfin媒体库连续剧命名格式重命名python脚本

一直用jellyfin,但是连续剧老乱七八糟的,查了一下jellyfin的命名规则,然后就像写个重命名程序自动更名所有剧集格式,但是代码是写不来的,但是咋有gpt啊,安排。

jellyfin媒体库怎么给文件命名才会让连续剧自动分在一组中

让gpt帮我写代码-jellyfin媒体库连续剧命名格式重命名python脚本

Jellyfin媒体库需要使用特定的文件命名规则来自动识别并分组连续剧。具体来说,文件名应该采用以下格式:

plaintextCopy codeShowName.SXXEXX.EpisodeTitle.ext

其中,ShowName是连续剧的名称,SXXEYY代表季数和集数,EpisodeTitle是该集的名称,ext是文件扩展名。 例如,如果你有一部名为“The Big Bang Theory”的连续剧,第一季第一集的文件名应该是:

plaintextCopy codeThe Big Bang Theory.S01E01.Pilot.mp4

如果你的文件命名符合这个规则,Jellyfin媒体库就能够自动将它们分组,并以连续剧的形式呈现出来。

让gpt帮我写代码-jellyfin媒体库连续剧命名格式重命名python脚本

请帮我以jellyfin媒体库命名格式利用python写一个更名代码程序,我的默认文件名为“剧集名”+“第几集”+“文件格式”的样式,例如:“在下李佑第16集.mp4”,现在请用python将它们自动更名为jellfin能识别的文件名格式。

让gpt帮我写代码-jellyfin媒体库连续剧命名格式重命名python脚本

好的,以下是一个Python程序示例,可以将你的默认文件名转换为Jellyfin媒体库识别的命名格式:

pythonCopy codeimport os
# 定义文件路径和新的文件名格式
folder_path = "/path/to/folder"# 文件夹路径
new_name_format = "{show_name}.S{season_num:02d}E{episode_num:02d}.{episode_title}.{ext}"# 新的文件名格式# 遍历文件夹内的所有文件并重命名for file_name in os.listdir(folder_path):
    # 判断文件是否为视频文件if file_name.endswith(".mp4") or file_name.endswith(".mkv"):
        # 解析默认文件名,提取剧集名、季数和集数
        file_name_parts = file_name.split("第")
        show_name = file_name_parts[0].strip()  # 剧集名
        episode_num = int(file_name_parts[1].split("集")[0])  # 集数# 构造新的文件名
        new_name = new_name_format.format(show_name=show_name, season_num=1, episode_num=episode_num, episode_title="", ext="mp4")
        # 重命名文件
        os.rename(os.path.join(folder_path, file_name), os.path.join(folder_path, new_name))

请将代码中的folder_path变量替换为你要重命名文件所在的文件夹路径,然后运行程序即可。该程序会遍历文件夹内的所有视频文件,并将它们重命名为Jellyfin媒体库能够识别的命名格式,其中季数默认为1,集数从文件名中解析得到,剧集名称和集数之间没有空格,文件扩展名默认为mp4。如果你的文件名格式有所不同,可以根据需要修改代码中的变量和格式字符串。

让gpt帮我写代码-jellyfin媒体库连续剧命名格式重命名python脚本

我不想填写“folder_path”变量,能否直接为我设置该变量为python所处的文件夹路径

让gpt帮我写代码-jellyfin媒体库连续剧命名格式重命名python脚本

当你运行 Python 脚本时,可以使用 os.path.dirname(__file__) 取得该 Python 文件所在的文件夹路径,因此你可以将 folder_path 变量初始化为该路径。以下是修改后的 Python 代码:

pythonCopy codeimport os
# 定义文件路径和新的文件名格式
folder_path = os.path.dirname(__file__)  # 使用该 Python 文件所在的文件夹路径作为文件路径
new_name_format = "{show_name}.S{season_num:02d}E{episode_num:02d}.{episode_title}.{ext}"# 新的文件名格式# 遍历文件夹内的所有文件并重命名for file_name in os.listdir(folder_path):
    # 判断文件是否为视频文件if file_name.endswith(".mp4") or file_name.endswith(".mkv"):
        # 解析默认文件名,提取剧集名、季数和集数
        file_name_parts = file_name.split("第")
        show_name = file_name_parts[0].strip()  # 剧集名
        episode_num = int(file_name_parts[1].split("集")[0])  # 集数# 构造新的文件名
        new_name = new_name_format.format(show_name=show_name, season_num=1, episode_num=episode_num, episode_title="", ext="mp4")
        # 重命名文件
        os.rename(os.path.join(folder_path, file_name), os.path.join(folder_path, new_name))

这段代码会将 folder_path 设置为该 Python 文件所在的文件夹路径,以便遍历该文件夹内的所有视频文件并重命名它们。

让gpt帮我写代码-jellyfin媒体库连续剧命名格式重命名python脚本

现在增加一些过滤条件,第一,如果不存在:“在下李佑第16集.mp4”这种格式的文件直接跳过,结束程序。第二,增加切片关键字“篇”

让gpt帮我写代码-jellyfin媒体库连续剧命名格式重命名python脚本

好的,以下是修改后的 Python 代码,它会增加两个过滤条件:如果不存在类似“在下李佑第16集.mp4”这种格式的文件,程序直接跳过并结束;增加切片关键字“篇”来区分其他类型的视频文件,例如电影等,只处理连续剧。请注意,为了实现新的过滤条件,我们需要对文件名进行更复杂的解析和过滤,代码会相应地变得更加复杂。以下是修改后的 Python 代码:

pythonCopy codeimport os
# 定义文件路径和新的文件名格式
folder_path = os.path.dirname(__file__)  # 使用该 Python 文件所在的文件夹路径作为文件路径
new_name_format = "{show_name}.S{season_num:02d}E{episode_num:02d}.{episode_title}.{ext}"# 新的文件名格式# 遍历文件夹内的所有文件并重命名
files_to_rename = []
for file_name in os.listdir(folder_path):
    # 判断文件是否为视频文件,并且是否符合命名规则if (file_name.endswith(".mp4") or file_name.endswith(".mkv")) and"第"in file_name and ("篇"in file_name or"集"in file_name):
        # 解析默认文件名,提取剧集名、季数和集数
        file_name_parts = file_name.split("第")
        show_name = file_name_parts[0].strip()  # 剧集名if"篇"in file_name_parts[1]:
            # 如果是“篇”,提取季数和集数
            season_num = 1
            episode_num = int(file_name_parts[1].split("篇")[0])
            episode_title = file_name_parts[1].split("篇")[1].split(".")[0].strip()
        else:
            # 如果是“集”,提取季数和集数
            season_num = 1
            episode_num = int(file_name_parts[1].split("集")[0])
            episode_title = file_name_parts[1].split("集")[1].split(".")[0].strip()
        # 构造新的文件名
        new_name = new_name_format.format(show_name=show_name, season_num=season_num, episode_num=episode_num, episode_title=episode_title, ext="mp4")
        # 添加到待重命名文件列表中
        files_to_rename.append((file_name, new_name))
# 判断是否有符合命名规则的视频文件iflen(files_to_rename) == 0:
    print("No files to rename.")
else:
    # 遍历待重命名文件列表并重命名for file_name, new_name in files_to_rename:
        print(f"Renaming {file_name} to {new_name}...")
        os.rename(os.path.join(folder_path, file_name), os.path.join(folder_path, new_name))
    print("All files renamed successfully.")

这段代码会遍历指定文件夹内的所有视频文件,并按照指定的命名格式重命名它们。如果不存在符合命名规则的视频文件,程序会直接跳过并结束。如果存在符合命名规则的视频文件,程序会将它们重命名为Jellyfin媒体库能够识别的文件名格式,并输出重命名的过程和结果。请注意,为了实现新的过滤条件,我们需要对文件名进行更复杂的解析和过滤,代码会相应地变得更加复杂。

本站所有资源收集自网络,仅供学习使用,如有侵权请联系删除。未经允许不得转载:CDR平面设计软件交流小站 » 让gpt帮我写代码-jellyfin媒体库连续剧命名格式重命名python脚本
分享到:
赞(0) 打赏
0 0 投票数
文章评分
订阅评论
提醒

0 评论
内联反馈
查看所有评论

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

0
希望看到您的想法,请您发表评论x