Skip to main content

Vonage video package

Project description

Vonage Video API

This package contains the code to use Vonage's Video API in Python. This package includes methods for working with video sessions, streams, signals, and more.

Usage

It is recommended to use this as part of the main vonage package. The examples below assume you've created an instance of the vonage.Vonage class called vonage_client.

You will use the custom Pydantic data models to make most of the API calls in this package.

Generate a Client Token

from vonage_video import TokenOptions

token_options = TokenOptions(session_id='your_session_id', role='publisher')
client_token = vonage_client.video.generate_client_token(token_options)

Create a Session

from vonage_video import SessionOptions

session_options = SessionOptions(media_mode='routed')
video_session = vonage_client.video.create_session(session_options)

List Streams

streams = vonage_client.video.list_streams(session_id='your_session_id')

Get a Stream

stream_info = vonage_client.video.get_stream(session_id='your_session_id', stream_id='your_stream_id')

Change Stream Layout

from vonage_video import StreamLayoutOptions

layout_options = StreamLayoutOptions(type='bestFit')
updated_streams = vonage_client.video.change_stream_layout(session_id='your_session_id', stream_layout_options=layout_options)

Send a Signal

from vonage_video import SignalData

signal_data = SignalData(type='chat', data='Hello, World!')
vonage_client.video.send_signal(session_id='your_session_id', data=signal_data)

Disconnect a Client

vonage_client.video.disconnect_client(session_id='your_session_id', connection_id='your_connection_id')

Mute a Stream

vonage_client.video.mute_stream(session_id='your_session_id', stream_id='your_stream_id')

Mute All Streams

vonage_client.video.mute_all_streams(session_id='your_session_id', excluded_stream_ids=['stream_id_1', 'stream_id_2'])

Disable Mute All Streams

vonage_client.video.disable_mute_all_streams(session_id='your_session_id')

Start Captions

from vonage_video import CaptionsOptions

captions_options = CaptionsOptions(language='en-US')
captions_data = vonage_client.video.start_captions(captions_options)

Stop Captions

from vonage_video import CaptionsData

captions_data = CaptionsData(captions_id='your_captions_id')
vonage_client.video.stop_captions(captions_data)

Start Audio Connector

from vonage_video import AudioConnectorOptions

audio_connector_options = AudioConnectorOptions(session_id='your_session_id', token='your_token', url='https://example.com')
audio_connector_data = vonage_client.video.start_audio_connector(audio_connector_options)

Start Experience Composer

from vonage_video import ExperienceComposerOptions

experience_composer_options = ExperienceComposerOptions(session_id='your_session_id', token='your_token', url='https://example.com')
experience_composer = vonage_client.video.start_experience_composer(experience_composer_options)

List Experience Composers

from vonage_video import ListExperienceComposersFilter

filter = ListExperienceComposersFilter(page_size=10)
experience_composers, count, next_page_offset = vonage_client.video.list_experience_composers(filter)
print(experience_composers)

Get Experience Composer

experience_composer = vonage_client.video.get_experience_composer(experience_composer_id='experience_composer_id')

Stop Experience Composer

vonage_client.video.stop_experience_composer(experience_composer_id='experience_composer_id')

List Archives

from vonage_video import ListArchivesFilter

filter = ListArchivesFilter(offset=2)
archives, count, next_page_offset = vonage_client.video.list_archives(filter)
print(archives)

Start Archive

from vonage_video import CreateArchiveRequest

archive_options = CreateArchiveRequest(session_id='your_session_id', name='My Archive')
archive = vonage_client.video.start_archive(archive_options)

Get Archive

archive = vonage_client.video.get_archive(archive_id='your_archive_id')
print(archive)

Delete Archive

vonage_client.video.delete_archive(archive_id='your_archive_id')

Add Stream to Archive

from vonage_video import AddStreamRequest

add_stream_request = AddStreamRequest(stream_id='your_stream_id')
vonage_client.video.add_stream_to_archive(archive_id='your_archive_id', params=add_stream_request)

Remove Stream from Archive

vonage_client.video.remove_stream_from_archive(archive_id='your_archive_id', stream_id='your_stream_id')

Stop Archive

archive = vonage_client.video.stop_archive(archive_id='your_archive_id')
print(archive)

Change Archive Layout

from vonage_video import ComposedLayout

