Skip to main content

A python3 reference implementation of an UbiCast MediaServer API client

Project description

PyPI - Python Version PyPI Travis (.org) branch

mediaserver-client

A python3 reference implementation of an UbiCast MediaServer API client.

Installation

To install the latest release of the mediaserver-client from PyPI :

pip install mediaserver-api-client

For development, the package can be installed in editable mode to allow changes on it :

git clone git@github.com:UbiCastTeam/mediaserver-client.git
cd mediaserver-client/
# there it's recommended to create/enable some virtualenv
pip install --editable .

Important

For production use, it is recommended to use the branch named "stable". The "master" branch is used for development.

Client class instantiation

The client class (ms_client.client.MediaServerClient) takes two arguments:

  • local_conf: This argument can be either a dict, a path (str object) or a unix user (unix:msuser for example). The default value is None, which means no configuration.
  • setup_logging: This argument must be a boolean. If set to True, the logging to console will be configured. The default value is True.

Notes about older client

If you are using the first version of this client (a single file named mediaserver_api_client.py), here are the steps to update your client:

  • Remove the old client file (mediaserver_api_client.py).
  • Install the new client using the setup.py.
  • Replace the import path of MediaServerClient (see examples).
  • Replace the arguments named config_dict and config_path by local_conf in the MediaServerClient init.
  • Replace all occurences of MediaServerClient.config by MediaServerClient.conf.

Examples

Start/Stop a live

from ms_client.client import MediaServerClient
msc = MediaServerClient(local_conf='your-conf.json')

response = msc.api('/lives/prepare', method='post')
if response['success']:
    oid = response['oid']
    rtmp_uri = response['publish_uri']

    print(oid, rtmp_uri)

    print(msc.api('/lives/start', method='post', data={'oid': oid}))

    print(msc.api('/lives/stop', method='post', data={'oid': oid}))

Remove all users function

from ms_client.client import MediaServerClient
msc = MediaServerClient(local_conf='your-conf.json')


def remove_all_users():
    print('Remove all users')
    users = msc.api('/users')['users']

    for user in users:
        msc.api('/users/delete', method='get', params={'id': user['id']})

Add media with a video, make it published at once

from ms_client.client import MediaServerClient
msc = MediaServerClient(local_conf='your-conf.json')

print(msc.add_media('Test multichunk upload mp4', file_path='test.mp4', validated='yes', speaker_email='user@domain.com'))

Create user personal channel and upload into it

from ms_client.client import MediaServerClient
msc = MediaServerClient(local_conf='your-conf.json')

personal_channel_oid = msc.api('/channels/personal/', method='get', params={'email': 'test@test.com'}).get('oid')

respone_like = {
    'slug': 'testtestcom_05881',
    'oid': 'c125855df7d36iudslp3',
    'dbid': 113,
    'title': 'test@test.com',
    'success': True
}
if personal_channel_oid:
    print('Uploading to personal channel %s' % personal_channel_oid)

    print(msc.add_media('Test multichunk upload mp4', file_path='test.mp4', validated='yes', speaker_email='user@domain.com', channel=personal_channel_oid))

Add media with a zip

from ms_client.client import MediaServerClient
msc = MediaServerClient(local_conf='your-conf.json')

print(msc.add_media('Test multichunk upload zip', file_path='/tmp/test.zip'))
print(msc.add_media(file_path='test.mp4'))

Add a user

from ms_client.client import MediaServerClient
msc = MediaServerClient(local_conf='your-conf.json')

print(msc.api('users/add/', method='post', data={'email': 'test@test.com'}))

Add users with csv file; example file (header should be included):

users.csv :

Firstname;Lastname;Email;Company
Albert;Einstein;albert.einstein@test.com;Humanity
from ms_client.client import MediaServerClient
msc = MediaServerClient(local_conf='your-conf.json')

msc.import_users_csv('users.csv')

Add an annotation

from ms_client.client import MediaServerClient
msc = MediaServerClient(local_conf='your-conf.json')

print(msc.api('annotations/post', params={'oid': 'v125849d470d7v92kvtc', 'time': 1000}))

Get Chapters

from ms_client.client import MediaServerClient
msc = MediaServerClient(local_conf='your-conf.json')

print(msc.api('annotations/chapters/list', params={'oid': 'v125849d470d7v92kvtc'}))

Get annotations types list and print chapters id

from ms_client.client import MediaServerClient
msc = MediaServerClient(local_conf='your-conf.json')

response = msc.api('annotations/types/list', params={'oid': 'v125849d470d7v92kvtc'})
for a in response['types']:
    if a['slug'] == 'chapter':
        print(a['id'])

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mediaserver-api-client-3.6.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

mediaserver_api_client-3.6-py2.py3-none-any.whl (15.5 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file mediaserver-api-client-3.6.tar.gz.

File metadata

  • Download URL: mediaserver-api-client-3.6.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.3

File hashes

Hashes for mediaserver-api-client-3.6.tar.gz
Algorithm Hash digest
SHA256 c625394ed0dee950ae3828ac077a2c8b911a0cab9c4752ec7e416965a1eeb65f
MD5 9c3608dc6fc8b424ae073882ed5b3dc4
BLAKE2b-256 19832ff169dfb1e4d994d16a2044694928248773883f1bef91bd97f2465d73fc

See more details on using hashes here.

File details

Details for the file mediaserver_api_client-3.6-py2.py3-none-any.whl.

File metadata

  • Download URL: mediaserver_api_client-3.6-py2.py3-none-any.whl
  • Upload date:
  • Size: 15.5 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.28.1 CPython/3.7.3

File hashes

Hashes for mediaserver_api_client-3.6-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 dfbab76cacf4d66de5ae51cfbeb868d93e05dfabcb5b22042c1336329dbc2f18
MD5 a216489828729234eeec30abf6d3f281
BLAKE2b-256 5b874086519e64179c8b6fe3e2f2795c845ccf7de913d03b091f5a03d702d647

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page