--- name: runway-hello-world description: "Runway hello world \u2014 AI video generation and creative AI platform.\n\ Use when working with Runway for video generation, image editing, or creative AI.\n\ Trigger with phrases like \"runway hello world\", \"runway-hello-world\", \"AI video\ \ generation\".\n" allowed-tools: Read, Write, Edit, Bash(pip:*), Bash(npm:*), Bash(curl:*), Grep version: 2.0.0 license: MIT author: Jeremy Longshore tags: - saas - runway - ai - video-generation - creative compatibility: Designed for Claude Code, also compatible with Codex and OpenClaw --- # Runway Hello World ## Overview Generate your first AI video from a text prompt using Runway's Gen-3 Alpha model. ## Prerequisites - Completed `runway-install-auth` - API credits available in your Runway account ## Instructions ### Step 1: Text-to-Video Generation ```python from runwayml import RunwayML client = RunwayML() # Create a text-to-video generation task task = client.image_to_video.create( model='gen3a_turbo', prompt_text='A golden retriever running through a field of sunflowers, cinematic lighting, slow motion', duration=5, # 5 or 10 seconds ratio='16:9', # 16:9 or 9:16 ) print(f"Task created: {task.id}") ``` ### Step 2: Poll for Completion ```python import time # The SDK has a built-in helper for polling task_result = client.tasks.retrieve(task.id) # Or poll manually while task_result.status not in ('SUCCEEDED', 'FAILED'): time.sleep(5) task_result = client.tasks.retrieve(task.id) print(f" Status: {task_result.status}") if task_result.status == 'SUCCEEDED': print(f"Video URL: {task_result.output[0]}") else: print(f"Failed: {task_result.failure}") ``` ### Step 3: Download the Video ```python import urllib.request if task_result.status == 'SUCCEEDED': video_url = task_result.output[0] urllib.request.urlretrieve(video_url, 'output.mp4') print("Video saved to output.mp4") ``` ### Step 4: Using the Built-in Wait Helper ```python # Simpler approach — SDK polls automatically task = client.image_to_video.create( model='gen3a_turbo', prompt_text='Ocean waves crashing on rocky cliffs at sunset, aerial view', duration=5, ) # Wait for completion (default timeout: 10 minutes) result = task.wait_for_task_output() print(f"Video: {result.output[0]}") ``` ## Output - Video generation task created - Task polled until completion - Generated video URL retrieved - Video downloaded to local file ## Error Handling | Error | Cause | Solution | |-------|-------|----------| | Task `FAILED` | Content policy violation | Adjust prompt to comply with content policy | | `402 Insufficient credits` | No API credits | Add credits at dev.runwayml.com | | Timeout | Generation taking too long | Increase timeout or use shorter duration | | Low quality output | Prompt too vague | Add style keywords: "cinematic", "4K", "professional" | ## Resources - [API Getting Started](https://docs.dev.runwayml.com/guides/using-the-api/) - [API Reference](https://docs.dev.runwayml.com/api/) - [Input Parameters](https://docs.dev.runwayml.com/assets/inputs/) ## Next Steps Advanced text-to-video: `runway-core-workflow-a`