Thoughts, ideas, ramblings. Covering a wide range of topics from Windows to Linux, Azure, hardware, software & more.

Move tagged photos from Facebook to Google Photos with correct Date & Timestamps

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:

  1. Download the Tagged Photo Exported for Facebook Chrome extension
  2. Run the extension as per the instructions, while you’re logged into Facebook.
  3. 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.
  4. 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) }
  5. Finally, download and run jhead to create the EXIF data in the photos based on the file date/time.
    .\jhead.exe -mkexif *.jpg
  6. 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.


13 Responses

  1. 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….

    1. 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

  2. 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
    + 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?

    1. Save your CSV file and JHead within your album_files.

      Open the powershell for album_files by hovering over the file folder, right clicking, then selecting “Open in terminal.”

      Copy and paste the command line in step 4. Hit enter.

      Type cd. Hit enter.

      Copy and paste the command line in step 5. Hit enter. You should see one command line after another generating, all of which say, “Modified:” followed by each picture’s name. Once that is complete, you will be able to hover over a photo and see the correct “date taken” displayed.

      Hope this helps!

    1. When you are on the HTML page of your photos (the web page with the header, “We found 500 photos.” or however many photos you had), click the “this guide” hyperlink at step 7.

      Doing so will open a web page with the header, “Add EXIF data to your photos.”

      Click the “Click here” hyperlink at step 1. That is your CSV file that you will want to save to your album_files.

  3. Sorry to be a pain.

    I have saved the jhead-master folder into album-folder, run the powershell command and then opened the command termal and run .\jhead.exe -mkexif *.jpg but I’m getting the error:

    C:\Users\XXXXX\Downloads\album_files>.\jhead.exe -mkexif *.jpg
    ‘.\jhead.exe’ is not recognized as an internal or external command,
    operable program or batch file.

    Can you help me to see what I am doing wrong?

  4. Hi, I’m a total newbie and don’t understand where to find ‘album_files’ – I have the folder with all the photos but nothing else in the folder I downloaded them to. I have the csv as well.

Leave a Reply

Your email address will not be published. Required fields are marked *