Как я могу читать и записывать метаданные "комментариев" из файлов .mp4 с python? - PullRequest
0 голосов
/ 27 апреля 2020

Я пытаюсь добавить комментарии к моим видеофайлам на основе данных, которые они создали (например, возраст детей в видео), если у них еще нет комментариев. Я хочу прочитать раздел комментариев в описании файла каждого файла, чтобы убедиться, что он пуст, а затем добавить комментарий в зависимости от времени создания файла. Достаточно просто сделать это вручную в проводнике windows (щелкните правой кнопкой мыши -> свойства-> Подробности-> Раздел описания-> Комментарии).

Я знаю, как получить некоторые метаданные из большинства файлов со stat (), например дата создания, но мне не удалось добраться до разделов комментариев файлов .mp4.

from pathlib import Path

testDir = r"C:\temp\test"
current_dir = Path(testDir)

for current_file in current_dir.iterdir():
    info = current_file.stat()
    print(info.st_mtime)
    print(info.comments) # This just throws an 'os.stat_result' object has no attribute 'comments' error

1 Ответ

0 голосов
/ 03 мая 2020

Спасибо @StarGeek за то, что он указал мне правильное направление, так как оказалось, что Exiftool он предложил использовать оболочку python с именем PyExifTool , которая позволяет управлять ExifTool с помощью python. Я делюсь своим решением здесь на тот случай, если кому-то еще будет интересно:

import exiftool

vidFile = r"C:\temp\test\2019-09-02 19.52.14.mp4"
with exiftool.ExifTool() as et:
    vidComment = et.get_tag("comment", vidFile)
    if vidComment is None or vidComment == "":
        newComment = '-comment="written by Pyexiftool"'
        et.execute(bytes(newComment, 'utf-8'), bytes(vidFile,"utf-8"))

Необходимо загрузить Exiftool, переименовать в exiftool (без параметров) и в файл .exe, указанный в Path. PyExiftool должен присутствовать и импортироваться. Одно предупреждение: при первом переименовании комментарий не будет отображаться в Windows Explorer (не знаю о Mac / Linux), даже если он присутствует в метаданных. Я не знаю, почему это так. Однако после ручной установки комментария к чему-либо он может быть изменен exiftool и отображаться в Windows Explorer. Достаточно хорошо для меня на данный момент, я могу выбрать и изменить комментарии всех файлов в папке с помощью одной ручной операции, а затем позволить python изменить комментарии на что-то полезное.

...