layout = ComposedLayout(type='bestFit')
archive = vonage_client.video.change_archive_layout(archive_id='your_archive_id', layout=layout)
print(archive)

List Broadcasts

from vonage_video import ListBroadcastsFilter

filter = ListBroadcastsFilter(page_size=10)
broadcasts, count, next_page_offset = vonage_client.video.list_broadcasts(filter)
print(broadcasts)

Start Broadcast

from vonage_video import CreateBroadcastRequest, BroadcastOutputSettings, BroadcastHls, BroadcastRtmp

broadcast_options = CreateBroadcastRequest(session_id='your_session_id', outputs=BroadcastOutputSettings(
    hls=BroadcastHls(dvr=True, low_latency=False),
    rtmp=[
        BroadcastRtmp(
            id='test',
            server_url='rtmp://a.rtmp.youtube.com/live2',
            stream_name='stream-key',
        )
    ],
)
)
broadcast = vonage_client.video.start_broadcast(broadcast_options)
print(broadcast)

Get Broadcast

broadcast = vonage_client.video.get_broadcast(broadcast_id='your_broadcast_id')
print(broadcast)

Stop Broadcast

broadcast = vonage_client.video.stop_broadcast(broadcast_id='your_broadcast_id')
print(broadcast)

Change Broadcast Layout

from vonage_video import ComposedLayout

layout = ComposedLayout(type='bestFit')
broadcast = vonage_client.video.change_broadcast_layout(broadcast_id='your_broadcast_id', layout=layout)
print(broadcast)

Add Stream to Broadcast

from vonage_video import AddStreamRequest

add_stream_request = AddStreamRequest(stream_id='your_stream_id')
vonage_client.video.add_stream_to_broadcast(broadcast_id='your_broadcast_id', params=add_stream_request)

Remove Stream from Broadcast

vonage_client.video.remove_stream_from_broadcast(broadcast_id='your_broadcast_id', stream_id='your_stream_id')

Initiate SIP Call

from vonage_video import InitiateSipRequest, SipOptions, SipAuth

sip_request_params = InitiateSipRequest(
    session_id='your_session_id',
    token='your_token',
    sip=SipOptions(
        uri=f'sip:{vonage_number}@sip.nexmo.com;transport=tls',
        from_=f'test@vonage.com',
        headers={'header_key': 'header_value'},
        auth=SipAuth(username='your_username', password='your_password'),
        secure=False,
        video=False,
        observe_force_mute=True,
    ),
)
sip_call = vonage_client.video.initiate_sip_call(sip_request_params)
print(sip_call)

Play DTMF into a call

# Play into all connections
session_id = 'your_session_id'
digits = '1234#*p'

vonage_client.video.play_dtmf(session_id=session_id, digits=digits)

# Play into one connection
session_id = 'your_session_id'
digits = '1234#*p'
connection_id = 'your_connection_id'

vonage_client.video.play_dtmf(session_id=session_id, digits=digits, connection_id=connection_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

vonage_video-1.5.1.tar.gz (19.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vonage_video-1.5.1-py3-none-any.whl (23.5 kB view details)

Uploaded Python 3

File details

Details for the file vonage_video-1.5.1.tar.gz.

File metadata

  • Download URL: vonage_video-1.5.1.tar.gz
  • Upload date:
  • Size: 19.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.3

File hashes

Hashes for vonage_video-1.5.1.tar.gz
Algorithm Hash digest
SHA256 dd74ff0f58d16a0fcadec02bf81b8bc92bcacce2975752d9d7e56cf6472bc5c8
MD5 bc31a7ed1b90e78d9fc41bdf02cd0322
BLAKE2b-256 b04bc69137b1690441a5341de8f0e1718441013bc9936338789cfcb848e5eecc

See more details on using hashes here.

File details

Details for the file vonage_video-1.5.1-py3-none-any.whl.

File metadata

  • Download URL: vonage_video-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 23.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.3

File hashes

Hashes for vonage_video-1.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 62312a9b42e863e9ae7e068c30a2880fb19e1801a1ecfee63f99b76c3bb08ac1
MD5 36576f5bd463dbd72fbcefb6c3dea476
BLAKE2b-256 306f25b09404686af7d4b007ca66067a7deaa2de9e9f0b1b4c055c9cf276beaa

See more details on using hashes here.

Supported by

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