Free preview before you pay

Turn your X archive into a PDF

The archive X sends you is not JSON, it is JavaScript, so nothing will open it. Upload tweets.js or direct-messages.js and get a dated document back.

Samples of all four are further down this page.
Optional. Used to label your own posts.
From $7 · one payment, no account
Free preview first · files deleted within 7 days

How it works.

Every file in the archive starts with a line like window.YTD.tweets.part0 = before the actual data. That single line is why JSON.parse fails and why people go looking for a tool. Strip it and the rest is ordinary JSON.

Step 1

Request your archive

Settings, Your account, Download an archive of your data. It takes a day or two and arrives as a zip.

Step 2

Upload the file you want

Open the data folder. tweets.js is your posts, direct-messages.js is your DMs. Or drop the whole zip and both get picked up.

Step 3

Check it, then download

You see it parsed first. Posts come with their like and repost counts and are labelled when they were replies.

Four ways to print it.

Every sample below is a real page from the same renderer that makes your file, not a drawing of one. Pick the style above before you upload, or change it and preview again.

A page of a transcript in the Chat bubbles style
Chat bubblesLooks like the conversation did. Best for keeping, or for showing someone.
A page of a transcript in the Clean document style
Clean documentPlain and readable, made for paper. The safe choice if you are not sure.
A page of a transcript in the Formal / legal style
Formal / legalNumbered entries and full timestamps, for a hearing or a claim. No colour, so it photocopies.
A page of a transcript in the Book style
BookSet like a printed book, for binding or keeping. Warm paper, wide margins.

Trust, with receipts.

No invented review scores, no badges, no “trusted by thousands”. Here is what is actually true, and you can check every line of it.

  • You see the result before you payUpload, look at your own parsed file, then decide. No account, no card, no email required to get that far.
  • Files are deleted within 7 daysYour upload, anything extracted from it, and the finished download. Automatically, on a schedule.
  • A real person runs thisJade Riley, in Johannesburg, South Africa. Questions go to hello@onetimetool.com and I answer them myself.
  • Your card never touches this siteCheckout is hosted by Dodo Payments. I never see your card number.
  • One payment, for this one jobThere is no subscription, no plan and nothing to cancel. The price above is the whole price.
  • 7-day money backIf the output is not what you needed, email me and I refund it. No form to fill in.

Questions, answered.

Why will nothing open tweets.js?
Because it is a JavaScript file, not a data file. It assigns the data to a variable, and that assignment line breaks every JSON reader. It is a two second fix if you know it, and impossible if you do not.
My archive has tweets-part1.js, tweets-part2.js and so on.
That happens on large accounts. Upload the whole zip and all the parts are read and merged in date order.
Can it tell who sent each DM?
Only by account ID, unless you tell it your username. X stores DMs by numeric ID, so labelling a side as you means guessing otherwise.
Are images included?
Image filenames are referenced. The images themselves are in a separate folder in the archive, so upload the whole zip if you want them placed.
What happens to my file?
It is deleted within 7 days, along with the finished PDF. It is used to make your file and nothing else. Nobody reads it.
Do I need an account?
No. There is no signup, no subscription and no password. You upload, you see the result, you pay once if you want it.