YouTube, dislikes
Estimated YouTube dislike counts, in bulk
YouTube stopped showing dislike counts in 2021. The community project Return YouTube Dislike still publishes an estimate for each video. Turn on includeDislikes and every row gets that estimate next to views and the exact like count, for a whole channel or search at once.
- $2 per 1,000 videos
- Dislikes included, no surcharge
- Estimates from Return YouTube Dislike
- No API key
These are estimates, not YouTube's numbers. The dislikes field comes from Return YouTube Dislike (RYD), and we pass their figure through unchanged. Only a channel's owner can see the real count, in YouTube Studio.
Where the number comes from
YouTube announced in November 2021 that it would hide public dislike counts, and the Data API stopped returning them to everyone except the channel owner in December 2021. Return YouTube Dislike is a volunteer-run project that stepped into that gap. For videos from before the change, it can lean on counts that were archived while they were still public. For activity since then, it extrapolates from the votes of people running its browser extension. That means the estimate is strongest for older and popular videos, and rough for small or brand-new ones that few extension users have seen.
We don't compute, adjust or smooth the figure. The Actor asks RYD for each video's estimate at run time and writes it into the row, so what you get is exactly what RYD reports at that moment.
Why use a scraper instead of calling RYD yourself
If you already have a list of video IDs and dislikes are all you need, RYD's public API is free. Use it, stay within its rate limits and credit the project. This Actor earns its keep when the job is bigger than that:
- You don't have the video IDs yet. Start from a search term, a channel name or a playlist and the Actor finds the videos first.
- You need the rest of the row. Views, the exact like count, publish date, subscribers, description links and, if you want, the top comments, all in the same record as the dislike estimate.
- You want it to run without you. Schedule it on Apify, trigger it from Make, Zapier or n8n, or ask for it from ChatGPT or Claude.
Dislikes add no surcharge. Rows cost $2 per 1,000 with or without them.
What a row looks like
{
"id": "dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video)",
"viewCount": 1792628321,
"likes": 19243762,
"dislikes": 514894,
"date": "Oct 24, 2009",
"channelName": "Rick Astley",
"numberOfSubscribers": 4520000
}
Trimmed example from the Actor's README. likes is YouTube's exact public count; dislikes is RYD's estimate.
What a like-to-dislike ratio is good for
- A controversy scan of a channel. Pull every video, compute
dislikes / (likes + dislikes)and sort. The outliers are usually the videos worth reading the comments on. - Topic research. Search a niche and see which subjects draw pushback and which land cleanly.
- Launch reception. Track product announcement or trailer videos over their first weeks with a scheduled run.
- Research datasets. Pair the ratio with top comments to see what drove the reaction.
Treat the ratio as a signal, not a measurement. It is built on an estimate, so it's good for ranking and spotting outliers, and a poor basis for public claims about a particular creator.
Credit where it's due
If you publish anything built on these numbers, credit Return YouTube Dislike and link to returnyoutubedislike.com. The project asks users of its data for attribution, and it only exists because volunteers keep it running.
Run it from code
Fifty videos from one channel with dislike estimates is 50 rows, or $0.10. Set APIFY_TOKEN first.
// Save as run.mjs, then: npm i apify-client && APIFY_TOKEN=... node run.mjs
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('yugenox/youtube-scraper').call({
channels: [
"Fireship"
],
maxItems: 50,
includeDislikes: true
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) console.log(item.title, item.likes, item.dislikes);import os
from apify_client import ApifyClient # pip install apify-client
client = ApifyClient(os.environ["APIFY_TOKEN"])
run = client.actor("yugenox/youtube-scraper").call(run_input={
"channels": ["Fireship"],
"maxItems": 50,
"includeDislikes": True,
})
if run is None:
raise RuntimeError("Run did not finish")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item.get("title"), item.get("likes"), item.get("dislikes"))# Small jobs: runs the Actor and returns the rows in one call (up to 5 minutes).
curl -X POST "https://api.apify.com/v2/acts/yugenox~youtube-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"channels":["Fireship"],"maxItems":50,"includeDislikes":true}'Questions people ask
Are these real YouTube dislike counts?
No. They are estimates from Return YouTube Dislike. YouTube shows real dislike counts only to the channel owner.
How accurate are the estimates?
It depends on the video. Older and popular videos tend to be close because RYD has archived data and many extension users. New or small videos can be far off.
Do dislikes cost extra?
No. Turn on includeDislikes and the estimate is part of the same $0.002 video row.
Can I get dislikes for a list of specific videos?
Yes. Paste the video links into Start URLs and turn on includeDislikes. You can mix in channels and searches in the same run.
Is there a free way to check one video?
Yes. Return YouTube Dislike's browser extension and public API are free. This Actor is for bulk jobs where you also want views, likes, comments and scheduling.
How can a channel owner see the real dislike count?
In YouTube Studio, or through the YouTube Analytics API with the owner's own sign-in. Those numbers are not public, so no scraper can return them.
Run it on your own data
Open the Actor on Apify, paste your input and press Start. You pay per result from your own Apify account, with no subscription to us. Or connect it to your AI assistant and ask in plain English.
Last updated 2026-09-26.