mrkeyoor.com_
Thu 10 Sept 16:46 UTC
Webevaluationupdated 10 Sept 2026

return-youtube-dislike review

Return YouTube Dislike is a browser extension and userscript that puts a dislike estimate back on YouTube pages. It combines archived data with votes from its own users, giving viewers a rough warning signal after YouTube stopped publishing the official count.

trackingstars / 7d
Verdict

Our Return YouTube Dislike run passed 1,389 of 1,390 tests, but npm audit still found 19 vulnerabilities, so the extension is useful for viewers and a cautious choice for source integrators. Install it if an approximate dislike signal is worth sending video IDs to its service. Avoid treating the displayed number as an official count, and audit the dependency findings before shipping a fork.

We ran it

Lab card: what happened when we ran return-youtube-dislikeScreenshot of return-youtube-dislike (returnyoutubedislike.com)
Install✓ · 19s609 packages · 209 MB
Build✓ · 12s
Tests✗ · 32s1389 passed · 1 failed of 1390 (jest)
Known vulns190 critical · 10 high · 8 moderate · 1 low (npm audit)
Repo457 files~72,143 lines of source · 6.6 MB · 3 CI workflows

Answers from our run

Does return-youtube-dislike build from source?

Dependencies installed in 19 seconds (609 packages), and the build succeeded in 12 seconds. We cloned commit ee20c74 into a clean Debian container with 3 CPUs and no project-specific setup.

Do return-youtube-dislike's tests pass?

Not all of them: 1389 of 1390 passed and 1 failed when we ran the project's own test command (jest). Some failures need services or credentials a bare container does not have.

Does return-youtube-dislike have known vulnerabilities in its dependencies?

npm audit flagged 19 known advisories in the dependency tree at the time of our run.

Who should not use return-youtube-dislike?

Anyone who needs YouTube's exact hidden count: the FAQ says current values are estimates and may stay cached for 2 to 3 days.

What are the alternatives to return-youtube-dislike?

FreeTube, Invidious, SponsorBlock. Our Return YouTube Dislike run passed 1,389 of 1,390 tests, but npm audit still found 19 vulnerabilities, so the extension is useful for viewers and a cautious choice for source integrators.

Setup4/519-second install and 12-second build; one live test failed
Docs4/5Good estimate and privacy detail, but contributor versions conflict
Community5/513,764 stars, fresh releases, and active issue handling
Maturity4/51,389 tests passed; browser churn and audit findings remain

Who it’s for

YouTube viewers who want a visible like-to-dislike signal before spending time on a video.
Chrome and Firefox users who prefer a small extension to switching video frontends.
Userscript users comfortable installing and maintaining browser scripts.
Developers who need a rate-limited dislike estimate API and can provide attribution.

Who it’s NOT for

Anyone who needs YouTube's exact hidden count: the FAQ says current values are estimates and may stay cached for 2 to 3 days.
Viewers unwilling to send the current video ID and visible like count to the service: its security FAQ also says ordinary requests expose an IP address and time.
Teams that reject a source tree with known dependency findings: our npm audit reported 19 vulnerabilities, including 10 high-severity findings.
High-volume API clients that cannot work within 100 requests per minute and 10,000 per day, the limits stated in the README.
Safari users expecting a normal store install: an open distribution issue says developers can build and sign it themselves, while public distribution remains requested.

Setup reality

Our sandbox installed commit ee20c74 in 19 seconds, adding 609 packages and using 209 MB. The production build succeeded in 12 seconds. Tests exited 1 after 32 seconds: Jest passed 1,389 of 1,390 tests, with one failure in live-youtube-driver.spec.js.

Ordinary users install the extension or userscript and do not need credentials for core dislike counts. API clients must provide attribution and respect limits of 100 requests per minute and 10,000 per day. Source contributors should follow package.json, which requires Node 22.17.0 and npm 10.8.2.

Npm audit found 19 known vulnerabilities: 10 high, 8 moderate, and 1 low, with none critical. The repository has 3 CI workflows and co-located Jest tests, despite having no top-level tests directory. Its browser integration depends on YouTube's changing page structure, and our live-driver test did not pass.

The displayed count can be 2 to 3 days old

Return YouTube Dislike replaces the missing public dislike number with its own estimate. The service uses archived counts where available, then combines them with likes and dislikes submitted by extension users. For newer videos, its FAQ describes a ratio based on Return YouTube Dislike voters and YouTube's public like count. That can help identify an unhelpful tutorial, but it is not access to YouTube's private number.

Freshness has a stated limit. The FAQ says video values are cached and may update only once every 2 to 3 days. A fast-moving controversy can therefore show an older estimate, and a small or unusual audience may not resemble the extension's voters. The project says the result will never be 100 percent accurate. Read the number as a community sample, preferably beside likes, views, comments, and upload date.

Version 4.0.6 keeps core counts account-free

The extension is published for Chrome and Firefox, with a JavaScript userscript for other browsers. Release v4.0.6 says core dislike counts still work without signing in. Optional premium analytics can use Patreon or GitHub login, and the release tightened Firefox consent checks before account traffic begins. That separation is welcome: a viewer who only wants the missing number does not have to attach a social or payment account.

