DEV Community

ahmed isam
ahmed isam

Posted on Originally published at digital-footprint-health.shop

Moving Your X Archive to a New Device Without Losing Data

--
title: "Moving Your X Archive to a New Device Without Losing Data"
description: "Copying the archive file is the easy half. The whitelist, exclusion list and check baseline you built on the old machine travel separately. A six-step transfer, the path differences across systems, and a verification table for the new baseline."
tags: ["privacy", "twitter", "backup", "productivity"]

canonical_url: https://digital-footprint-health.shop/blog/x-archive-migration-new-device

Two laptops, one archive folder, and a decision most people make in about ten seconds: drag the ZIP across and get on with the day. Nothing breaks. Then the first check on the new machine returns a score that does not match the number you wrote down last month, and the whole setup suddenly looks unreliable.

Nothing was corrupted. The judgment you accumulated on the old machine simply did not travel with the file.

The archive is the cheap half

An X archive arrives as a single compressed package. Extract it and you get a data folder holding tweets.js, like.js, direct-messages.js and around twenty other files. Moving that folder is a filesystem operation, and filesystem work is the easy end of this task.

What stays behind:

  • The whitelist. Posts that must never be deleted, one link or ID per line.
  • The exclusion list. Items you already reviewed and cleared as false positives.
  • The baseline. Your last score plus the item counts per risk band.

All three are products of manual attention. Rebuilding any one of them costs an evening. They are also invisible during a move, because they live in a notes app, a spreadsheet, or the settings panel of whatever tool you were using.

What the ZIP carries and what you carry

This table explains most reports of a score that "changed by itself" after a move.

Carried by the ZIP Carried by you
Post text and timestamps Whitelist decisions
Like history Exclusion list entries
Direct message history Baseline score and band counts
Login and IP records Parser version you were on

The left column is data. The right column is judgment applied to that data. Only the left half moves when you copy a folder.

Before you unplug the old machine

Do not pull the drive yet, and do not start a cloud sync yet. The old device still holds full context, and this is the cheapest hour you will ever have for capturing it.

Copy those three artifacts into a folder of their own, separate from the ZIP. Mix them into the same directory and the move carries the package across while the configuration stays where it was.

If the old device is already gone, the order flips. Run a fresh check first to produce a baseline, then add back the whitelist entries you remember. Doing it the other way round means performing the manual review twice.

Where the package actually sits

There is no standard extraction path, because X hands you one file and the location is your choice. These are the usual landing spots.

System Typical location Size reference
Windows Downloads, or a folder you created, with a data subfolder inside 50MB to 400MB
macOS Extracted into Downloads, data subfolder one level down Same range
Android Download folder in internal storage Smaller, media often incomplete
iOS Files app, needs manual extraction Same as Android

Size differences come from media. The same account downloaded on a desktop produces a larger package than on a phone, because mobile exports frequently skip original image and video files. If you switched platforms, confirm the package you are carrying came from a desktop download, or the parsed count for image posts will come out short.

The move in six passes

  1. Verify the package. Compare the file size against the old device and confirm tweets.js is visible after extraction.
  2. Copy the ZIP, not the extracted folder. Thousands of small files across two filesystems invite case and encoding mismatches. One archive file carries less risk.
  3. Extract into a dedicated folder, not Downloads. A second download later will mix the two and you lose track of which is current.
  4. Import the exclusion list before the whitelist. Where the two overlap, landing the exclusions first stops whitelisted items from being flagged again.
  5. Run one full parse without deleting anything. Its job is to establish the new baseline.
  6. Compare against the old baseline. A gap wider than about ten percent means stop and investigate, usually a different package version or an incomplete exclusion list.

Two verification passes, not one

Check data completeness and judgment completeness separately, because they fail in different ways.

Check Passes when First thing to look at if it fails
Package integrity File size matches, tweets.js present Interrupted copy, or the extracted folder was moved by mistake
Parsed entry count Matches the old baseline total Package came from a mobile download
Risk item count Per-band counts close to baseline Exclusion list imported incompletely
Whitelist active Whitelisted posts stay out of the queue ID formatting altered by an editor

Keep the old device intact until the new one passes. Two copies cost almost nothing. Requesting a fresh archive and rebuilding the judgment costs a great deal more.

When a fresh download wins

Migration fits the case where the archive is still available and the configuration is worth keeping. A clean download is simpler in four situations: the old device has been sold, the package is over two years old, the whitelist was never saved, or you moved between Android and iOS.

A new export takes a few days to arrive. Hold on to the old archive until the replacement lands and clears the same table above.

Migration deletes nothing on its own. It saves you the hours of manual review you would otherwise repeat. Once the new device is settled, run the check to confirm the parse lines up with the old baseline. The check at digital-footprint-health.shop is free from the homepage, runs on your own machine, and never uploads post text. Cleanup scope and pricing are on the pricing page, and the rest of the method write-ups are in the blog index.

Top comments (0)