Downloading an account archive is only the first step. The durable record is the relationship between the post, its media, its metadata, and the circumstances of the download.

A reliable workflow keeps the original package, records the metadata that lives outside the photo or video, preserves timestamps with their time-zone information, and verifies each media file after extraction.

Want ongoing coverage of captions and metadata instead of relying on a one-time export? SocialGuardian says it automatically backs up posts, photos, videos, reels/shorts, stories, captions, metadata, follower/following lists, and engagement. Set up a backup

What a social media archive can contain

There is no single universal social-media metadata format. Social activity streams accumulate context, multimedia objects, and engagement metadata, while posts, likes, replies, reposts, and comments can be represented differently by each platform according to the archival study.

An export may contain metadata in addition to post text. A useful preservation record should keep the following where the export provides it:

Record area Fields to retain
Content and media Post text, captions, and the original downloaded media
Identity and context Post URL, post ID, original-post timestamp, author username and display name, and author profile URL
Post details Engagement metrics, embedded location data, hashtags, mentions, and links
Capture record captured_at, source URL, who captured it, the method, a content hash, and the raw response where available

This separation matters because engagement values in an account download are snapshots. They may have a different value later on the platform as the archival study explains.

Choose the export deliberately and record its capture window

Use the platform's current export controls, and record what you requested before you download it.

Facebook

On Facebook's desktop flow, use: profile picture > Settings & privacy > Settings > Meta Account > Your information and permissions > Export your information > Create export. Select the profile and choose Export to device in Facebook's instructions.

Facebook lets you choose specific information, a date range, format, notification email, and media quality. Higher-quality videos make the export larger according to Facebook.

Instagram

On Instagram's desktop flow, use: More > Settings > Meta Account > Your information and permissions > Export your information > Create export. Select the profile, choose Next, and then select Export to device in Instagram's instructions.

Instagram also lets you customize the information, date range, format, notification email, and media quality. Meta says the export link may take up to 30 days to arrive, and a ready export is available for four days according to Instagram. Facebook likewise says a completed export is available for four days, and that exporting is password-protected according to Facebook.

Google Takeout

Google Takeout can export YouTube videos and other Google product data. Select the products, narrow a product's data if needed, and choose a delivery method and archive format according to Google.

Takeout offers ZIP or TGZ files, one-time or scheduled exports, and multiple archives when the selected maximum archive size is exceeded according to Google.

For every export, write down the account, selected date range, request time, archive creation or download time, selected format, and media-quality setting. Keep that capture window separate from the account's later state: Google warns that a data file may not include changes made between the download request and archive creation according to Google.

Keep the package, media, and metadata together

Keep the original downloaded ZIP or TGZ as the source package. Facebook's documentation describes an HTML export as a ZIP with an index HTML file and folders containing files such as images and videos, while JSON is machine-readable and can make transferring information easier according to Facebook.

Do not treat the media folder as the entire archive. Preserve the HTML index when you have an HTML export, preserve the JSON when you have a JSON export, and retain the original media. The preservation bundle described by curl-x includes the original media file, a timestamped page archive, a SHA-256 hash for each downloaded file, the post URL, access date, collector identity, and available network or server-response records according to curl-x.

Record the filename associated with each media item. If you need a descriptive filename, include the platform, account handle, and date; the documented pattern is twitter_username_20260811.mp4 as recommended by curl-x. Record that filename with the hash, source URL, and capture timestamp.

A one-time archive can leave you sorting separate media and metadata files. SocialGuardian says its automatic daily backups cover captions and metadata as well as posts, photos, videos, reels/shorts, and stories. Choose a profile to back up

Build a metadata record for every media item

Use a companion JSON record, often called a sidecar, with the related media. This is useful when the caption, post ID, timestamp, or other context is stored in JSON rather than inside the photo or video itself.

JSON is suited to this job: the W3C Activity Streams specification describes JSON as a human-friendly, machine-processable, extensible way to represent rich activity metadata according to the W3C. A practical sidecar or inventory record can use these fields when available:

  • The filename and media type.
  • The post URL and post ID.
  • The caption or post text.
  • The original-post timestamp.
  • The author username, display name, and profile URL.
  • Engagement metrics as the export's snapshot.
  • Location data, hashtags, mentions, and links.
  • captured_at, the collector, and the capture method.
  • The SHA-256 or other content hash.
  • The raw response when available.

SociaVault's example preservation record uses captured_at, source_url, captured_by, method, content_hash, and raw_response, then saves the record as JSON with a deterministic filename as shown in its preservation guide.

Keep separate fields for the post's original timestamp and captured_at. If a platform provides a time-zone offset or Z, retain it rather than silently converting the value to local time. W3C Activity Streams requires UTF-8 serialization and specifies date-time values with an explicit numeric offset or Z according to the W3C.

Verify the archive after extraction

Verification should answer two questions: did the expected file survive extraction, and can you connect it to the correct post record?

Use this sequence:

  1. Retain the original package and original media.
  2. Create an inventory with the filename, post URL, post ID, original-post timestamp, and any caption or JSON record available.
  3. Generate a SHA-256 hash for each downloaded media file.
  4. Record each hash beside the filename, source URL, and capture timestamp. A SHA-256 value acts as a file fingerprint: if the file is unchanged, the hash remains identical according to curl-x.
  5. Check that each media item has its corresponding metadata record, and record fields that the export did not provide as missing.
  6. Preserve the inventory, raw JSON or HTML, original media, and available capture records together.

Fixity is the computational check that a file remains what it claims to be. Preservation professionals use checksums for deposited files and can rerun them periodically as described in the archival study.

What an archive can and cannot prove

Use a screenshot as an additional visual reference, not as the complete metadata-oriented preservation bundle described above. For a stronger record, retain the original media, the metadata and context, the capture timestamp, the source URL, the access date, the collector identity, hashes, and available page, network, or server-response records according to curl-x.

A downloaded archive can preserve the platform's recorded post timestamp when that field is included. It should still be labeled with its own capture window: Google warns that the archive may not include changes made between the request and archive creation, and the archival study notes that engagement counts can change later according to Google and the archival study.

If media or metadata is missing, retain the original package and raw HTML or JSON, mark the missing field in the inventory, and record the export settings and capture window. That preserves the boundary between what the platform delivered and what was unavailable in the download.

A repeatable preservation checklist

Before downloading:

  • Record the account, platform, export request time, selected date range, format, and media quality.
  • Choose the platform's official export controls and note whether the result will be HTML, JSON, ZIP, or TGZ.
  • Record the export's availability window when the platform provides one.

After downloading:

  • Keep the original ZIP or TGZ and the original media.
  • Preserve the HTML index or JSON records that came with the export.
  • Create a filename and metadata inventory for every media item.
  • Keep captions, post IDs, original timestamps, profile details, and links with the related media.
  • Store a JSON sidecar or equivalent record when metadata is separate from the media.
  • Retain timestamp offsets or Z exactly as recorded.
  • Generate and record SHA-256 hashes with the filename, source URL, and capture timestamp.
  • Mark missing media or fields instead of presenting an unverified replacement.
  • Re-run checksum verification periodically.

For ongoing backups across the platforms listed by SocialGuardian, its homepage says the service covers Instagram, TikTok, YouTube, X, Facebook, LinkedIn, Twitch, and Pinterest and uses only a public @handle, with no password or login required according to SocialGuardian.

Keep your archive workflow focused on the content that matters: SocialGuardian says it backs up posts, media, captions, metadata, follower/following lists, and engagement automatically each day. Start with a public profile handle