A python3 reference implementation of an UbiCast MediaServer API client
Project description
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 isNone
, which means no configuration.setup_logging
: This argument must be a boolean. If set toTrue
, the logging to console will be configured. The default value isTrue
.
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
andconfig_path
bylocal_conf
in theMediaServerClient
init. - Replace all occurences of
MediaServerClient
.config
byMediaServerClient
.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
Built Distribution
Hashes for mediaserver-api-client-3.6.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c625394ed0dee950ae3828ac077a2c8b911a0cab9c4752ec7e416965a1eeb65f |
|
MD5 | 9c3608dc6fc8b424ae073882ed5b3dc4 |
|
BLAKE2b-256 | 19832ff169dfb1e4d994d16a2044694928248773883f1bef91bd97f2465d73fc |
Hashes for mediaserver_api_client-3.6-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dfbab76cacf4d66de5ae51cfbeb868d93e05dfabcb5b22042c1336329dbc2f18 |
|
MD5 | a216489828729234eeec30abf6d3f281 |
|
BLAKE2b-256 | 5b874086519e64179c8b6fe3e2f2795c845ccf7de913d03b091f5a03d702d647 |