# # Copyright (c) 2024, Daily # # SPDX-License-Identifier: BSD 2-Clause License # import aiohttp import asyncio import sys from pipecat.pipeline.pipeline import Pipeline from pipecat.pipeline.runner import PipelineRunner from pipecat.pipeline.task import PipelineTask from pipecat.transports.services.daily import DailyTransport, DailyParams from runner import configure from loguru import logger from dotenv import load_dotenv load_dotenv(override=True) logger.remove(0) logger.add(sys.stderr, level="DEBUG") async def main(): async with aiohttp.ClientSession() as session: (room_url, token) = await configure(session) transport = DailyTransport( room_url, token, "Test", DailyParams( audio_in_enabled=True, audio_out_enabled=True, camera_out_enabled=True, camera_out_is_live=True, camera_out_width=1280, camera_out_height=720 ) ) @transport.event_handler("on_first_participant_joined") async def on_first_participant_joined(transport, participant): transport.capture_participant_video(participant["id"]) pipeline = Pipeline([transport.input(), transport.output()]) runner = PipelineRunner() task = PipelineTask(pipeline) await runner.run(task) if __name__ == "__main__": asyncio.run(main())