# Open Library ## Open Metadata Exchange (OME) plugin An OME plugin defines how to import and publish metadata from an Open Education Resources system. `plugin.py` provides the class that enables OME to understand Open Library metadata. This plugin defines one or more: * `mimetypes` so that Open Library json data can be stored as enclosures in InterNetNews (INN) articles. * `newsgroups` so Open Library metadata can be published to and subscribed from those INN newsgroups. The plugin is composed of at least three code files. * `plugin.py`: Defines `mimetypes`, `newsgroups`, and a `make_metadata_card()` function that translates Open Library data into an OME EducationalResource. * `openlibrary_work_models.py`: Generated by Pydantic tools to make it fast and reliable to import Open Library work metadata. * `openlibrary_authors_models.py`: Generated by Pydantic tools to make it fast and reliable to import Open Library author metadata. * `bulk_import.py`: Utilities to convert data directly from the Open Library API into OME EducationalResources. Open Library is an example of dealing with linked metadata where one API call accesses a Work (e.g. a book) and a second API call is required to access linked metadata about that Work's Authors. {py:mod}`OpenLibrary module ` > [!NOTE] > > Please ***do NOT edit*** this line and below because when the docs are rebuilt, these lines will be overwritten by scripts/sync_plugin_docs.py. **MIMETYPES:** 1. application/vnd.openlibrary.authors+json 2. application/vnd.openlibrary.work+json **NEWSGROUPS:** {'ome.openlibrary': "Metadata from the Internet Archive's Open Library https://openlibrary.org"} ```text server/plugins/openlibrary ├── __init__.py ├── bulk_import.py ├── openlibrary_article.eml ├── openlibrary_authors_models.py ├── openlibrary_authors.json ├── openlibrary_item.json ├── openlibrary_ome_item.json ├── openlibrary_work_models.py ├── openlibrary_work.json ├── plugin.py └── README.md 1 directory, 11 files ```