diff --git a/mapillary_tools/sample_video.py b/mapillary_tools/sample_video.py index 5ad97b0b..12978718 100644 --- a/mapillary_tools/sample_video.py +++ b/mapillary_tools/sample_video.py @@ -354,7 +354,14 @@ def _sample_single_video_by_distance( f"interpolated time {interp.time} should match the video sample time {video_sample.exact_composition_time}" ) - timestamp = start_time + datetime.timedelta(seconds=interp.time) + # Try to use GPS epoch time if available (for timelapse videos) + gps_epoch_time = interp.get_gps_epoch_time() + if gps_epoch_time is not None: + timestamp = datetime.datetime.fromtimestamp( + gps_epoch_time, tz=datetime.timezone.utc + ) + else: + timestamp = start_time + datetime.timedelta(seconds=interp.time) exif_edit = ExifEdit(sample_paths[0]) exif_edit.add_date_time_original(timestamp) exif_edit.add_gps_datetime(timestamp)