Skip to main content

banner

PyPI PyPI - Python Version

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 — 110+ 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 110+ 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

Supported File Formats

This API supports a broad set of document and media formats, including:

  • Word Processing: DOC, DOCX, DOCM, ODT, DOT, DOTM
  • Spreadsheets: XLS, XLSX, XLSM, ODS, XLSB, XLT
  • Presentations: PPT, PPTX, PPS, PPSX, POT, POTM
  • PDF: PDF
  • Images: JPG, PNG, TIFF, BMP, GIF, PSD
  • Audio/Video: MP3, WAV, OGG, AVI, MOV, MKV, ASF, FLV, MK3D
  • Email: EML, MSG
  • eBook: EPUB, MOBI, FB2
  • Archives: ZIP, RAR, 7Z, TAR, CB7, CBR
  • Fonts: OTF, TTF, TTC, OTC
  • CAD: DWG, DXF
  • 3D: FBX, STL, 3DS, DAE, GLTF
  • Visio: VSD, VSDX, VDX, VSS, VSX, VTX
  • OneNote: ONE
  • GIS: KML, GPX, GEOJSON, GML, OSM, SHP
  • Other formats: MPP, MPT, TORRENT, VCF, VCR

Supports 110+ file formats.

For a complete list, see supported formats.

Examples

Read metadata

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")

Remove all metadata (sanitize)

from groupdocs.metadata import Metadata

with Metadata("input.pdf") as metadata:
    removed = metadata.sanitize()
    print("Removed:", removed)
    metadata.save("clean.pdf")

Export the metadata tree

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

Release files for groupdocs-metadata-net 26.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for groupdocs-metadata-net 26.7.0
File
groupdocs_metadata_net-26.7.0-py3-none-win_amd64.whl Python 3 none Windows x86-64 Details
groupdocs_metadata_net-26.7.0-py3-none-manylinux1_x86_64.whl Python 3 none Linux glibc 2.5+ x86-64 Details
groupdocs_metadata_net-26.7.0-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details
groupdocs_metadata_net-26.7.0-py3-none-macosx_10_14_x86_64.whl Python 3 none macOS 10.14+ x86-64 Details

Total release size: 686.8 MB

Release files / groupdocs_metadata_net-26.7.0-py3-none-win_amd64.whl

Download URL groupdocs_metadata_net-26.7.0-py3-none-win_amd64.whl
Size 171.7 MB
Tags Python 3 Windows x86-64
SHA-256 checksum
How to use checksums
7efc6d4eb3e65ccce35b3218464046b009dada397f3ba32d1f52a04b9f63e24c
BLAKE2b-256 checksum
How to use checksums
bc2427f95a7efcf1c7793d993ed67ad68261276630c18e0c55d26db8fa9e16a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / groupdocs_metadata_net-26.7.0-py3-none-manylinux1_x86_64.whl

Download URL groupdocs_metadata_net-26.7.0-py3-none-manylinux1_x86_64.whl
Size 171.5 MB
Tags Linux glibc 2.5+ x86-64 Python 3
SHA-256 checksum
How to use checksums
865725129bd5ec41d24123afc46c68ab7562482645c4c0d4c16dcb70edeeb79a
BLAKE2b-256 checksum
How to use checksums
eb2552e96fb64e1df12c980948d304a6aa7dc7bf751783930b1b266aec732adf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / groupdocs_metadata_net-26.7.0-py3-none-macosx_11_0_arm64.whl

Download URL groupdocs_metadata_net-26.7.0-py3-none-macosx_11_0_arm64.whl
Size 170.7 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
ec61a38e3829b72337402c4a263172aba24cd3860ec2663b0a1c7646c804f8ab
BLAKE2b-256 checksum
How to use checksums
4be9a98a41fb397a4a66b42b595889422471db02cdd65cc52beaa0de82104107
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / groupdocs_metadata_net-26.7.0-py3-none-macosx_10_14_x86_64.whl

Download URL groupdocs_metadata_net-26.7.0-py3-none-macosx_10_14_x86_64.whl
Size 172.9 MB
Tags Python 3 macOS 10.14+ x86-64
SHA-256 checksum
How to use checksums
c3a229fa909d1ac399235ec80d501879f4bbd9170e791fb72bcecf2031e76920
BLAKE2b-256 checksum
How to use checksums
037b018dcf16658cafe76e14846bdceb4886c043cbaf7e6a0aaa4bad8d830d11
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release history Release notifications | RSS feed

This release

26.7.0 This release

4 release files

26.5.0

4 release files

25.10

5 release files

25.4

4 release files

25.1

4 release files

24.9

2 release files

1.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page