修复恢复 Whatsapp 备份后 Whatsapp Exif 创建日期错误的问题

Mr.*_*eep 6 python exif whatsapp

恢复我的 Whatsapp 备份后,我遇到了问题,图像创建日期设置为当前日期。这导致了 android 库的混乱。

Mr.*_*eep 3

这里有一个解析器根据文件名设置图像和视频文件的创建日期。源代码是用python编写的。

第一部分归功于 Joachim Holwech。谢谢。

from datetime import datetime
import piexif

import os
import time

folder = './'

def get_datetime(filename):
    date_str = filename.split('-')[1]
    return datetime.strptime(date_str, '%Y%m%d')

def get_date(filename):
    date_str = filename.split('-')[1]
    return datetime.strptime(date_str, '%Y%m%d').strftime("%Y:%m:%d %H:%M:%S")


allowedFileEndings = ['mp4','jpg','3gp','jpeg']

filenames = [fn for fn in os.listdir(folder) if fn.split('.')[-1] in allowedFileEndings]

l = len(filenames)
print(l)

for i, filename in enumerate(filenames):

    if filename.endswith('mp4') or filename.endswith('3gp'):
        date = get_datetime(filename)
        modTime = time.mktime(date.timetuple())
        os.utime(folder + filename, (modTime, modTime))

    elif filename.endswith('jpg') or filename.endswith('jpeg'):
        exif_dict = {'Exif': {piexif.ExifIFD.DateTimeOriginal: get_date(filename)}}
        exif_bytes = piexif.dump(exif_dict)
        piexif.insert(exif_bytes, folder + filename)

    print('{}: {}/{}'.format(filename, i + 1, l))
print('\nDone!')
``

Src.: https://holwech.github.io//blog/Fixing-WhatsApp-Backup/
Run Code Online (Sandbox Code Playgroud)