Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions 2025/10/2025-10-30-crunchyroll-npm-counternotice.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
To GitHub DMCA Agent,

I have read and understand GitHub's Guide to Filing a DMCA Counter Notice.

This is a copy of an already submitted counter-notice in response to the DMCA takedown request submitted by [private] on behalf of Crunchyroll, LLC. The claims in the notice are factually incorrect as likely orignal was .
Copy link

Copilot AI Oct 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Corrected spelling of 'orignal' to 'original'.

Suggested change
This is a copy of an already submitted counter-notice in response to the DMCA takedown request submitted by [private] on behalf of Crunchyroll, LLC. The claims in the notice are factually incorrect as likely orignal was .
This is a copy of an already submitted counter-notice in response to the DMCA takedown request submitted by [private] on behalf of Crunchyroll, LLC. The claims in the notice are factually incorrect as likely original was .

Copilot uses AI. Check for mistakes.
Copy link

Copilot AI Oct 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The sentence appears incomplete. It ends with 'as likely orignal was .' which doesn't form a complete thought. Please complete or rephrase this sentence to clearly state why the claims are factually incorrect.

Suggested change
This is a copy of an already submitted counter-notice in response to the DMCA takedown request submitted by [private] on behalf of Crunchyroll, LLC. The claims in the notice are factually incorrect as likely orignal was .
This is a copy of an already submitted counter-notice in response to the DMCA takedown request submitted by [private] on behalf of Crunchyroll, LLC. The claims in the notice are factually incorrect for the reasons explained below.

Copilot uses AI. Check for mistakes.

Disabled Content URLs:
- https://github.com/dlenroc/node-roku
- https://github.com/dlenroc/appium-roku-driver
- https://github.com/dlenroc/binary-decoder.js
- https://github.com/dlenroc/node-testrail-api
- https://github.com/dlenroc/appium-html-driver
- https://github.com/dlenroc/node-wdp
- https://github.com/dlenroc/appium-grid-plugin
- https://github.com/dlenroc/vitest-serenity-js
- https://www.npmjs.com/package/@dlenroc/testrail
- https://www.npmjs.com/package/@dlenroc/roku
- https://www.npmjs.com/package/@dlenroc/appium-roku-driver
- https://www.npmjs.com/package/@dlenroc/roku-ecp
- https://www.npmjs.com/package/@dlenroc/roku-odc
- https://www.npmjs.com/package/@dlenroc/roku-debug-server
- https://www.npmjs.com/package/@dlenroc/roku-developer-server
- https://www.npmjs.com/package/@dlenroc/appium-html-driver
- https://www.npmjs.com/package/@dlenroc/wdp
- https://www.npmjs.com/package/@dlenroc/appium-grid-plugin
- https://www.npmjs.com/package/@dlenroc/binary-decoder
- https://www.npmjs.com/package/@dlenroc/vitest-serenity-js

---

1. node-roku

**Claim from DMCA notice:**
`In node-roku, the repository contains files such as lib/device.js and lib/transport.js which reproduce functions and command structures taken directly from Crunchyroll’s proprietary Roku integration code.`

**Rebuttal:**
- The files `lib/device.js` and `lib/transport.js` have never existed in [private] repository or in any distributed npm packages.
- node-roku is a TypeScript API client for Roku’s publicly documented APIs.
- References: [Roku official documentation](https://developer.roku.com/es-cl/docs/developer-program/dev-tools/tools-overview.md), [private]

---

2. appium-roku-driver

**Claim from DMCA notice:**
`In appium-roku-driver, the lib/driver.js file contains routines and APIs that replicate Crunchyroll’s protected automation and playback testing modules.`

**Rebuttal:**
- The file `lib/driver.js` has never existed in [private] repository or in any distributed npm packages.
- The driver implements only the standard Appium base driver interface and delegates to node-roku for issuing commands through Roku’s documented APIs.
- It contains no playback functionality, proprietary modules, or Crunchyroll-related code.
- References: [private], [private], [private], [private]

---

3. binary-decoder.js

**Claim from DMCA notice:**
`In binary-decoder.js, the repository reproduces Crunchyroll’s binary parsing logic, which is an internal utility owned by Crunchyroll.`

**Rebuttal:**
- Incorrect. This library was independently written by [private] from scratch as a small experimental project (≈100 LOC).
- It explores an unconventional idea: using JavaScript generators to implement a binary reader, where yield values guide parsing logic.
- The inspiration came from [private]’s open-source project [private] and presentations on generator-based flow control
- The design and implementation are [private] own, and it is highly unlikely to match any proprietary code.

---

**Other repositories/packages**
All other repositories and npm packages listed in the notice are independently authored projects based on public documentation and API specifications [private], [private], [private], [private]. None contain, replicate, or use any Crunchyroll code. Many of these packages have multiple independent implementations by other developers, demonstrating that these are widely used public APIs rather than proprietary material.

---

**Good Faith Statement, Jurisdiction, and Contact Information**

I have a good faith belief that the material was removed or disabled as a result of mistake or misidentification. None of [private] repositories or packages contain code copied or derived from Crunchyroll.

I consent to the jurisdiction of the Federal District Court for the Northern District of California. I will accept service of process from the complainant or their agent.

**My Contact Information:**
[private]
[private]
[private]
[private]

I declare, under penalty of perjury, that the information in this counter notification is accurate and that I am the owner or authorized to act on behalf of the owner of the material in question.

Signed,
/s/ [private]