DOJ Multimedia Search API Client - Query and export document metadata
Project description
Epstein DOJ Multimedia Search Client
CLI tool to query the DOJ Multimedia Search API and export document metadata.
Installation
With uv installed:
uv sync
Or with pip:
pip install -r requirements.txt
Usage
Using the CLI module (recommended)
python3 -m epstein.cli --search "donald" --limit 50
Using legacy main.py (backward compatible)
python3 main.py --search "artificial intelligence" --limit 100
Basic search
python3 -m epstein.cli --search "donald" --limit 50
Search and save results to files
python3 -m epstein.cli --search "artificial intelligence" --limit 100 --prefix ai_docs
This creates three files:
ai_docs_TIMESTAMP.json- Full document metadata in JSONai_docs_TIMESTAMP.csv- Comma-separated values for spreadsheet importai_docs_TIMESTAMP_urls.txt- Plain text list of document URLs
Preview results without saving
python3 -m epstein.cli --search "epstein" --limit 20 --no-save --head 5
All options
python3 -m epstein.cli --help
Common options:
-s, --search TERM- Search query (empty = all documents)-l, --limit N- Maximum number of results to fetch-d, --delay SECONDS- Delay between API requests (default: 0.5)-o, --prefix NAME- Output file prefix (default: epstein_library)--no-save- Don't save to files, just display results--head N- Number of top results to display (default: 10)
Examples
Search for documents mentioning "Trump":
python3 -m epstein.cli --search "Trump" --limit 50
Fetch 200 results with minimal delay:
python3 -m epstein.cli --search "banking" --limit 200 --delay 0.1
Get the first 5 results only, no file saving:
python3 -m epstein.cli --search "contacts" --limit 5 --no-save
Project Structure
scrape-doj/
├── epstein/ # Main package
│ ├── __init__.py # Package initialization
│ ├── client.py # API client logic
│ └── cli.py # CLI interface
├── main.py # Legacy entry point (backward compatible)
├── README.md
├── pyproject.toml # Project configuration with uv
├── requirements.txt # pip-compatible requirements
└── uv.lock # Lockfile for reproducible installs
Output Format
Each result includes:
- Title - Document filename
- File - Actual filename
- URL - Direct link to the PDF (properly URL-encoded)
- Document ID - Unique identifier
- Pages - Page range in document
- File Size - Size in bytes
- Words - Total word count
- Indexed - When the document was indexed
Requirements
- Python 3.9+
requests- HTTP librarybeautifulsoup4- HTML/XML parsing
API
You can also import and use the client directly:
from epstein import DOJMultimediaSearchClient
client = DOJMultimediaSearchClient()
documents = client.search_all(query="donald", max_results=50)
# Save results
client.save_results(documents, prefix="my_search")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file doj_multimedia_search-0.1.0.tar.gz.
File metadata
- Download URL: doj_multimedia_search-0.1.0.tar.gz
- Upload date:
- Size: 32.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40376e10072cc7ffb6b32793ed4db66dfed334c2090435be7d07e45d7b078e18
|
|
| MD5 |
18daad81b3b003eb54908dcd958b8e87
|
|
| BLAKE2b-256 |
6399f5c70806ce672c3af3c2aa54b804a2aa1910682a7ecd19fc04c393d07de7
|
Provenance
The following attestation bundles were made for doj_multimedia_search-0.1.0.tar.gz:
Publisher:
publish.yml on soumyadepp/epstein-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
doj_multimedia_search-0.1.0.tar.gz -
Subject digest:
40376e10072cc7ffb6b32793ed4db66dfed334c2090435be7d07e45d7b078e18 - Sigstore transparency entry: 928416816
- Sigstore integration time:
-
Permalink:
soumyadepp/epstein-cli@604ebe0c39c3ccd6f81011d2d34eaeae7a2e034c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/soumyadepp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@604ebe0c39c3ccd6f81011d2d34eaeae7a2e034c -
Trigger Event:
release
-
Statement type:
File details
Details for the file doj_multimedia_search-0.1.0-py3-none-any.whl.
File metadata
- Download URL: doj_multimedia_search-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a7962ba32234e2f0c087f0ca5f884aa3b479895a6ad4dd1d0c20f9cdfa532b6
|
|
| MD5 |
9e3cf94a7738ca620683ca22e6ed4242
|
|
| BLAKE2b-256 |
3c194df19f023ff410103307419da486892f7bdd0ed9f9cd1246473f95055434
|
Provenance
The following attestation bundles were made for doj_multimedia_search-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on soumyadepp/epstein-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
doj_multimedia_search-0.1.0-py3-none-any.whl -
Subject digest:
8a7962ba32234e2f0c087f0ca5f884aa3b479895a6ad4dd1d0c20f9cdfa532b6 - Sigstore transparency entry: 928416818
- Sigstore integration time:
-
Permalink:
soumyadepp/epstein-cli@604ebe0c39c3ccd6f81011d2d34eaeae7a2e034c -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/soumyadepp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@604ebe0c39c3ccd6f81011d2d34eaeae7a2e034c -
Trigger Event:
release
-
Statement type: