{"id":50999533,"url":"https://github.com/investblog/dmca-watch","last_synced_at":"2026-06-20T13:02:20.287Z","repository":{"id":351519315,"uuid":"1211345746","full_name":"investblog/dmca-watch","owner":"investblog","description":"Open-source browser extension: DMCA complaint audit + cross-portfolio pattern detection for webmasters. Uses Google Transparency Report (public API) + optional Lumen Database enrichment.","archived":false,"fork":false,"pushed_at":"2026-04-15T10:27:08.000Z","size":200,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-15T11:36:54.310Z","etag":null,"topics":["browser-extension","copyright","counter-notice","dmca","dmca-abuse","manifest-v3","transparency-report","typescript","webmaster-tools","wxt"],"latest_commit_sha":null,"homepage":"https://dmca.cam","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/investblog.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-15T09:51:50.000Z","updated_at":"2026-04-15T10:27:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/investblog/dmca-watch","commit_stats":null,"previous_names":["investblog/dmca-watch"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/investblog/dmca-watch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/investblog%2Fdmca-watch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/investblog%2Fdmca-watch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/investblog%2Fdmca-watch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/investblog%2Fdmca-watch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/investblog","download_url":"https://codeload.github.com/investblog/dmca-watch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/investblog%2Fdmca-watch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34570539,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-20T02:00:06.407Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["browser-extension","copyright","counter-notice","dmca","dmca-abuse","manifest-v3","transparency-report","typescript","webmaster-tools","wxt"],"created_at":"2026-06-20T13:02:19.402Z","updated_at":"2026-06-20T13:02:20.276Z","avatar_url":"https://github.com/investblog.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DMCA Watch\n\nBrowser extension for webmasters: historical audit of DMCA complaints filed against your domains, with sender forensics and counter-notice templates. **Retrospective audit and pattern detection — not real-time alerting.**\n\n\u003e Status: **v0.1.0 draft / bootstrap** — Phase 0 source pivot done 2026-04-14, doc rewrite in progress, code surface migration is Phase 2. See [SPEC.md](SPEC.md) and [ROADMAP.md](ROADMAP.md).\n\u003e\n\u003e Primary source for v1 is **Google Transparency Report** (public undocumented JSON API, no token required). Lumen Database is optional secondary enrichment for users with a researcher token. Google Search Console is out of v1.\n\u003e\n\u003e Important: Google updates the Transparency Report dataset approximately once per month, so the data this extension surfaces is **30 to 60 days behind real-time events**. This is a fundamental constraint of the source, not a bug. The extension is positioned as a *retrospective audit tool*, not an *early warning system*.\n\u003e\n\u003e Landing: [dmca.cam](https://dmca.cam)\n\n## Why\n\nFake DMCA complaints are a large-scale problem: copyright trolls, competitors, reputation attacks. The usual effect is a URL quietly removed from Google Search without notifying the owner. If the owner does not find out and file a counter-notice in time, the URL stays removed.\n\nGoogle publishes the complete record of these removal actions in [Google Transparency Report](https://transparencyreport.google.com/copyright). It is searchable by domain, by reporting organization, and by copyright owner. But the official UI is built for casual research, not for portfolio-level monitoring of your own sites over time. There is no \"watchlist\" feature, no alerts on new complaints in the latest dataset refresh, no sender pattern detection across multiple domains. DMCA Watch is the audit-and-pattern layer that should already exist.\n\nFor users with a Lumen Database researcher token, optional secondary enrichment adds per-URL lists and richer forensics — Google Transparency Report publishes counts of removed URLs but not the actual URLs themselves; Lumen has them. Lumen is opt-in via Settings → Advanced; the extension works fully without it.\n\n## Planned features (v1)\n\n- Watchlist of domains with scheduled background checks against Google Transparency Report\n- Badge indicator on the extension icon for new complaints since the last source data refresh\n- Side panel with complaint details: sender, copyright owner, URL counts, dates\n- Sender Forensics Card: top reporters / copyright owners targeting a domain, monthly activity timeline\n- Counter-notice templates (DMCA 17 U.S.C. §512(g))\n- Honest data-freshness disclosure in welcome wizard, settings, and tooltips\n- Browser notifications on new complaints\n- Pause mode and excluded domains\n- IDN support\n- Dark / light / auto theme\n- Chrome, Edge, Firefox\n- Optional Lumen secondary enrichment (Settings → Advanced) for users with a researcher token\n\n## Sources\n\n- **v1 primary:** Google Transparency Report — undocumented JSON API on `transparencyreport.google.com/transparencyreport/api/v3/copyright/`. Public, no auth, ~monthly updates.\n- **v1 optional secondary:** Lumen Database — researcher API. Opt-in via Settings → Advanced. Adds per-URL lists and richer sender forensics. Note: Lumen staff confirmed in writing (April 2026) that they do not grant researcher credentials for the \"monitor your own domains\" use case — their program is restricted to journalism, academic, and legislative/policy research. This secondary path is only usable by people who already hold a Lumen token obtained for one of those purposes.\n- **v2 research:** Google Search Console (probably via OAuth + Messages inbox scraping) for verified property owners who want fresher signals. Not a v1 commitment.\n\n## Development\n\n```bash\nnpm install\nnpm run dev          # Chrome dev build\nnpm run dev:firefox  # Firefox dev build\nnpm run dev:edge     # Edge dev build\nnpm run build\nnpm run zip:all\nnpm run check        # TypeScript + ESLint\n```\n\n## Tech Stack\n\n- [WXT](https://wxt.dev)\n- TypeScript strict\n- Vanilla DOM, zero runtime dependencies\n\n## Sibling projects\n\nPart of the 301.st webmaster toolkit line, alongside [VirusTotal Domain Monitor](https://github.com/investblog/virustotal), Redirect Inspector, CookiePeek, Geo Tier Builder.\n\n## License\n\nTBD\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvestblog%2Fdmca-watch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finvestblog%2Fdmca-watch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finvestblog%2Fdmca-watch/lists"}