Я использую exifread
(установлен с python3 -m pip install exifread
) для чтения EXIF-тегов с фотографий. Та же камера снимает видео с расширением .MOV
и полем Create Date
EXIF, которое я могу просматривать с помощью exiftool
(установлено с brew install exiftool
):
$ exiftool DSC_0002.MOV | grep Date
File Modification Date/Time : 2020:02:20 18:13:14+00:00
File Access Date/Time : 2020:03:07 08:11:57+00:00
File Inode Change Date/Time : 2020:03:04 11:24:51+00:00
Modify Date : 2020:02:20 18:13:21
Track Create Date : 2020:02:20 18:13:21
Track Modify Date : 2020:02:20 18:13:21
Media Create Date : 2020:02:20 18:13:21
Media Modify Date : 2020:02:20 18:13:21
Create Date : 2020:02:20 18:13:15
Date/Time Original : 2020:02:20 18:13:15
Date Display Format : Y/M/D
Я предполагаю, что exifread
был создан для фотографий, так как код ниже показывает пустой список тегов для этого видео:
import exifread
f = open("/path/to/file", "rb")
tags = exifread.process_file(f)
print(tags)
Одним из решений является вызов подпроцесса для exiftool
и анализ результата:
EXIFTOOL_DATE_TAG_VIDEOS = "Create Date"
EXIF_DATE_FORMAT = "%Y:%m:%d %H:%M:%S"
cmd = "exiftool '%s'" % filepath
output = subprocess.check_output(cmd, shell=True)
lines = output.decode("ascii").split("\n")
for l in lines:
if EXIFTOOL_DATE_TAG_VIDEOS in l:
datetime_str = l.split(" : ")[1]
print(datetime.datetime.strptime(datetime_str,
EXIF_DATE_FORMAT))
Как получить доступ к списку тегов EXIF без вызова подпроцесса?