This is the codebase for the IIIF Presentation Validator, which can be seen at http://iiif.io/api/presentation/validator/.
(Write me)
JSON Response
{
"url": "<SUBMITTED URL>",
"error": "<ERROR MESSAGE>",
"okay": 1,
"warnings": []
}| Key | Definition | Example Value |
|---|---|---|
| url | Submitted URL for the manifest | http://example.com/iiif/manifest.json |
| error | The text of the breaking error | sc:Manifest['thumbnail'] has broken value |
| okay | Did the manifest parse properly? | 1 or 0 |
| warnings | An array of warning messages | "WARNING: Resource type 'sc:Manifest' should have 'description' set\n" |
uv sync
pip install .
Either option will install the iiif-validator command. This command allows you to run the validator server or validate local or remote files from the command line.
To validate a manifest from the command line:
# Using uv
uv run iiif-validator validate --version <version> <url-or-file>
# Using pip install
iiif-validator validate --version <version> <url-or-file>
It is also possible to validate a directory and any sub directories:
# Using uv
uv run iiif-validator validate-dir --version <version> --extension <extension> <directory>
# Using pip install
iiif-validator validate-dir --version <version> --extension <extension> <directory>
To run the server:
# Using uv
uv run iiif-validator serve
# Using pip install
iiif-validator serve
This should start up a local server, running at localhost:8080. To test it, try this url and see if you get a JSON response that looks like this:
{
"url": "http://iiif.io/api/presentation/2.1/example/fixtures/1/manifest.json",
"error": "None",
"okay": 1,
"warnings": ["WARNING: Resource type 'sc:Manifest' should have 'description' set\n", "WARNING: Resource type 'sc:Sequence' should have '@id' set\n", "WARNING: Resource type 'oa:Annotation' should have '@id' set\n", "WARNING: Resource type 'dctypes:Image' should have 'format' set\n"]
}You may also use --hostname to specify a hostname or IP address to which to bind and --port for a port to which to bind.