test_veo.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import os
  2. import sys
  3. import requests
  4. import json
  5. sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
  6. from veo_client import VEOClient
  7. API_KEY = os.getenv("APIYI_KEY")
  8. if not API_KEY:
  9. print("ERROR: APIYI_KEY not set")
  10. sys.exit(1)
  11. os.makedirs(os.path.join(os.path.dirname(__file__), "output"), exist_ok=True)
  12. print("=== VEO 3.1 API Test ===")
  13. client = VEOClient(API_KEY)
  14. # Step 1: create task
  15. print("\n[1] Creating video task...")
  16. video_id = client.create_video("A cat walking in a sunny garden", model="veo-3.1-fast")
  17. print(f" video_id: {video_id}")
  18. # Step 2: poll until done
  19. print("\n[2] Waiting for completion...")
  20. result = client.wait_for_completion(video_id, timeout=600, interval=5)
  21. video_url = result["video_url"]
  22. print(f" Done! URL: {video_url}")
  23. # Step 3: download
  24. print("\n[3] Downloading video...")
  25. resp = requests.get(video_url, timeout=60)
  26. resp.raise_for_status()
  27. output_path = os.path.join(os.path.dirname(__file__), "output", "test_output.mp4")
  28. with open(output_path, "wb") as f:
  29. f.write(resp.content)
  30. size_kb = os.path.getsize(output_path) / 1024
  31. print(f" Saved: {output_path} ({size_kb:.1f} KB)")
  32. # Save metadata
  33. meta = {"video_id": video_id, "url": video_url, "resolution": result.get("size"), "model": result.get("model")}
  34. with open(os.path.join(os.path.dirname(__file__), "output", "meta.json"), "w", encoding="utf-8") as f:
  35. json.dump(meta, f, indent=2, ensure_ascii=False)
  36. print("\n=== TEST PASSED ===")