README.md

# Veo31

A utility library for interacting with and processing data related to the Veo 3.1 video model. Provides convenient functions for structuring, transforming, and validating Veo 3.1 data formats.

## Installation

Add `veo31` to your list of dependencies in `mix.exs`:
elixir
def deps do
  [
    {:veo31, "~> 0.1.0"}
  ]
end

Then run:
bash
mix deps.get

## Usage Examples

Here are some examples illustrating common use cases:

**1. Data Validation:**
elixir
alias Veo31.Validator

data = %{
  "resolution" => "1920x1080",
  "frame_rate" => 30,
  "codec" => "h264"
}

case Validator.validate_video_data(data) do
  {:ok, validated_data} ->
    IO.puts("Data is valid: #{inspect(validated_data)}")
  {:error, errors} ->
    IO.puts("Data is invalid: #{inspect(errors)}")
end

**2. Data Transformation:**
elixir
alias Veo31.Transformer

input_data = %{
  "width" => 1920,
  "height" => 1080,
  "fps" => 30
}

transformed_data =
  input_data
  |> Veo31.Transformer.normalize_keys()
  |> Veo31.Transformer.add_default_values()

IO.puts("Transformed data: #{inspect(transformed_data)}")

**3. Generating Metadata:**
elixir
alias Veo31.Metadata

video_path = "/path/to/video.mp4"

case Veo31.Metadata.extract_from_file(video_path) do
  {:ok, metadata} ->
    IO.puts("Metadata: #{inspect(metadata)}")
  {:error, reason} ->
    IO.puts("Error extracting metadata: #{reason}")
end

**4. Building Query Parameters:**
elixir
alias Veo31.QueryBuilder

params = %{
  "prompt" => "A cat playing piano",
  "duration" => 10,
  "style" => "cartoon"
}

query_string = Veo31.QueryBuilder.build(params)

IO.puts("Query string: #{query_string}") # Output: "prompt=A%20cat%20playing%20piano&duration=10&style=cartoon"

**5. Handling API Responses:**
elixir
alias Veo31.ResponseHandler

response = %{
  "status" => "success",
  "data" => %{
    "video_url" => "https://example.com/video.mp4"
  }
}

case Veo31.ResponseHandler.process(response) do
  {:ok, video_url} ->
    IO.puts("Video URL: #{video_url}")
  {:error, reason} ->
    IO.puts("Error processing response: #{reason}")
end

## Feature Summary

*   **Data Validation:** Ensures data conforms to expected Veo 3.1 formats.
*   **Data Transformation:** Normalizes data structures for consistent processing.
*   **Metadata Extraction:** Retrieves relevant information from video files.
*   **Query Parameter Generation:** Constructs API requests easily.
*   **Response Handling:** Parses and processes API responses effectively.
*   **Error Handling:** Provides informative error messages for debugging.
*   **Modular Design:** Allows for easy extension and customization.
*   **Well-Documented API:** Clear and concise documentation for all functions.

## License

MIT

This package is part of the veo-3-1 ecosystem. For advanced features and enterprise-grade tools, visit: https://supermaker.ai/video/veo-3-1/