How it works What you get Platforms Limits Install
five platforms · comments stay in your browser

A whole comment section. In one file.

Export the whole comment section — replies, authors, timestamps, likes, thread structure — from Facebook, YouTube, TikTok, Instagram or X. It runs inside the tab you already have open, under your own session. The comments never leave your browser: they are read on the page and written straight to your file. An account is only needed to lift the free limit.

5 platforms
CSV / JSON same columns
0 servers see your comments
15 columns per row
downthread
running
0comments exported
1,091 claimed by the page85%
  • ✓ reply phase 1.2s — 214 threads by token
  • ✓ comment rail never needed
  • ! 163 not served — hidden, spam-collapsed or removed
  • ✓ wrote downthread-facebook-928.csv
partialfacebook.comcsvreplies on

Works on

How it works

Three presses, and the page does the rest.

There is no URL to paste, no scraper to configure and no credentials to hand over. The exporter reads the comment data the page is already receiving, in the tab you are already looking at.

01

Open the post

Signed in as you normally are. The panel appears by itself, minimized, in that platform's own colours, as soon as comments load.

02

Press Load all & export

Pick CSV or JSON and whether to include replies. Progress, current action and a Stop button stay on screen the whole way. Stopping still saves what was gathered.

03

Read the run report

A plain-text account of what happened: what the platform claims, what was exported, and every shortfall named. Paste it beside the file as your evidence.

The one technical thing worth knowing: it does not simulate a human scrolling forever. It reads each platform's own comment requests and replays them by template, so tokens and credentials never leave the page. On one live run that turned a reply phase of roughly half an hour into about a second. How long any particular post takes depends on the platform, its pacing and how much it will serve.

What you get

A file you can hand to a statistician.

One schema across all five platforms, so a Facebook export and an X export stack in the same dataframe without a mapping step.

The columns

Identical on every platform

Thread structure survives the export: parent_comment_id points at the comment being answered, so any thread rebuilds exactly.

authortextdepthparent_comment_idlikescreatedTime
Amina R.Where are the results for Basilan?0—342026-09-14T02:11:07Z
Datu K.Still partial, 61% of ERs in1Y29tbWVudDo3…MjE122026-09-14T02:14:52Z
J. MendozaSource? COMELEC page says otherwise1Y29tbWVudDo3…MjE32026-09-14T02:19:31Z

post_url, post_id, post_author, exported_at, account_id, comment_id, parent_comment_id, depth, isReply, author, profileUrl, text, createdTime, likes, replyCount

{
  "post_id": "1091883…",
  "exported_at": "2026-09-14T02:31:08Z",
  "comments": [
    { "comment_id": "Y29tbWVudDo3…MjE", "depth": 0,
      "author": "Amina R.", "likes": 34,
      "replyCount": 9, "isReply": false }
  ]
}
The run report

Numbers you can cite

Copied to your clipboard in one press, in plain words. This is the part most exporters do not give you.

Downthread — Facebook run report
post      facebook.com/…/posts/1091883
claimed   1,091 · exported 928
replies   214 threads, all read to the end
status    PARTIAL

Where the rest went
163  never served by Facebook
0    threads left open
0    duplicates skipped
Long runs

Resume, not restart

A run interrupted twenty minutes in picks up from its checkpoint instead of starting the whole post again.

Stop

Always safe to press

Stopping writes the file with everything gathered so far, and marks it PARTIAL so nobody mistakes it for the whole set.

Spreadsheets

No formula injection

Cells beginning = + - @ are neutralised, so a comment cannot execute when the file opens.

Platforms

Five sites, five different sets of rules.

Each one gives up its comments differently, and each one holds something back. Here is exactly what to expect before you plan a collection round.

Facebook

You get
Posts, Reels, photos, videos and live replays. Comments and replies with their full thread structure — reply threads fetched by their own token rather than by clicking through the rail.
Held back
Facebook's own count includes hidden, spam-collapsed and blocked-account comments it will not serve. The count and the list disagree on most large posts; the report explains the gap instead of hiding it.

YouTube

You get
Videos and Shorts, comments and complete reply threads, through the official YouTube Data API with your own key. The cleanest data of the five.
Held back
Your daily API quota is the ceiling. Livestreams have no comments at all — only live chat, which is not part of an export.

TikTok

You get
Comments and replies on a video or photo post, with reply threads opened and read to their end.
Held back
TikTok signs its requests, so the exporter often has to open threads on the page instead of replaying a request. Deleted and hidden replies are never served to anyone.

