The Mediahaven Python library provides a way to communicate with MediaHaven via the v2 REST API.
>>> import os >>> >>> from mediahaven import MediaHaven >>> from mediahaven.oauth2 import ROPCGrant, RequestTokenError >>> >>> # Get the credentials from env vars. >>> client_id = os.environ["CLIENT_ID"] >>> client_secret = os.environ["CLIENT_SECRET"] >>> username = os.environ["USERNAME"] >>> password = os.environ["PASSWORD"] >>> url = os.environ["MH_URL"] >>> >>> # Create a ROPC grant >>> grant = ROPCGrant(url, client_id, client_secret) >>> # Request a token >>> try: ... grant.request_token(username, password) ... except RequestTokenError as e: ... print(e) ... >>> # Initialize the MH client >>> client = MediaHaven(url, grant) >>> # Get record based on record ID >>> record = client.records.get("570...33b") >>> print(record.Internal.ArchiveStatus) on_disk >>> print(record.Dynamic.PID) qs...8q >>> # Get page based on query >>> records_page = client.records.search(q="+(batch_id:FLMB15)", nrOfResults=10, startIndex=0) >>> print(records_page.nr_of_results) 10 >>> print(records_page.total_nr_of_results) 22 >>> print(records_page.start_index) 0 >>> print(records_page[0].Dynamic.PID) w3...0k >>> # Get next page >>> print(records_page.has_more) True >>> next_page = records_page.next_page() >>> print(next_page.nr_of_results) 10 >>> print(next_page.total_nr_of_results) 22 >>> print(next_page.start_index) 10 >>> print(next_page[0].Dynamic.PID) 2z...40 >>> # Work via generator >>> for record in records_page.as_generator(): ... print(record.Dynamic.PID) ... w3...0k <SNIP 20 IDs> 9s...5t