{ "info": { "author": "UbiCast", "author_email": "dev@ubicast.eu", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Multimedia :: Video", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "![PyPI - Python Version](https://img.shields.io/pypi/pyversions/mediaserver-api-client.svg)\n![PyPI](https://img.shields.io/pypi/v/mediaserver-api-client.svg)\n\n# mediaserver-client\n\nA python3 reference implementation of an UbiCast MediaServer API client.\n\n\n## Important\n\nFor production use, it is recommended to use the branch named \"stable\". The \"master\" branch is used for development.\n\n\n## Client class instantiation\n\nThe client class (`ms_client`.`client`.`MediaServerClient`) takes two arguments:\n* `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.\n* `setup_logging`: This argument must be a boolean. If set to `True`, the logging to console will be configured. The default value is `True`.\n\n\n## Notes about older client\n\nIf 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:\n\n* Remove the old client file (mediaserver_api_client.py).\n* Install the new client using the setup.py.\n* Replace the import path of `MediaServerClient` (see examples).\n* Replace the arguments named `config_dict` and `config_path` by `local_conf` in the `MediaServerClient` init.\n* Replace all occurences of `MediaServerClient`.`config` by `MediaServerClient`.`conf`.\n\n\n## Examples\n\n### Start/Stop a live\n\n``` python\nfrom ms_client.client import MediaServerClient\nmsc = MediaServerClient(local_conf='your-conf.json')\n\nresponse = msc.api('/lives/prepare', method='post')\nif response['success']:\n oid = response['oid']\n rtmp_uri = response['publish_uri']\n\n print(oid, rtmp_uri)\n\n print(msc.api('/lives/start', method='post', data={'oid': oid}))\n\n print(msc.api('/lives/stop', method='post', data={'oid': oid}))\n```\n\n### Remove all users function\n\n``` python\nfrom ms_client.client import MediaServerClient\nmsc = MediaServerClient(local_conf='your-conf.json')\n\n\ndef remove_all_users():\n print('Remove all users')\n users = msc.api('/users')['users']\n\n for user in users:\n msc.api('/users/delete', method='get', params={'id': user['id']})\n```\n\n### Add media with a video, make it published at once\n\n``` python\nfrom ms_client.client import MediaServerClient\nmsc = MediaServerClient(local_conf='your-conf.json')\n\nprint(msc.add_media('Test multichunk upload mp4', file_path='test.mp4', validated='yes', speaker_email='user@domain.com'))\n```\n\n### Create user personal channel and upload into it\n\n``` python\nfrom ms_client.client import MediaServerClient\nmsc = MediaServerClient(local_conf='your-conf.json')\n\npersonal_channel_oid = msc.api('/channels/personal/', method='get', params={'email': 'test@test.com'}).get('oid')\n\nrespone_like = {\n 'slug': 'testtestcom_05881',\n 'oid': 'c125855df7d36iudslp3',\n 'dbid': 113,\n 'title': 'test@test.com',\n 'success': True\n}\nif personal_channel_oid:\n print('Uploading to personal channel %s' % personal_channel_oid)\n\n print(msc.add_media('Test multichunk upload mp4', file_path='test.mp4', validated='yes', speaker_email='user@domain.com', channel=personal_channel_oid))\n```\n\n### Add media with a zip\n\n``` python\nfrom ms_client.client import MediaServerClient\nmsc = MediaServerClient(local_conf='your-conf.json')\n\nprint(msc.add_media('Test multichunk upload zip', file_path='/tmp/test.zip'))\nprint(msc.add_media(file_path='test.mp4'))\n```\n\n### Add a user\n\n``` python\nfrom ms_client.client import MediaServerClient\nmsc = MediaServerClient(local_conf='your-conf.json')\n\nprint(msc.api('users/add/', method='post', data={'email': 'test@test.com'}))\n```\n\n### Add users with csv file; example file (header should be included):\n\nusers.csv :\n\n``` csv\nFirstname;Lastname;Email;Company\nAlbert;Einstein;albert.einstein@test.com;Humanity\n```\n\n``` python\nfrom ms_client.client import MediaServerClient\nmsc = MediaServerClient(local_conf='your-conf.json')\n\nmsc.import_users_csv('users.csv')\n```\n\n### Add an annotation\n\n``` python\nfrom ms_client.client import MediaServerClient\nmsc = MediaServerClient(local_conf='your-conf.json')\n\nprint(msc.api('annotations/post', params={'oid': 'v125849d470d7v92kvtc', 'time': 1000}))\n```\n\n### Get Chapters\n\n``` python\nfrom ms_client.client import MediaServerClient\nmsc = MediaServerClient(local_conf='your-conf.json')\n\nprint(msc.api('annotations/chapters/list', params={'oid': 'v125849d470d7v92kvtc'}))\n```\n\n### Get annotations types list and print chapters id\n\n``` python\nfrom ms_client.client import MediaServerClient\nmsc = MediaServerClient(local_conf='your-conf.json')\n\nresponse = msc.api('annotations/types/list', params={'oid': 'v125849d470d7v92kvtc'})\nfor a in response['types']:\n if a['slug'] == 'chapter':\n print(a['id'])\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/UbiCastTeam/mediaserver-client", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://www.ubicast.eu/en/solutions/delivery/", "keywords": "api,client,mediaserver,ubicast", "license": "LGPLv3", "maintainer": "", "maintainer_email": "", "name": "mediaserver-api-client", "package_url": "https://pypi.org/project/mediaserver-api-client/", "platform": "", "project_url": "https://pypi.org/project/mediaserver-api-client/", "project_urls": { "Download": "https://github.com/UbiCastTeam/mediaserver-client", "Homepage": "https://www.ubicast.eu/en/solutions/delivery/" }, "release_url": "https://pypi.org/project/mediaserver-api-client/3.0/", "requires_dist": [ "requests (~=2.21)", "black ; extra == 'dev'", "flake8 ; extra == 'dev'", "twine ; extra == 'dev'" ], "requires_python": "", "summary": "A python3 reference implementation of an UbiCast MediaServer API client", "version": "3.0" }, "last_serial": 5312809, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "3fe8551f0a77c9f0fde333c5bffae9e4", "sha256": "ab614f38fa8b8cc13674279bfc8c105b06d0279d3f15e56bfa600b4031637dba" }, "downloads": -1, "filename": "mediaserver_api_client-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "3fe8551f0a77c9f0fde333c5bffae9e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 23492, "upload_time": "2019-03-21T09:41:53", "url": "https://files.pythonhosted.org/packages/00/86/5f451d50d75773c3fea275ef183d87314f752278f16a9a6e6945bd2b2f37/mediaserver_api_client-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6818687228527a7cf1ba076d5197fe17", "sha256": "2416d0d397f0288a4ae615f7a381a5afff5a270884f54e0ac4ccb04ead74efe9" }, "downloads": -1, "filename": "mediaserver-api-client-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6818687228527a7cf1ba076d5197fe17", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 7869, "upload_time": "2019-03-21T09:41:50", "url": "https://files.pythonhosted.org/packages/4c/6b/7f75d16fa13f0ca7f666743aeae4fe093d09d019b16267865393f15e705c/mediaserver-api-client-0.1.0.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "b8621e91cf4adbbc083cc360a33527bc", "sha256": "1ae84657373cccbd929e0ee965c6c488655b58c6b490353e7b5ed5dacf73fcf7" }, "downloads": -1, "filename": "mediaserver_api_client-2.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b8621e91cf4adbbc083cc360a33527bc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 13718, "upload_time": "2019-05-23T09:43:10", "url": "https://files.pythonhosted.org/packages/fc/5e/fa75c32c7a87a5599eda914069c295647acf89a3fd249435870418ded3a8/mediaserver_api_client-2.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e7223d993cb5564ea4e2233d660628d5", "sha256": "f6866d5a977a754276f2ab1f9a6369daedc71fb39d764f446673e6c440d820e8" }, "downloads": -1, "filename": "mediaserver-api-client-2.0.0.tar.gz", "has_sig": false, "md5_digest": "e7223d993cb5564ea4e2233d660628d5", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 12891, "upload_time": "2019-05-23T09:43:08", "url": "https://files.pythonhosted.org/packages/6f/db/40fb2f8ffee7ca3603663df72f299926b8e4878c04530ba0217ba4d61567/mediaserver-api-client-2.0.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "22614edff59c36b258abbd047df3098f", "sha256": "b55f2143f897ae3c2ba94fd7c860f7359f5b957bc4d7aa538eb9ae68f94fe9bb" }, "downloads": -1, "filename": "mediaserver_api_client-2.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "22614edff59c36b258abbd047df3098f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 13719, "upload_time": "2019-05-23T09:56:01", "url": "https://files.pythonhosted.org/packages/3c/28/d2ec8a9518b14c191f175ef7f12a4ca38d0cc49b49b3e804d4e512801b22/mediaserver_api_client-2.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "853a88b1273c17ee97d7a66e32c0a19b", "sha256": "a6509996125d519fd46008b7072c5f2446f1d60e734c1691be309227410f72b5" }, "downloads": -1, "filename": "mediaserver-api-client-2.0.1.tar.gz", "has_sig": false, "md5_digest": "853a88b1273c17ee97d7a66e32c0a19b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 12898, "upload_time": "2019-05-23T09:55:57", "url": "https://files.pythonhosted.org/packages/b3/d9/17bd2354f648bbec2aebe94315e0e3f9975c42b7239556bbe46edba4199e/mediaserver-api-client-2.0.1.tar.gz" } ], "2.0.1.post1": [ { "comment_text": "", "digests": { "md5": "a67cf1eb196c438608133e78e3ed8735", "sha256": "d92d9cdda5c858f40d7169978e45082a156e09446f23b1cd2a897981fbf15671" }, "downloads": -1, "filename": "mediaserver_api_client-2.0.1.post1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a67cf1eb196c438608133e78e3ed8735", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=3.5,<4.0", "size": 14068, "upload_time": "2019-05-23T12:48:03", "url": "https://files.pythonhosted.org/packages/e1/be/69c81c31b195e8739e72b0753443bb7a58799ff85c2b0cbbfc98a2256e0a/mediaserver_api_client-2.0.1.post1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "95b2206bc463d105ea0bface850147c2", "sha256": "cda8cf8b1b7f3e43c3f90cd56e84869db727ea7f010719f277bf5126ed0ff4e7" }, "downloads": -1, "filename": "mediaserver_api_client-2.0.1.post1-py3-none-any.whl", "has_sig": false, "md5_digest": "95b2206bc463d105ea0bface850147c2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5,<4.0", "size": 13780, "upload_time": "2019-05-23T09:58:45", "url": "https://files.pythonhosted.org/packages/48/52/105207cf3a62943ddc48a0879118936fade511bc07d7824726c9309d763e/mediaserver_api_client-2.0.1.post1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a6f12fcb63e5783f3912cf6944880185", "sha256": "d96509b0d5af1fa32c297605bef537d34522ccf053c35ece0dd90f971aa759ac" }, "downloads": -1, "filename": "mediaserver-api-client-2.0.1.post1.tar.gz", "has_sig": false, "md5_digest": "a6f12fcb63e5783f3912cf6944880185", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5,<4.0", "size": 12924, "upload_time": "2019-05-23T09:58:43", "url": "https://files.pythonhosted.org/packages/d5/36/40645e56489389453ce09e3d5ab19c7c3d52c5db0238f7835d9eaa9ffc69/mediaserver-api-client-2.0.1.post1.tar.gz" } ], "2.0.2": [ { "comment_text": "", "digests": { "md5": "e68704ac33c584acdff111cd8533eea6", "sha256": "256d96360faaed0b9fd7cf2e5490d03653330f3aeda2ed80b98fb9febcdca8ae" }, "downloads": -1, "filename": "mediaserver_api_client-2.0.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e68704ac33c584acdff111cd8533eea6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14608, "upload_time": "2019-05-24T13:11:02", "url": "https://files.pythonhosted.org/packages/e2/6f/9ce771e5d803654007fb49912d3d7d38eb750afc48de166b8695461b1943/mediaserver_api_client-2.0.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9121bab0a6652f3f430dfe48543e82b5", "sha256": "d393e449cb62d0aabfc17b8e95a195638d072cd6362960a08a108310577d9584" }, "downloads": -1, "filename": "mediaserver-api-client-2.0.2.tar.gz", "has_sig": false, "md5_digest": "9121bab0a6652f3f430dfe48543e82b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11724, "upload_time": "2019-05-24T13:11:03", "url": "https://files.pythonhosted.org/packages/b2/8f/bd6ad9d92dee7924475066bd3fef6e40ffad8e5ccaf588d86f45809cfe8d/mediaserver-api-client-2.0.2.tar.gz" } ], "3.0": [ { "comment_text": "", "digests": { "md5": "4ca469e13b09925264eb21a9b3d03b98", "sha256": "90084cff5ececeb635c1d65bab12b02b8cba9beeb4decad167416111f12c427c" }, "downloads": -1, "filename": "mediaserver_api_client-3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4ca469e13b09925264eb21a9b3d03b98", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14636, "upload_time": "2019-05-24T13:37:06", "url": "https://files.pythonhosted.org/packages/f8/08/def359c0a2084d181eff1e2c28de69b2e72e7a063bb055d997c01ed52172/mediaserver_api_client-3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70cba2fc4bfdca77e7485670c769e648", "sha256": "f86809edc9c42f41f423640dd14be06dc4e91851cbc0ec7c098274bd584a2bea" }, "downloads": -1, "filename": "mediaserver-api-client-3.0.tar.gz", "has_sig": false, "md5_digest": "70cba2fc4bfdca77e7485670c769e648", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11764, "upload_time": "2019-05-24T13:37:09", "url": "https://files.pythonhosted.org/packages/20/dd/38e4430ea0eaef66bd9a6f398597ec89496c1c803ede2b6d44a91c9f7357/mediaserver-api-client-3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4ca469e13b09925264eb21a9b3d03b98", "sha256": "90084cff5ececeb635c1d65bab12b02b8cba9beeb4decad167416111f12c427c" }, "downloads": -1, "filename": "mediaserver_api_client-3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4ca469e13b09925264eb21a9b3d03b98", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 14636, "upload_time": "2019-05-24T13:37:06", "url": "https://files.pythonhosted.org/packages/f8/08/def359c0a2084d181eff1e2c28de69b2e72e7a063bb055d997c01ed52172/mediaserver_api_client-3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70cba2fc4bfdca77e7485670c769e648", "sha256": "f86809edc9c42f41f423640dd14be06dc4e91851cbc0ec7c098274bd584a2bea" }, "downloads": -1, "filename": "mediaserver-api-client-3.0.tar.gz", "has_sig": false, "md5_digest": "70cba2fc4bfdca77e7485670c769e648", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11764, "upload_time": "2019-05-24T13:37:09", "url": "https://files.pythonhosted.org/packages/20/dd/38e4430ea0eaef66bd9a6f398597ec89496c1c803ede2b6d44a91c9f7357/mediaserver-api-client-3.0.tar.gz" } ] }