21
2024
02

MP4 MD5 Modifier

import tkinter as tk

from tkinter import filedialog, messagebox

import os

import hashlib

import random

import shutil


def calculate_md5(file_path):

    hash_md5 = hashlib.md5()

    with open(file_path, "rb") as f:

        for chunk in iter(lambda: f.read(4096), b""):

            hash_md5.update(chunk)

    return hash_md5.hexdigest()


def modify_mp4(file_path):

    with open(file_path, "ab") as f:

        f.write(os.urandom(random.randint(100, 1000)))


def process_files(input_folder, output_folder, text_output):

    if not input_folder or not output_folder:

        messagebox.showerror("错误", "请选择输入及输出路径!")

        return

    if not os.path.exists(output_folder):

        os.makedirs(output_folder)

    text_output.delete('1.0', tk.END)

    for file_name in os.listdir(input_folder):

        if file_name.endswith(".mp4"):

            input_file_path = os.path.join(input_folder, file_name)

            output_file_path = os.path.join(output_folder, file_name)


            original_md5 = calculate_md5(input_file_path)

            modify_mp4(input_file_path)

            modified_md5 = calculate_md5(input_file_path)


            shutil.copyfile(input_file_path, output_file_path)


            text_output.insert(tk.END, f"文件名称: {file_name}\n")

            text_output.insert(tk.END, f"原本的MD5: {original_md5}\n")

            text_output.insert(tk.END, f"修改后的MD5: {modified_md5}\n")

            text_output.insert(tk.END, f"储存路径: {output_file_path}\n\n")

    messagebox.showinfo("操作完成", "所有视频文件的MD5已被修改完毕!")



    

root = tk.Tk()

root.title("MP4视频MD5_Calculator")


input_folder = ""

output_folder = ""


def open_folder():

    global input_folder

    input_folder = filedialog.askdirectory(title="选择放有视频的文件夹")

    input_folder_label.config(text=input_folder)


def select_output_folder():

    global output_folder

    output_folder = filedialog.askdirectory(title="选择输出视频的文件夹")

    output_folder_label.config(text=output_folder)


input_folder_btn = tk.Button(root, text="打开放有视频的文件夹", command=open_folder)

input_folder_btn.pack()


input_folder_label = tk.Label(root, text="Input Folder: ")

input_folder_label.pack()


output_folder_btn = tk.Button(root, text="选择输出视频的文件夹", command=select_output_folder)

output_folder_btn.pack()


output_folder_label = tk.Label(root, text="Output Folder: ")

output_folder_label.pack()


text_output = tk.Text(root)

text_output.pack()


process_btn = tk.Button(root, text="更改MP4视频文件MD5", command=lambda: process_files(input_folder, output_folder, text_output))

process_btn.pack()


root.mainloop()


« 上一篇

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。