jwplatform-py icon indicating copy to clipboard operation
jwplatform-py copied to clipboard

:snake: Python library for the JW Platform API

====================== JW Platform API Client

A Python client library for accessing JW Platform_ API. Visit JW Player Developer_ site for more information about JW Platform API.

Installation

JW Platform API library can be installed using pip:

.. code-block:: bash

pip install jwplatform

Library has Requests_ package as dependency. It will be installed automatically when installing using pip.

Usage

Import jwplatform library:

.. code-block:: python

from jwplatform.client import JWPlatformClient

Initialize jwplatform client instance. API keys can be created in the JW Platform dashboard on the API Credentials page. Copy the secret value to use here.

.. code-block:: python

jwplatform_client = JWPlatformClient('API_SECRET')

Make an API request:

.. code-block:: python

response = jwplatform_client.Media.get(site_id='SITE_ID', media_id='MEDIA_ID')

If API request is successful, response variable will contain dictionary with information related to the response and the actual video data in response.json_body:

.. code-block:: python

response.json_body {"id": "Ny05CEfj", "type": "media", "created": "2019-09-25T15:29:11.042095+00:00", "last_modified": "2019-09-25T15:29:11.042095+00:00", "metadata": { "title": "Example video", "tags": ["new", "video"] }}

JW Platform API library will raise exception inherited from jwplatform.errors.APIError if anything goes wrong. For example, if there is no media with the specified media_id requesting it will raise jwplatform.errors.NotFoundError:

.. code-block:: python

try: jwplatform_client.Media.get(site_id='SITE_ID', media_id='BAD_MEDIA_ID') except jwplatform.errors.NotFoundError as err: print(err)

For the complete list of available exception see jwplatform/errors.py_ file.

List calls allow for (optional) querying and filtering. This can be done by passing the query parameters as a dict to the query_params keyword argument on list calls:

.. code-block:: python

response = jwplatform_client.Media.list( site_id="SITE_ID", query_params={ "page": 1, "page_length": 10, "sort": "title:asc", "q": "external_id: abcdefgh", }, )

All query parameters are optional. page, page_length, and sort parameters default to 1, 10, and "created:dsc", respectively. The q parameter allows for filtering on different attributes and may allow for AND/OR querying depending on the resource. For full documentation on the query syntax and endpoint specific details please refer to developer.jwplayer.com.

Source Code

Source code for the JW Platform API library provided on GitHub_.

V1 Client

The V1 Client remains available for use, but is deprecated. We strongly recommend using the V2 Client when possible.

To use the V1 Client, import the Client from the v1 namespace.

.. code-block:: python

import jwplatform.v1

api_client = jwplatform.v1.Client('SITE_ID', 'V1_API_SECRET')

License

JW Platform API library is distributed under the MIT license_.

.. _JW Platform: https://www.jwplayer.com/products/jwplatform/ .. _JW Player Developer: https://developer.jwplayer.com/jwplayer/reference#introduction-to-api-v2 .. _jwplatform/errors.py: https://github.com/jwplayer/jwplatform-py/blob/master/jwplatform/errors.py .. _MIT license: https://github.com/jwplayer/jwplatform-py/blob/master/LICENSE .. _GitHub: https://github.com/jwplayer/jwplatform-py .. _Requests: https://pypi.python.org/pypi/requests/