The built-in Facebook “Data Transfer” service doesn’t include Tagged Photos. This sucks. As a workaround, you can use the following tools to migrate your photos with correct date/time stamps.
These instructions are Windows only, though I don’t see why similar tools wouldn’t work for other platforms:
- Download the Tagged Photo Exported for Facebook Chrome extension
- Run the extension as per the instructions, while you’re logged into Facebook.
- When you get to step 7, download the CSV metadata provided by the plugin. This contains the names of the files & the correct timestamps — put this into the
album_files
directory you saved earlier. - Run the following one-liner in PowerShell while in your
album_files
directory. This will transfer the Timestamp into the Photo filedata:Import-Csv exif.csv | ForEach-Object { $(Get-Item $_.Filename).LastWriteTime = [datetime]::ParseExact($_.Timestamp,'yyyy-MM-ddTHH:mm:ss.000Z',$null) }
- Finally, download and run jhead to create the EXIF data in the photos based on the file date/time.
.\jhead.exe -mkexif *.jpg
- Leave the developer a 5 star review :)
If you need any assistance with the instruction above, please comment. I’ll aim to keep them updated, though they may be moved into the plugin at some stage.
3 Responses
could you explain a bit more on how to run that jhead command?
After I downloaded the jhead application, when I click on the .exe, there just show nothing on my windows 10….
jhead can only be run through the command prompt, it doesn’t have a GUI. copy jhead.exe into album_files, which should already have the csv in it. then in command prompt, first type “cd ” to change your directory to album_files, THEN enter the “.\jhead.exe -mkexif *.jpg” from above to create the exif data
Hey there – having a bunch of trouble with this with the following errors poppin up:
Import-Csv : Could not find file ‘C:\Users\sianb\exif.csv’.
At line:1 char:1
+ Import-Csv exif.csv | ForEach-Object { $(Get-Item $_.Filename).LastWr …
+ ~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (:) [Import-Csv], FileNotFoundException
+ FullyQualifiedErrorId : FileOpenFailure,Microsoft.PowerShell.Commands.ImportCsvCommand
if I put the exif.csv in the C drive where the code wants it to be i get these errors for every photo:
Get-Item : Cannot find path ‘C:\Users\sianb\37475_410943203142_714710_n.jpg’ because it does not exist.
At line:1 char:42
+ Import-Csv exif.csv | ForEach-Object { $(Get-Item $_.Filename).LastWr …
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (C:\Users\sianb\…42_714710_n.jpg:String) [Get-Item], ItemNotFoundExcep
tion
+ FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetItemCommand
The property ‘LastWriteTime’ cannot be found on this object. Verify that the property exists and can be set.
At line:1 char:42
+ Import-Csv exif.csv | ForEach-Object { $(Get-Item $_.Filename).LastWr …
+ ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : PropertyNotFound
Anyone able to help?