DMCAed
A command-line tool and a python library to analyze GitHub DMCA takedown notices. It downloads, parses, and indexes takedown data from the GitHub DMCA repository to allow querying which repository URL can be found in takedown requests. Please note that this only means the repository URL might have been subject to takedown requests.
Installation
DMCAed requires at least python 3.11.
pip install dmcaed
CLI
dmcaed [--verbose] [command]
Commands
download: Download the latest DMCA notices from GitHubanalyze: Parse downloaded notices and extract takedown datadb: Rebuild the complete DMCA database (download + analyze)stats: Show statistics about the database contentnotices <url>: List takedown notices for a specific repository URL
Options
--verbose: Enable debug logging-h,--help: Show help message
Library Usage
from dmcaed import DMCAed
dmca = DMCAed()
notices = dmca.notices("https://github.com/user/repo")
if notices:
print(f"https://github.com/user/repo _might_ be subject to a takedown: {notices}")
How it works
- Download the latest DMCA notices from GitHub
- Extract repository URLs (path to files, issues, releases, etc. are truncated) mentioned in takedown notices
- Build a local SQLite database mapping repository URLs to takedown notices
Build and Release
### Prerequisites
The project uses hatch build system and dynamic CalVer versioning based on the
current date.
pip install hatch hatch-calver
Git clone and install DMCAed.
git clone ssh://git@codeberg.org/canarduck/dmcaed.git
pip install -e .
Update the package and publish it on PyPI
You first need to fetch DMCAs and create/update the database.
dmcaed db
Then use hatch to update version number and build the package.
hatch version release
# use `hatch version release,fix` in case you need to fix an already released package
Build the package and publish it on PyPI.
hatch build
hatch publish --user __token__ --auth PYPI_AUTH_TOKEN
Metadata
Release files for dmcaed 2026.4.18.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| dmcaed-2026.4.18.1.tar.gz | 6.7 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| dmcaed-2026.4.18.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 6.7 MB
Release files / dmcaed-2026.4.18.1.tar.gz
| Download URL | dmcaed-2026.4.18.1.tar.gz |
|---|---|
| Size | 6.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6df6326211c1e950165d39a5212b7cba1b23127fb54ecf557995c70b26acad26
|
|
BLAKE2b-256 checksum How to use checksums |
2128fd17f27f2cda9733119b7e19f8d996f87d82f0f8b0193409e8fa94732258
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.11.11 HTTPX/0.28.1
|
Release files / dmcaed-2026.4.18.1-py3-none-any.whl
| Download URL | dmcaed-2026.4.18.1-py3-none-any.whl |
|---|---|
| Size | 5.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
af8322152372b9e80093b9c21a75014b3d936945c0791c597ddd8878d94fbbf2
|
|
BLAKE2b-256 checksum How to use checksums |
7bbf14e50876c3e2b55cb03d86508af48d8913b93ac359b678942ba496ff085f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
Hatch/1.16.5 cpython/3.11.11 HTTPX/0.28.1
|
Security for dmcaed 2026.4.18.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.