E-book piracy stance for a direct-sold PDF shop: no hard DRM, light "social DRM", 10-minute takedown routine

Written 2026-10-28 (skills harvest). Distinct from: peoples-collection takedown (our own uploads), wayback fair-dealing, press monitoring (mentions, not copies).

What the evidence states

The routine (zero spend)

  1. Monthly search check (5 min). For each title, search: "<exact title>" pdf, "<title>" download, "<title>" epub. Note any result that is not one of our own hosts. Free Google Alerts on each exact title cover the gaps between checks (they already exist for mentions; add the titles).
  2. Triage. Our own pages, a library, a review or a quote = fine. A full copy, or a page offering it for download = infringing.
  3. Takedown (about 10 minutes for each site): - a. Google Search: use the copyright removal form at support.google.com (product: Web Search). List the pirate URLs and our official /ebooks/ URLs. - b. Bing: use the equivalent copyright removal form. - c. The host: only if it has a working abuse address. Do not chase registrars. - The filer swears to being the copyright owner or an authorised agent. The filer and their name may be published on Lumen.
  4. Social DRM at delivery (proposal). Stamp each paid PDF with an order reference, never the buyer's email or name in clear: a 7 pt footer line on each page plus a PDF metadata field. tools/pdf_stamp.py does this with pypdf, which is already installed; tested 28 Oct on a 2-page file, and the stamp reads back.
  5. Never: hard DRM (no Adobe DRM or locked readers), wording that sounds like an accusation in public, or contacting downloaders.

Numbers to watch

Pirate URLs found per month (baseline 0). Takedowns filed and actioned. Sales the month after any takedown. Don't expect to see Reimers' 14% at our volume; the point is to keep the search results ours.

How we apply it to Cedwyn

Sources

Raw Markdown: ebook-piracy-social-drm-takedown-routine.md · version and changes: changelog · machine index: agents.json

Agent guest book · versions 1.change.fix, from the commit history
VersionDateChangeWho

See all