If so you can download any of the below versions for testing. The product will function as normal except for an evaluation limitation. At the time of purchase we provide a license file via email that will allow the product to work in its full capacity. If you would also like an evaluation license to test without any restrictions for 30 days, please follow the directions provided here.
If you experience errors, when you try to download a file, make sure your network policies (enforced by your company or ISP) allow downloading ZIP and/or MSI files.


Product Page | Docs | Demos | API Reference | Blog | Free Support | Temporary License
GroupDocs.Metadata for Python via .NET is a metadata management API that reads, edits, and removes metadata from documents, spreadsheets, presentations, PDFs, images, audio, and video — 70+ file formats. It works with the major metadata standards (XMP, EXIF, IPTC, Image Resource Blocks, ID3, document properties) through one unified, format-independent API.
Get Started
pip install groupdocs-metadata-net
from groupdocs.metadata import Metadata
with Metadata("document.docx") as metadata:
root = metadata.get_root_package()
print("Format:", root.file_type.file_format)
How It Works
The package is a self-contained Python wheel (~160 MB) that bundles the embedded .NET runtime and everything needed to process metadata. No external software installation is required — just pip install and start reading metadata. The wheel works across Python 3.5 – 3.14 on Windows, Linux, and macOS (Intel + Apple Silicon).
Features
- Read, edit, and remove metadata from 70+ formats with one unified API.
- Metadata standards: XMP, EXIF, IPTC IIM, Image Resource Blocks, ID3 (ID3v1/ID3v2), Lyrics3, APE.
- Search engine: find, update, add, and remove properties with simple Python predicates and predefined tags.
- One-call sanitize: strip every detected property before sharing a file.
- Document inspection: detect format/MIME type, page count, encryption, digital signatures, comments, and hidden pages.
- Export: dump the metadata tree to CSV, XLSX, JSON, or XML.
- Cross-Platform: Windows x64/x86, Linux x64, macOS x64/ARM64.
Common Tasks
- Detect a file’s real format and MIME type by its internal structure
- Read EXIF/XMP/IPTC properties from photos
- Read and edit ID3/APE/Lyrics tags in audio files
- Strip author, comments, and revision history from Office documents before publishing
- Find and remove properties that match a condition (by tag, name, type, or value)
- Export a document’s full metadata tree to a spreadsheet for auditing
- Feed extracted metadata into a search, compliance, or DAM pipeline
For a complete list, see supported formats.
- Microsoft Office (Word, Excel, PowerPoint, Visio, Project, OneNote)
- PDF
- OpenDocument (ODT, ODS, ODP)
- Images (JPEG, PNG, GIF, BMP, TIFF, WebP, DICOM, JPEG 2000, PSD, HEIF/HEIC, CR2/DNG and other RAW)
- Audio (MP3, WAV, OGG)
- Video (AVI, MOV, FLV, ASF, Matroska/MKV)
- Email (EML, MSG)
- eBook (EPUB)
- Archives (ZIP, RAR, 7Z, TAR)
- CAD (DWG, DXF)
- 3D (FBX, STL, 3DS, DAE)
- Fonts (TTF, OTF) and other formats (vCard, torrent)
Examples
from groupdocs.metadata import Metadata
with Metadata("input.docx") as metadata:
for prop in metadata.find_properties(lambda p: True):
print(f"{prop.name} = {prop.value}")
Get document info
from groupdocs.metadata import Metadata
with Metadata("input.xlsx") as metadata:
info = metadata.get_document_info()
print("Format:", info.file_type.file_format)
print("MIME type:", info.file_type.mime_type)
print("Pages:", info.page_count)
print("Size:", info.size, "bytes")
print("Encrypted:", info.is_encrypted)
Find properties by tag
from groupdocs.metadata import Metadata
from groupdocs.metadata.tagging import Tags
with Metadata("input.docx") as metadata:
authors = metadata.find_properties(lambda p: Tags.person.creator in list(p.tags))
for prop in authors:
print(prop.name, "=", prop.value)
Set / update properties and save
from datetime import datetime
from groupdocs.metadata import Metadata
from groupdocs.metadata.common import PropertyValue
from groupdocs.metadata.tagging import Tags
with Metadata("input.docx") as metadata:
affected = metadata.set_properties(
lambda p: Tags.time.created in list(p.tags),
PropertyValue(datetime.now()),
)
print("Updated:", affected)
metadata.save("output.docx")
from groupdocs.metadata import Metadata
with Metadata("input.pdf") as metadata:
removed = metadata.sanitize()
print("Removed:", removed)
metadata.save("clean.pdf")
from groupdocs.metadata import Metadata
from groupdocs.metadata.export import ExportManager, ExportFormat
with Metadata("input.pdf") as metadata:
properties = list(metadata.find_properties(lambda p: True))
ExportManager(properties).export("metadata.xlsx", ExportFormat.XLSX)
Load from a stream
import io
from groupdocs.metadata import Metadata
with open("input.docx", "rb") as stream:
with Metadata(stream) as metadata:
print("Format:", metadata.file_format)
buf = io.BytesIO(downloaded_bytes)
with Metadata(buf) as metadata:
print(metadata.get_document_info().file_type.file_format)
AI Agent & LLM Friendly
This package is designed for seamless integration with AI agents, LLMs, and automated code generation tools.
AGENTS.md in the package — AI coding assistants (Claude Code, Cursor, GitHub Copilot) auto-discover the API surface, usage patterns, and troubleshooting tips from the installed package- MCP server — connect your AI tool to GroupDocs documentation for on-demand API lookups:
{ "mcpServers": { "groupdocs-docs": { "url": "https://docs.groupdocs.com/mcp" } } }
- Machine-readable docs — full documentation available as plain text for RAG and LLM context:
- Single file:
https://docs.groupdocs.com/metadata/python-net/llms-full.txt - Per page: append
.md to any docs URL
Evaluation Mode
The API works without a license in evaluation mode, with these limitations:
- Only the first few properties of each metadata package are read.
- Saving files is disabled —
save() raises an “Evaluation only” exception.
To remove these limitations, apply a license or request a temporary license:
from groupdocs.metadata import License
License().set_license("path/to/license.lic")
Or set the environment variable (auto-applied at import):
export GROUPDOCS_LIC_PATH="path/to/license.lic"
Troubleshooting
| Issue | Platform | Fix |
|---|
System.Drawing.Common is not supported | Linux/macOS | apt-get install libgdiplus (Linux) or brew install mono-libgdiplus (macOS) |
The type initializer for 'Gdip' threw an exception | macOS | brew install mono-libgdiplus |
| Errors processing images that need fonts | Linux | apt-get install ttf-mscorefonts-installer fontconfig && fc-cache -f |
DOTNET_SYSTEM_GLOBALIZATION_INVARIANT errors | Linux | Do NOT set this variable. ICU must be available. |
System Requirements
- Python 3.5 - 3.14
- Windows x64/x86, Linux x64, macOS x64/ARM64
More Resources
Also available for other platforms:
.NET | Java | Node.js
Product Page | Docs | Demos | API Reference | Blog | Free Support | Temporary License
Self-contained Python wheel of GroupDocs.Metadata 26.5 for Windows (x64). Compatible with Python 3.5-3.14. No external dependencies required. Read, write and remove metadata from documents and images.
Added: 25/5/2026
Downloads: 
Self-contained Python wheel of GroupDocs.Metadata 26.5 for Linux (x64). Compatible with Python 3.5-3.14. Requires libgdiplus, libfontconfig1, and fonts (e.g. ttf-mscorefonts-installer). Read, write and remove metadata from documents and images.
Added: 25/5/2026
Downloads: 
Self-contained Python wheel of GroupDocs.Metadata 26.5 for macOS arm64 (Apple Silicon). Compatible with Python 3.5-3.14. Requires mono-libgdiplus (brew install mono-libgdiplus). Read, write and remove metadata from documents and images.
Added: 25/5/2026
Downloads: 
Self-contained Python wheel of GroupDocs.Metadata 26.5 for macOS amd64 (Intel). Compatible with Python 3.5-3.14. Requires mono-libgdiplus (brew install mono-libgdiplus). Read, write and remove metadata from documents and images.
Added: 25/5/2026
Downloads: 
This contains the WHL package of GroupDocs.Metadata for Python via .NET
Added: 1/12/2025
Downloads: 
This contains the WHL package of GroupDocs.Metadata for Python via .NET
Added: 1/12/2025
Downloads: 
This contains the WHL package of GroupDocs.Metadata for Python via .NET
Added: 1/12/2025
Downloads: 
This contains the WHL package of GroupDocs.Metadata for Python via .NET
Added: 1/12/2025
Downloads: 
This contains the WHL package of GroupDocs.Metadata for Python via .NET
Added: 1/12/2025
Downloads: 
This contains the WHL package of GroupDocs.Metadata for Python via .NET
Added: 8/4/2025
Downloads: 
This contains the WHL package of GroupDocs.Metadata for Python via .NET
Added: 8/4/2025
Downloads: 
This contains the WHL package of GroupDocs.Metadata for Python via .NET
Added: 8/4/2025
Downloads: 
This contains the WHL package of GroupDocs.Metadata for Python via .NET
Added: 8/4/2025
Downloads: 
This contains the WHL package of GroupDocs.Metadata for Python via .NET
Added: 24/1/2025
Downloads: 
This contains the WHL package of GroupDocs.Metadata for Python via .NET
Added: 6/9/2024
Downloads: 