Prepare 4.0.5 Firefox update and Shorts fixes

Add Firefox data consent, repair contributor sign-in, and introduce optional Hide clutter buttons. Harden video navigation, voting, and action layouts with shared browser regression coverage and reproducible release packaging.
This commit is contained in:
Anarios
2026-09-06 12:51:12 +02:00
parent 3657de9b2c
commit e500088e65
196 changed files with 39706 additions and 2694 deletions
+61 -4
View File
@@ -1,7 +1,64 @@
The only data collected from users is their likes and dislikes made while the extension is installed.
# Return YouTube Dislike Privacy Policy
No personal info, account name or watch history is collected or saved.
Last updated: September 5, 2026
Users are identified by a random user ID, which is not directly linked to any of their accounts, the only purpose of this user ID is to make voting process possible.
This policy describes version 4.0.5 and its matching backend release.
None of the saved data is shared with any third parties.
Return YouTube Dislike transmits only the data needed to provide its dislike-count, voting, abuse-prevention, and
optional premium features. It does not sell personal data or use it for advertising.
## Data required for the extension to work
- On registration, the extension generates a persistent random installation identifier and sends it to the Return
YouTube Dislike API. The identifier is not derived from or linked to a YouTube or Google account, but it is a
persistent identifier and is treated as personal data.
- When a YouTube video is opened, the extension sends that video's ID and, when available, its visible like count to
retrieve and improve the dislike estimate.
- When the user submits a Like, Dislike, or vote removal and vote submission is enabled, the extension sends the random
installation identifier, video ID, and selected action.
- API requests necessarily expose the network IP address and request time. The service uses this information for
security, abuse prevention, aggregate analytics, and operation of the API.
The extension does not send a YouTube account name, comments, private YouTube data, or the contents of unrelated web
pages. It does not maintain a separate local list of videos watched.
## Optional account and premium data
Patreon and GitHub sign-in are optional. The account flow starts only after the user selects a sign-in button and, in
Firefox, grants the separate authentication-data permission. The selected provider and the Return YouTube Dislike API
process the OAuth authorization response. The API returns the provider account ID, name, profile image,
account-access status, access tier, and a Return YouTube Dislike session token as applicable to that provider. GitHub
sign-in may also return an email address. Patreon sign-in does not request or return email, account-status fields,
or connected social accounts; the name and profile image identify the signed-in account in the popup. To
determine Patreon access, the matching backend uses currently entitled tier IDs. It does not request or use membership
amounts, charge dates or status, lifetime payments, or patron status. The extension does not receive payment-card or
bank-account details.
Those account details and the session token are stored in browser extension storage and used to authenticate premium
analytics requests. The session token expires after 30 days. Signing out deletes the locally stored account details and
session token. Revoking Firefox's authentication-data permission clears that local account session and prevents further
account and premium requests. Pending responses cannot restore the session; the user must sign in again to resume it.
Patreon and GitHub process sign-in information under their own privacy policies. The extension never receives the
user's Patreon or GitHub password.
## Storage, retention, and sharing
The identifier, settings, and optional account session use browser extension sync storage, which may be synchronized
through the browser's sync service when the user enables it. The random installation identifier remains in extension storage until the extension data is cleared, registration is
reset, or the extension is removed. Confirmed vote records contain the identifier, video ID, vote, timestamp, and the
network address used for abuse controls. Registration and vote records are retained by the service while they are
needed to calculate results, maintain vote integrity, and prevent abuse; no shorter automatic deletion period is
promised.
Data is not sold or shared for advertising. It is processed by the Return YouTube Dislike service and its hosting and
network infrastructure providers, and by Patreon or GitHub only when the user chooses the corresponding sign-in flow.
## User controls
Firefox displays its built-in consent prompt before the required data is transmitted. Refusing the required consent
prevents installation or acceptance of the update. Vote submission can be disabled in the extension settings. Optional account access can be
declined or revoked without disabling ordinary dislike counts. Firefox private-window access is disabled.
Users can clear extension storage or remove the extension to delete locally stored data. Requests concerning service
data can be made through the project's support channels at https://returnyoutubedislike.com/help.
+23 -5
View File
@@ -4,23 +4,41 @@ Read this in other languages: [русский](SECURITY-FAQru.md), [Nederlands](
### Are you tracking my viewing history?
No. The extension's code is public and you can see it for yourself. The only information being sent is the video ID, which is required to fetch the dislike count for the videos. There are no additional headers being sent. Over the communication layer, your public IP will be exposed to the server, as well as the time when the request was made. However, none of these are uniquely identifying you in any way. Assuming a zero-trust environment, the best we could get is a dynamic IP. Which, today is yours, tomorrow is your neighbor's. If you're really worried about your IP being traced, you probably already use a VPN.
The extension sends the current video ID and, when available, its visible like count to the Return YouTube Dislike API
because the server needs them to return and improve the dislike estimate. The request also exposes standard network
metadata such as the public IP address and request time. The extension does not send your YouTube account name,
comments, private YouTube data, or the contents of unrelated pages, and it does not keep a separate local watch-history
list.
### Can you uniquely identify me if I dislike?
Yes. When you dislike a video, we create a randomly generated unique ID for you that is not tied to your Google account. This is done to prevent botting. But there is no way to tie this random Id to you or your personal YouTube account.
The extension creates a persistent random ID for abuse-resistant vote submission. It is not derived from or linked to
your Google or YouTube account, but Mozilla classifies persistent identifiers as personal data. The ID lets the service
associate submitted votes with the same extension installation.
### What information do you have, exactly?
Just the video ID. Not your comments, not your username, not who you've shared the video with, not any additional metadata. Nothing. Just the video ID.
For dislike-count requests: the current video ID and, when available, the visible like count. For registration and vote
submission: the random extension user ID, video ID, selected vote, timestamp, and network address used for abuse
controls. Optional premium features use the account ID, name, email address, profile image, membership information, and
service session token returned by a Patreon or GitHub sign-in initiated by the user. For version 4.0.5 and its matching
backend release, Patreon access is determined from currently entitled tier IDs rather than financial information.
### How is my IP stored?
The backend keeps unhashed IP addresses in volatile memory (RAM) only. These addresses aren't stored on a hard drive, and therefore aren't logged. We hash the IP addresses, and that's stored instead. This is done to prevent database vandalism.
The API receives your network address with each request. Confirmed vote records retain the network address used for
abuse prevention and aggregate analytics. It is not sold or used for advertising.
### I heard some discussion over OAuth, and access to my YouTube account!
This feature will be optional, and very much opt-in. If you are a YouTube creator, and would like to share your dislike stats with us, you can. The way [OAuth](https://en.wikipedia.org/wiki/OAuth#:~:text=but%20without%20giving%20them%20the%20passwords.) was structured, it's actually very secure. You can revoke access to your account at any time, and can give very specific permissions to us. We will not ask for any permissions that aren't required. We'll only ask for permissions to view your video stats.
Premium analytics sign-in is optional and starts only after the user chooses Patreon or GitHub login in the extension.
The OAuth flow returns account details and a Return YouTube Dislike session token used to authenticate premium API
requests. In version 4.0.5 and its matching backend release, Patreon eligibility uses currently entitled tier IDs;
the service does not request or use membership amounts, charge dates or status, lifetime payments, or patron status.
Firefox asks for separate authentication-data consent before account traffic begins. Signing out removes
the stored account details and session from the extension. Revoking Firefox's authentication-data permission also clears the
account session and blocks further account traffic until you grant consent and sign in again. Browser sync may
synchronize the installation identifier, settings, and account session when enabled.
### How can I trust this dislike count?