Privacy still involves a server. The security FAQ says count requests send the current video ID and, when available, the visible like count. Network requests expose the public IP address and request time. Voting adds a persistent random installation ID, the chosen vote, a timestamp, and an address retained for abuse prevention. Version 4.0.6 also documents what optional account data is stored and says signing out clears those account details from the extension.

What happened when we ran it

Our sandbox installed commit ee20c74 in 19 seconds, pulling 609 packages and occupying 209 MB. The production build completed in 12 seconds. The checkout itself had 457 files, roughly 72,143 source lines, and used 6.6 MB before dependencies. Those results came from an unprivileged Node 22 container with 3 CPUs and 8 GB of RAM, without secrets.

The test command failed after 32 seconds. Jest reported 1,389 passed and 1 failed out of 1,390 tests, across 71 suites. The only failed suite was Extensions/UserScript/live/live-youtube-driver.spec.js; the provided log tail names that file but does not show the failed assertion or its cause. The narrow finding is that almost all tests passed while the live YouTube driver did not pass in our fresh sandbox.

Npm audit found 10 high-severity findings

Our npm audit counted 19 known vulnerabilities in the installed dependency tree: 10 high, 8 moderate, 1 low, and 0 critical. The log supplied to us does not map those findings to production or development code, so we cannot claim that installing the store extension exposes all 19. A developer building a fork should inspect the full audit, determine which packages enter shipped bundles, and update or isolate the affected paths.

The 609-package install is much larger than the five runtime dependencies listed in package.json because the repository includes Webpack, Jest, Playwright, browser packaging, and other development tooling. The current manifest requires Node 22.17.0 and npm 10.8.2. The contributing guide at the measured commit still names Node 12.18.4 and npm 6.14.6, so contributors should trust the enforced package metadata over that older prose.

Three CI workflows do not stop YouTube page breakage

The repository contains 3 CI workflow files, a production build, Jest coverage, artifact checks, Playwright paths, and live YouTube commands. There is no Dockerfile, which is unsurprising for a browser extension. There is also no top-level tests directory because test files sit beside extension code. The 1,390 discovered tests are stronger evidence than a folder-name signal, even though one live-facing case failed for us.

YouTube can change the page underneath every extension release. Open issue 1074 describes some Chrome pages freezing with the extension enabled and has accumulated 53 comments. Issue 1305 reports a userscript failing after a mobile YouTube layout change. Both reports concern older extension versions or particular browsers, so they do not prove v4.0.6 fails everywhere. They do show the maintenance cost of attaching controls to a site the project does not own.

A September release and 234 open items show heavy use

GitHub lists 13,764 stars and 234 open issues and pull requests. The latest release, v4.0.6, and the last push both landed on September 7, 2026. Recent caption and Firefox-consent reports were closed in September, while translation pull requests and display bugs were still moving. This is an active project with a large support surface, not a dormant extension surviving on its original 2021 idea.

Distribution can lag behind source. Open issue 1288 says the official Firefox listing was out of date and has 46 comments, while issue 1067 requests ordinary Safari distribution because current Safari users may need to build, convert, and sign the extension themselves. Before recommending it across a company, verify the version in each browser store. API users should also design around the documented ceilings of 100 requests per minute and 10,000 per day.

Choose a full alternative client only if one metric is not enough

Return YouTube Dislike does one job with less disruption than replacing YouTube. Its 209 MB development install produces a browser add-on that fits the existing site, and 1,389 passing tests show serious maintenance effort. FreeTube makes more sense when you want a separate desktop client. Invidious fits self-hosters who want an alternate web frontend, while SponsorBlock solves time lost to sponsored segments rather than estimating audience sentiment.

For most Chrome and Firefox viewers, the official extension is the practical choice if its privacy terms and approximate data are acceptable. Developers should be more guarded. The 19 audit findings need triage, the contributor guide names outdated tools, and a live-driver test failed in our run. The estimate remains helpful precisely when treated as one signal, never as a recovered official fact.

Alternatives

ProjectWhat it isPick it when
FreeTube gh↗A desktop YouTube client designed to reduce reliance on the standard site and account flow.pick this instead when you want a separate desktop viewing client rather than one restored metric.
Invidious gh↗A self-hostable alternative frontend for browsing and watching YouTube.pick this instead when controlling the whole frontend and hosting path matters more than modifying youtube.com.
SponsorBlockA community extension that skips sponsored and other marked segments inside videos.pick this instead when wasted time inside a video is the problem, rather than judging it by dislike estimates.

What people are saying

  1. [github-trending] Anarios/return-youtube-dislike

Sources

  1. Return YouTube Dislike repository
  2. README at measured commit ee20c74
  3. Dislike estimate FAQ
  4. Security and privacy FAQ
  5. Release v4.0.6
  6. Issue 1074 on page freezes
  7. Issue 1288 on Firefox store lag
  8. Return YouTube Dislike website

More web reviews

fluentui · remix · bootstrap · analytics · swiper · rrweb · the whole board →