Instagram

You get
Posts and reels, comments with their replies attached to the parent, and the caption's owner resolved properly.
Held back
Instagram rate-limits quickly and asks you to wait a few minutes. A reel cross-posted from Facebook keeps its comments on Facebook — the panel says so rather than reporting zero.

X

You get
Replies to a post and the replies beneath those, nested to whatever depth the conversation reaches, plus — if you ask for them — the replies X hides as low quality.
Held back
A rate limit that resets every fifteen minutes. The run stops when it hits one and says so; export again afterwards and it carries on from where it left off rather than re-reading what it already has.
The honest part

A partial export is never dressed up as a complete one.

Every exporter hits walls. The difference is whether it tells you. This one marks the run PARTIAL, names the reason in the report, and puts the shortfall in front of you before you build an argument on top of it.

A thread that was opened but not read to its end counts as incomplete. So does a refused request, a rate limit, and pressing Stop. The rule holds identically on all five platforms.

Partial

A thread was opened but its last page never arrived.

Refused

The platform answered the request with an error or an empty page.

Rate limit

The platform asked for a pause. The run stops rather than hammering it.

Stopped

You pressed Stop. Everything gathered is still written out.

Not served

Hidden, spam-collapsed, blocked or deleted — counted by the platform, never sent.

It cannot see private content

Only what your own signed-in session can already open. There is no privileged access, and no way to reach a post you could not view yourself in that tab.

It never writes

No posting, liking, following or messaging. It clicks only the controls that expand comments, and never anything sitting inside a link.

It sends nothing anywhere

No uploads of what you export, no analytics, no tracking. Your YouTube API key stays in your own browser storage. Accounts and payments do use services — Google to sign in, Supabase to hold your account, PayMongo to take payment — and none of them are told which posts you export, or that you exported anything.

It does not beat a rate limit

When a platform slows you down or refuses, the run ends and says why. Waiting is the only remedy it offers, because it is the only honest one.

Questions

Before you install it.

Does it need my password or a login token?

No. It never asks for, reads or stores a password, session cookie or login token for any platform. It works inside the session your browser already has, the same way the page itself does.

Can using it get my account restricted?

It is possible, and worth saying plainly. Reading a platform's own requests at speed can breach that platform's terms even when the comments are public, and every platform is free to act on that. The exporter paces itself, stops the moment it is rate limited and never retries aggressively — but the judgement about whether to run it, and on whose account, is yours.

Do I need a YouTube API key?

For YouTube, yes. Create a project in the Google Cloud console, enable the YouTube Data API v3, generate an API key and paste it into the panel once. It is stored in your own browser and used only to call YouTube. The other four platforms need no key at all.

Why does Facebook's comment count never match the export?

Because the number under the post is not a count of comments you can read. It includes comments hidden by the page, ones collapsed as spam, ones from accounts that have blocked you, and ones since deleted. Facebook counts them and then declines to send them. The report gives you both numbers and the gap between them, which is the honest thing to publish beside a dataset.

What happens if I close the tab mid-run?

Nothing is lost that was already written, and on Facebook a checkpoint lets the next run resume rather than restart. Pressing Stop is cleaner: it writes the file immediately with everything gathered and marks it PARTIAL.

Where does the exported data go?

Your Downloads folder, and nowhere else. Our server is only ever asked whether your pass is current; no comment, post or file is ever sent to it. Settings, your YouTube key, the resume checkpoint and a short local run history live in your browser's own extension storage, which the web pages you visit cannot read. Uninstalling removes all of it. Full privacy policy.

Can I export a private group, or my own page's posts?

If you can open the post and read its comments in your browser, the exporter can read the same thing. If you cannot, neither can it. Being an admin of the page or a member of the group is what grants the access — the extension adds none of its own.

How do I get it to the rest of the team?

Through an unlisted Chrome Web Store listing: everyone with the link can install it and get updates automatically, and it is not indexed or browsable by anyone else. For testing before that, the repository loads directly as an unpacked extension.

Free tier · unlisted · updates automatically

Put it in your team's browser.

One install, no configuration, and everyone's exports come out with the same columns and the same honesty about what is missing.

Chrome and Edge, desktop. Free up to 200 comments per post. A pass lifts the cap for 30 days or a year — it does not renew itself, and you are never charged again without asking. Pay with GCash, Maya, GrabPay, QR Ph or a card.