/ examples / yaml / video_heygen_elevenlabs_workflow.py
video_heygen_elevenlabs_workflow.py
 1  #!/usr/bin/env python3
 2  """Run the HeyGen + ElevenLabs YAML workflow.
 3  
 4  This loads the YAML workflow and registers the praisonai_tools
 5  functions so the YAML parser can resolve them by name.
 6  
 7  Usage:
 8      export HEYGEN_API_KEY=your_key
 9      export ELEVENLABS_API_KEY=your_key
10      export OPENAI_API_KEY=your_key
11      python video_heygen_elevenlabs_workflow.py
12  """
13  
14  import os
15  from pathlib import Path
16  
17  from praisonai_tools import (
18      elevenlabs_speak_to_file,
19      heygen_upload_asset,
20      heygen_generate_video_with_audio,
21      heygen_wait_for_video,
22  )
23  from praisonaiagents.workflows.yaml_parser import YAMLWorkflowParser
24  
25  # Register praisonai_tools functions for YAML tool resolution
26  tool_registry = {
27      "elevenlabs_speak_to_file": elevenlabs_speak_to_file,
28      "heygen_upload_asset": heygen_upload_asset,
29      "heygen_generate_video_with_audio": heygen_generate_video_with_audio,
30      "heygen_wait_for_video": heygen_wait_for_video,
31  }
32  
33  # Parse YAML workflow
34  yaml_path = Path(__file__).parent / "video_heygen_elevenlabs.yaml"
35  parser = YAMLWorkflowParser(tool_registry=tool_registry)
36  workflow = parser.parse_file(yaml_path)
37  
38  print("=" * 60)
39  print("HeyGen + ElevenLabs YAML Workflow")
40  print("=" * 60)
41  
42  # Run the workflow
43  result = workflow.start()
44  
45  print("\n" + "=" * 60)
46  print("WORKFLOW RESULT:")
47  print("=" * 60)
48  print(result)