About Jasper
Jasper imports your Instagram photos to Grain.social while preserving original timestamps.
How it works
- 1 Export
Download your Instagram data as JSON from their download page.
- 2 Upload
Drag your ZIP file or extracted folder into the import tool.
- 3 Authenticate
Sign in with your AT Protocol identity via OAuth.
- 4 Import
Photos are uploaded directly to Grain with original timestamps.
Privacy
Everything runs in your browser. Your Instagram export and photos are processed locally and uploaded directly to your own Grain account via your PDS. No data is sent to any intermediate server.
What's imported
- Photos (JPEG, PNG, WebP, GIF)
- Original timestamps
- Captions (as alt text)
- Carousel posts (multiple photos)
Not imported: Videos, Stories, or Reels (not supported by Grain yet).
Getting your Instagram export
- 1
- 2
Request a download of your information
- 3
Select "Some of your information" → "Posts" and "Archived posts"
- 4
Choose JSON format and download the ZIP file
OAuth Scope
Jasper requests minimal permissions:
atproto blob:*/* repo:social.grain.photo This allows uploading photos as blobs and writing to Grain's photo collection only. No broad permissions.
Source
Jasper is open source: github.com/ewanc26/pkgs