python编程

dpl播放列表生成——python编写

2025-01-31  本文已影响0人  zip11

potplay视频播放器的 播放列表文件 dpl文件
输入文件夹路径,搜索文件夹下的 mkv mp4视频文件,生成dpl播放列表文件


import os

class ImageToVideoConverter:
    def __init__(self, folder_path):
        """
        初始化类实例,接收文件夹路径作为参数。
        
        :param folder_path: 包含图片文件的文件夹路径
        """
        self.folder_path = folder_path
        self.image_files = []

    def get_image_files(self):
        """
        获取指定文件夹下的所有 .mkv 和 .mp4 文件,并存储在 image_files 列表中。
        """
        for file in os.listdir(self.folder_path):
            if file.lower().endswith(('.mkv', '.mp4')):
                self.image_files.append(file)

    def generate_video_paths(self):
        """
        将文件夹路径与文件名拼接,生成新的视频文件全路径。
        
        :return: 新的视频文件全路径列表
        """
        video_paths = []
        for file in self.image_files:
            video_path = os.path.join(self.folder_path, file)  # 拼接路径和文件名
            video_paths.append(video_path)
        return video_paths

    def create_potplayer_dpl_playlist(self, video_paths):
        """
        根据给定的视频文件路径列表,创建PotPlayer的DPL播放列表文件。
        
        :param video_paths: 视频文件全路径列表
        """
        # 生成输出文件名,使用文件夹路径中的最后一个文件夹名,并替换路径分隔符为下划线
        output_file = os.path.join(self.folder_path, f"{os.path.basename(self.folder_path).replace(os.sep, '_')}.dpl")
        
        # 打开输出文件并写入DPL格式的内容
        with open(output_file, 'w', encoding='utf-8') as f:
            f.write('DAUMPLAYLIST\n')  # 写入DPL文件头
            f.write(f'playname=\n')     # playname字段留空
            f.write('topindex=0\n')     # 当前播放项索引号为0
            f.write('saveplaypos=0\n')   # 不保存播放位置
            
            # 循环写入每个视频文件的路径和标题
            for i, path in enumerate(video_paths, start=1):
                f.write(f'{i}*file*{path}\n')  # 写入文件路径
                f.write(f'{i}*title*\n')       # 写入文件标题(留空)
        
        # 打印保存的文件路径
        print(f"PotPlayer播放列表已保存至:{output_file}")

def main():
    """
    主函数,执行整个流程。
    """
    # 提示用户输入文件夹路径
    folder_path = input("请输入文件夹路径:").strip()
    
    # 检查输入路径是否有效
    if not os.path.isdir(folder_path):
        print("错误:输入的路径不是一个有效的文件夹!")
        return

    # 创建ImageToVideoConverter实例
    converter = ImageToVideoConverter(folder_path)
    
    # 获取文件夹中的 .mkv 和 .mp4 文件
    converter.get_image_files()
    
    # 检查是否找到任何 .mkv 或 .mp4 文件
    if not converter.image_files:
        print("未找到任何 .mkv 或 .mp4 文件。")
        return
    
    # 生成视频文件路径列表
    video_paths = converter.generate_video_paths()
    
    # 创建PotPlayer的DPL播放列表文件
    converter.create_potplayer_dpl_playlist(video_paths)

if __name__ == "__main__":
    main()



上一篇 下一篇

猜你喜欢

热点阅读