A Streamlit component for show IIIF viewers.
Project description
Streamlit IIIF viewer
Streamlit component for viewing and interacting with manifests inside a
viewer of your choice directly in your Streamlit apps.
IIIF (International Image Interoperability Framework) is a set of open standards for delivering high-quality images and metadata over the web. It is widely used in digital humanities and by cultural heritage institutions (but not only!) to share, annotate, and study digitized materials.
Currently, this components supports the following IIIF-compliant viewers :
Features
- Display IIIF v3 manifests
- port for document-focused viewer (e.g. Tify) and multi-window scholarly viewer (e.g. Mirador)
- Accepts either a remote manifest URL or a local JSON object
- Optional viewers configuration via options (language, theme, default window settings, etc.)
- Automatically resizes within the Streamlit layout
- Works seamlessly with Python dict IIIF manifests generated in the app
Installation
pip install streamlit-iiif-viewer
Quickstart
Display a remote manifest
import streamlit as st
from streamlit_iiif_viewer import iiif_viewer
st.title("My IIIF Viewer (remote)")
manifest_url = "https://iiif.io/api/cookbook/recipe/0009-book-1/manifest.json"
iiif_viewer(
viewer="tify", # or any IIIF viewers available like "mirador"
manifest=manifest_url,
height=800,
options={"language": "fr"}, # optional viewer configuration
)
Display a local JSON manifest
import streamlit as st
from streamlit_iiif_viewer import iiif_viewer
st.title("My IIIF Viewer (local)")
manifest = {
"@context": "http://iiif.io/api/presentation/3/context.json",
"id": "https://example.org/manifest/demo",
"type": "Manifest",
"label": {"en": ["Local Demo"]},
"items": [],
}
iiif_viewer(
viewer="tify", # or any IIIF viewers available like "mirador"
manifest=manifest,
height=700,
)
Viewer Configuration
You can customize the behavior of each viewer using the options argument. Full configuration guides are available in the official documentation:
[!IMPORTANT]
For now, Mirador plugins like text-overlay or image-tools are not includes.
Tify Example
options = {
"language": "de",
"pageLabelFormat": "P (L)",
"pages": [2, 3],
"pan": {"x": ".45", "y": " .6"},
"zoom": "1.2"
}
Mirador Example
options = {
"selectedTheme":"dark",
"language":"fr",
"workspace": {
"type": "mosaic"
},
"workspaceControlPanel": {
"enabled": true
},
"theme": {
"palette": {
"type": "light"
}
}
}
Development
[!NOTE] These steps are required for development purposes or to modify the component code only.
- Clone this repository:
git clone
cd streamlit_iiif_viewer
- Install the Python dependencies:
# create a virtual environment
python3.11 -m venv .venv
# activate it
. .venv/bin/activate
# install dependencies
pip3 install -r requirements.txt
- Install frontend dependencies
cd streamlit_iiif_viewer/frontend
yarn install
npm install mirador # sometimes needed to explicitly install mirador (for build)
- Making changes
To make changes, first go to streamlit_iiif_viewer/__init__.py and make sure the
variable _RELEASE is set to False. This will make the component use the local
version of the frontend code, and not the built project.
Then start the dev server for frontend:
cd streamlit_iiif_viewer/frontend/
yarn dev
this start VITE server at http://localhost:5173/.
Open another terminal and run the Streamlit app to test the component:
cd streamlit_iiif_viewer/
streamlit run __init__.py
References
Specific IIIF References
- IIIF Presentation API v3 – https://iiif.io/api/presentation/3.0/
- IIIF Cookbook (example manifests) – https://iiif.io/api/cookbook/
This template is based on these canvas/example projects:
and streamlit documentation:
- Streamlit Components – https://docs.streamlit.io/library/components
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 streamlit_iiif_viewer-0.0.1b0.tar.gz.
File metadata
- Download URL: streamlit_iiif_viewer-0.0.1b0.tar.gz
- Upload date:
- Size: 1.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b738962dd7fc8053477f854e82c96d9c36b05d80e03f640e6b9c212b4de4278
|
|
| MD5 |
bf090a5013f902888696e1cb5c9c429b
|
|
| BLAKE2b-256 |
a2ed71c3957e91ab2de1869d94a068b9c6f49caec509cc43cb596a3fb133b0d1
|
File details
Details for the file streamlit_iiif_viewer-0.0.1b0-py3-none-any.whl.
File metadata
- Download URL: streamlit_iiif_viewer-0.0.1b0-py3-none-any.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66e07449bc2b6055b7cbef20808775029b41520071f5f7f5bc53aefdde497fad
|
|
| MD5 |
455fd53d56fd9ff27f0df52257517174
|
|
| BLAKE2b-256 |
629cf68e8b71ccadbb60706ed60676c078e00fd3fcd009b09f79e1e79215e934
|