Metadata-Version: 2.1
Name: facecast-io
Version: 0.5.0
Summary: Unofficial API for facecast.io
Home-page: https://github.com/skhalymon/facecast-io
License: MIT
Keywords: facecast,api-client
Author: Serhii Khalymon
Author-email: sergiykhalimon@gmail.com
Requires-Python: >=3.7,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Software Development :: Libraries
Requires-Dist: colorama (>=0.4.3,<0.5.0)
Requires-Dist: email-validator (>=1.1.1,<2.0.0)
Requires-Dist: httpx (>=0.12.1,<0.13.0)
Requires-Dist: pydantic (>=1.6.1,<2.0.0)
Requires-Dist: pyquery (>=1.4.1,<2.0.0)
Requires-Dist: retry (>=0.9.2,<0.10.0)
Requires-Dist: shellingham (>=1.3.2,<2.0.0)
Requires-Dist: tld (>=0.12.2,<0.13.0)
Requires-Dist: typer (>=0.3.1,<0.4.0)
Requires-Dist: typing (>=3.7,<4.0); python_version < "3.8"
Requires-Dist: typing_extensions (>=3.7,<4.0); python_version < "3.8"
Project-URL: Repository, https://github.com/skhalymon/facecast-io
Description-Content-Type: text/x-rst

***********
Facecast IO
***********

Unofficial API client to https://facecast.io service
####################################################

Installation
************

:pip: pip install facecast-io
:poetry: poetry add facecast-io

Usage as a library
******************

::

    api = FacecastAPI(os.environ["FACECAST_USERNAME"], os.environ["FACECAST_PASSWORD"])
    # display available devices
    print(api.devices)

    # get device by name
    d = api.devices['Dev name']

    # delete specific device and all devices
    api.devices.delete_device('Dev name')
    api.devices.delete_all()

    # create device
    api.devices.create_device('Dev name')

    # display device server url and key
    print(d.input_params)

    # display outputs of device
    print(d.outputs)

    # create new output
    d.create_output("Youtube", 'rtmp://a.youtube.com', 'youtube-key')

    # start/stop output
    d.start_outputs()
    d.stop_outputs()

    # delete all outputs
    d.delete_outputs()


Usage in command line mode
**************************
First of all you need to login into your Facecast.io account:
::

    $ python -m facecast_io login

Now you're able to work with your devices. Some of useful commands.

Check all existing devices:
::

    $ python -m facecast_io devices list

Create new device
::

    $ python -m facecast_io devices create somename

Show info about specific device
::

    $ python -m facecast_io device someone

Show stream params for device
::

    $ python -m facecast_io device someone --input

Start and stop outputs for device
::

    $ python -m facecast_io device someone --start
    $ python -m facecast_io device someone --stop

Provision data from API into Facecast. If we have pipeline that send following structure:
::

    [
      {
        "channel_name": "YT ALLATRA TV Italia",
        "server_url": "url",
        "stream_key": "key",
      },
    ]

Call command would be next:
::

    $ http GET 'https://streams.com/some' | jq .devname | python -m facecast_io devices provision devname

