# 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/