README.md

# seedance-ai-video

A library for interacting with the Seedance AI Video service, providing tools for video analysis, processing, and generation. This package simplifies integration with the Seedance AI Video platform, enabling developers to easily leverage its powerful AI capabilities within their Elixir applications.

## Installation

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

Then run `mix deps.get` to fetch the dependency.

## Usage Examples

Here are a few examples showcasing how to use `seedance_ai_video`:

**1. Analyzing Video Content:**
elixir
defmodule MyModule do
  import SeedanceAiVideo

  def analyze_video(video_url) do
    with {:ok, analysis_result} <- SeedanceAiVideo.analyze(video_url) do
      IO.inspect(analysis_result, label: "Video Analysis Result")
      # Further processing based on the analysis result
      {:ok, analysis_result}
    else
      {:error, reason} ->
        IO.puts("Error analyzing video: #{reason}")
        {:error, reason}
    end
  end
end

# Example Usage:
# MyModule.analyze_video("https://example.com/my_video.mp4")

**2. Generating Video Summaries:**
elixir
defmodule MyModule do
  import SeedanceAiVideo

  def generate_summary(video_url) do
    with {:ok, summary} <- SeedanceAiVideo.summarize(video_url, length: :short) do
      IO.puts("Video Summary: #{summary}")
      {:ok, summary}
    else
      {:error, reason} ->
        IO.puts("Error generating summary: #{reason}")
        {:error, reason}
    end
  end
end

# Example Usage:
# MyModule.generate_summary("https://example.com/my_video.mp4")

**3. Extracting Keyframes from a Video:**
elixir
defmodule MyModule do
  import SeedanceAiVideo

  def extract_keyframes(video_url) do
    with {:ok, keyframes} <- SeedanceAiVideo.extract_keyframes(video_url, count: 5) do
      Enum.each(keyframes, fn keyframe_url ->
        IO.puts("Keyframe URL: #{keyframe_url}")
      end)
      {:ok, keyframes}
    else
      {:error, reason} ->
        IO.puts("Error extracting keyframes: #{reason}")
        {:error, reason}
    end
  end
end

# Example Usage:
# MyModule.extract_keyframes("https://example.com/my_video.mp4")

**4. Transforming Video Style:**
elixir
defmodule MyModule do
  import SeedanceAiVideo

  def transform_style(video_url, style) do
    with {:ok, transformed_video_url} <- SeedanceAiVideo.transform_style(video_url, style) do
      IO.puts("Transformed Video URL: #{transformed_video_url}")
      {:ok, transformed_video_url}
    else
      {:error, reason} ->
        IO.puts("Error transforming style: #{reason}")
        {:error, reason}
    end
  end
end

# Example Usage:
# MyModule.transform_style("https://example.com/my_video.mp4", "cartoon")

**5. Combining multiple operations using pipes:**
elixir
defmodule MyModule do
  import SeedanceAiVideo

  def analyze_and_summarize(video_url) do
    video_url
    |> SeedanceAiVideo.analyze()
    |> then(fn
      {:ok, analysis} ->
        IO.puts("Video analysis successful")
        video_url |> SeedanceAiVideo.summarize(length: :short)
      {:error, reason} ->
        IO.puts("Video analysis failed: #{reason}")
        {:error, reason}
    end)
  end
end

# Example Usage:
# MyModule.analyze_and_summarize("https://example.com/my_video.mp4")

## Feature Summary

*   **Video Analysis:** Analyze video content to identify objects, scenes, and activities.
*   **Video Summarization:** Generate concise summaries of videos.
*   **Keyframe Extraction:** Extract representative keyframes from videos.
*   **Style Transformation:** Apply various artistic styles to videos.
*   **Error Handling:** Provides informative error messages for robust application development.

## License

MIT

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