Emojery vs Return YouTube Dislike

Both projects show reactions the platform doesn't. Only one of them can tell you whether the number on the screen is actually real.

TL;DR

Return YouTube Dislike (RYD) gives each browser install a random number and trusts it. Reinstall the extension or open a new browser profile. You get a fresh "user", forever. Emojery asks for one sign-in with a provider you already use and turns the opaque id it returns into a one-way account identifier, so one provider account = one vote, the same way most social networks already work.

RYD is a great project that filled a real gap when YouTube hid the dislike button. We respect it. It's open source, GPL-3, and one of the reasons users still have any signal at all. This page is not a take-down. It is an explanation of why the numbers differ and what each project is actually measuring.

At a glance

Emojery Return YouTube Dislike
Who counts as a user One provider account = one account One random number per install, no verification
Cost of making 100 fake "users" 100 provider accounts, each a public enrollment in the log (hard, slow, visible) 100 reinstalls or browser profiles (free, instant)
What you actually see Real reactions from verified people An estimate: archived counts + extrapolation from votes
Sign-in to read counts No — reads need no account and send no identifier No — reads are fully anonymous
Sign-in to submit a reaction Yes — one sign-in with a provider you already use No
If you reinstall the extension Same account (the same provider account still resolves to it) Brand-new "user" with a clean slate
If you open a private window Sign in again, but it's still you You become a different person to the server
"Delete my account" Yes — one button, erases your account record + reverses your reactions out of the counters No formal flow; clearing the random ID doesn't undo votes
Source code github.com/khasky/emojery — GPL-3 github.com/Anarios/return-youtube-dislike — GPL-3

Why the difference matters

Who is "a user" in each project?

In Emojery, your account is derived from the opaque id your sign-in provider returns, through a one-way transformation: the same provider account always lands on the same Emojery account, and the stored identifier can never be turned back into the id. 2 installs with the same provider account = the same account. 2 browser profiles with the same provider account = the same account. Reinstalling = the same account. We never store the id itself, and never ask for a name or an email.

In RYD, your account identifier is a 36-character random string generated by crypto.getRandomValues the first time the extension registers. Reinstall → new identity. Different browser → new identity. New profile → new identity. The server has no way to tell them apart from a real new person.

Verifiable in the RYD source — see generateUserID() and register() in Extensions/combined/ryd.background.js.

What does the number on the screen actually mean?

RYD's own website is upfront about this: the count you see is a mix of historical dislike data scraped before YouTube removed the public counter, plus an extrapolation built from how the extension's anonymous users vote. The README and the official site both describe it as an estimate.

Emojery doesn't estimate. The number under a Facebook post, a GitHub repo, or an Amazon product is the literal count of verified accounts that clicked that emoji. If you didn't react, you're not in it. If you reinstall, you don't suddenly become 2 people.

How easy is it to fake votes?

RYD does not ignore this problem. Every vote triggers a proof-of-work puzzle the browser has to solve before the server accepts it — a small CPU cost designed to make industrial botting uneconomic. That part is well-engineered (you can read solvePuzzle in the same background file). But the cost is a fraction of a second per vote and applies per browser install, not per person. Spinning up many installs is cheap; solving a few seconds of CPU is cheaper.

Emojery costs real-world effort to fake. To create another voter you need another account at Google, Apple, Microsoft or Twitch, and each one shows up as an enrollment in the public log. That's the same friction every mainstream login flow uses, and it's why 10 throwaway accounts are 10 reactions instead of 10,000, in the open.

5 million people can't be wrong, right?

RYD has millions of installs. Most users, rightly, don't care about identity models; they install it because YouTube took away a useful signal and any signal is better than none. We agree. For "rough thermometer on a viral video", an estimate is fine.

Emojery is built for a different job: reactions on specific things — a Facebook post, a single GitHub repo, an Amazon product. There the difference between "real" and "estimated" matters, because one is feedback and the other is vibes.

Which one should you pick?

Pick RYD if you only need a rough idea of how a YouTube video is landing, and you don't want to sign in for anything. It is a great fit for that.

Pick Emojery if you want reactions across the many sites Emojery supports, and you want the counts to reflect actual people who showed up, not anonymous numbers a re-installed browser hands out for free. What that looks like on YouTube, counted thumbs down included, is on emoji reactions for YouTube.

Leaning toward switching? The Return YouTube Dislike alternative guide covers the move itself.

Fair-play notes

Every technical claim about RYD on this page is verifiable in their public GPL-3 source: github.com/Anarios/return-youtube-dislike. We link the exact file (ryd.background.js) so you can check us.

We are not affiliated with RYD. We didn't fork it. The two projects target different platforms and solve different problems.

"Estimated" is not a slur. RYD's own homepage and README describe the count that way. We just think it's worth telling users which kind of number they're looking at.