Exiforia is a CLI tool that adds exif data back to your photos exported from Facebook, Instagram, and Snapchat.
When you export your photos from Facebook, Instagram, and Snapchat, the exif data on your photos will be missing. This is a problem because when you import those photos into another photo management software, the order of your photos will not be correct. This tool will automatically add back the exif data on your photos, enabling easy importing.
Install bun, clone this repository, then install the dependencies
git clone https://github.com/AlanMorel/exiforia.gitcd exiforiabun install-
Export your Facebook data using the Facebook Data Export Tool. Make sure to select your photos and use the JSON format.
-
Create a
apps/facebook/input/albumsfolder and put your album data JSON in it.
For example, a 0.json file might look like this:
{
"name": "Cover photos",
"photos": [
{
"uri": "your_facebook_activity/posts/media/id/filename.jpg",
"creation_timestamp": 1000000000,
"media_metadata": {
"photo_metadata": {
"exif_data": [
{
"upload_ip": "xx.xx.xx.xx"
}
]
}
},
"title": "Cover photos",
"backup_uri": "https://facebook.com/"
},
],
"cover_photo": {
"uri": "https://facebook.com/",
"creation_timestamp": 1000000000,
"media_metadata": {
"photo_metadata": {
"exif_data": [
{
"upload_ip": "xx.xx.xx.xx"
}
]
}
},
"title": "Cover photos",
"backup_uri": "https://facebook.com/"
},
"last_modified_timestamp": 1000000000,
"description": ""
}-
Create a
apps/facebook/input/your-photosfolder and put your photos in it. -
Run the script to update your Facebook photos:
bun exiforia # then select Facebookor
bun facebookThe output will be in the apps/facebook/output/your-photos folder.
-
Export your Instagram data using the Instagram Data Export Tool.
-
Create a
apps/instagram/inputfolder and put your photos in it, grouped by year and month. For example, like a202601folder.
Make sure this folder also contains a apps/instagram/input/posts_1.json file.
This looks like this:
[
{
"media": [
{
"uri": "media/posts/202601/filename.jpg",
"creation_timestamp": 1000000000,
"media_metadata": {
"camera_metadata": {
"has_camera_metadata": false
}
},
"title": "",
"cross_post_source": {
"source_app": "FB"
}
}
]
}
]- Run the script to update your Instagram photos:
bun exiforia # then select Instagramor
bun instagramThe output will be in the apps/instagram/output folder.
-
Export your Snapchat data using the export tool.
-
Create a
apps/snapchat/input/chat_mediaandapps/snapchat/input/memoriesfolder and put your chat media and memories in it. -
Run the script to update your Snapchat photos and videos:
bun exiforia # then select Snapchat Chat Media or Memoriesor
bun snapchat-chat-media
bun snapchat-memoriesThe output will be in the apps/snapchat/output/chat_media and apps/snapchat/output/memories folders.
You can also use the adhoc script to update the exif data of any number of photos and videos.
-
Create a
adhoc/inputfolder and put your photos and videos in it. -
Update the
newDatesobject with the new dates you want to apply to your photos and videos.
const newDates = {
"a.jpg": "2026:01:01 12:00:00"
};- Run the script to update your photos and videos:
bun exiforia # then select Adhocor
bun adhocThe output will be in the adhoc/output folder.
This code is licensed under the AGPL-3.0 license.
