# Render audiogram video

**Action ID:** `render_audiogram_video`

## Description

Render audiogram video

## Connection

| Name               | Description                                 | Required | Category |
| ------------------ | ------------------------------------------- | -------- | -------- |
| PixelML Connection | The PixelML connection to call PixelML API. | True     | pixelml  |

## Input Schema

```json
{
  "description": "Render audiogram video node input.",
  "properties": {
    "cover_img": {
      "description": "Cover image",
      "title": "Cover image",
      "type": "string"
    },
    "title": {
      "description": "Video title",
      "title": "Title",
      "type": "string"
    },
    "title_color": {
      "default": "rgba(186, 186, 186, 0.93)",
      "description": "Title color",
      "title": "Title color",
      "type": "string"
    },
    "subtitle_text_color": {
      "default": "rgba(255, 255, 255, 0.93)",
      "description": "Subtitle text color",
      "title": "Subtitle text color",
      "type": "string"
    },
    "subtitle_line_per_page": {
      "default": 4,
      "description": "Subtitle line per page",
      "title": "Subtitle line per page",
      "type": "integer"
    },
    "subtitle_zoom_measurer_size": {
      "default": 10,
      "description": "Subtitle zoom measurer size",
      "title": "Subtitle zoom measurer size",
      "type": "integer"
    },
    "subtitle_line_height": {
      "default": 98,
      "description": "Subtitle line height",
      "title": "Subtitle line height",
      "type": "integer"
    },
    "wave_color": {
      "default": "#a3a5ae",
      "description": "Wave color",
      "title": "Wave color",
      "type": "string"
    },
    "duration_in_seconds": {
      "default": 29.5,
      "description": "Duration in seconds",
      "title": "Duration in seconds",
      "type": "number"
    },
    "caption_url": {
      "description": "Caption URL to use for rendering",
      "title": "Caption URL",
      "type": "string"
    },
    "voice_url": {
      "description": "Voice URL to use for rendering",
      "title": "Voice URL",
      "type": "string"
    }
  },
  "required": [
    "cover_img",
    "title",
    "caption_url",
    "voice_url"
  ],
  "title": "RenderAudiogramVideoNodeInput",
  "type": "object"
}
```

## Output Schema

```json
{
  "description": "Render Video node output.",
  "properties": {
    "video": {
      "description": "Rendered video",
      "title": "Rendered video",
      "type": "string"
    }
  },
  "required": [
    "video"
  ],
  "title": "RenderAudiogramVideoNodeOutput",
  "type": "object"
}
```

## How It Works

This node creates an audiogram video by combining a cover image, title text, audio waveform visualization, and synchronized captions. The PixelML service processes your audio file to generate a dynamic waveform visualization, overlays it on the cover image along with your title and captions, and renders everything into a video file. The caption URL should point to a subtitle file (SRT or VTT format) that synchronizes text with the audio timeline. All visual elements (title color, subtitle styling, waveform color, subtitle positioning) are customizable to match your branding.

## Usage Examples

### Example 1: Podcast Episode Preview

**Input:**

```
cover_img: "https://example.com/podcast-cover.jpg"
title: "Episode 42: The Future of AI"
title_color: "rgba(255, 255, 255, 0.95)"
subtitle_text_color: "rgba(240, 240, 240, 0.90)"
wave_color: "#4A90E2"
duration_in_seconds: 30
caption_url: "https://example.com/episode42-preview.srt"
voice_url: "https://example.com/episode42-audio.mp3"
```

**Output:**

```
video: "https://storage.pixelml.com/audiogram/episode42-preview.mp4"
```

### Example 2: Social Media Quote Clip

**Input:**

```
cover_img: "https://example.com/brand-background.png"
title: "Marketing Wisdom"
title_color: "rgba(50, 50, 50, 0.95)"
subtitle_text_color: "rgba(255, 255, 255, 1.0)"
subtitle_line_per_page: 3
wave_color: "#FF6B6B"
duration_in_seconds: 15
caption_url: "https://example.com/quote-captions.srt"
voice_url: "https://example.com/quote-audio.mp3"
```

**Output:**

```
video: "https://storage.pixelml.com/audiogram/quote-clip.mp4"
```

### Example 3: Educational Content Teaser

**Input:**

```
cover_img: "https://example.com/course-thumbnail.jpg"
title: "Learn JavaScript in 60 Seconds"
title_color: "rgba(186, 186, 186, 0.93)"
subtitle_text_color: "rgba(255, 255, 255, 0.93)"
subtitle_line_per_page: 5
subtitle_line_height: 85
wave_color: "#00D9FF"
duration_in_seconds: 60
caption_url: "https://example.com/lesson-captions.vtt"
voice_url: "https://example.com/lesson-audio.mp3"
```

**Output:**

```
video: "https://storage.pixelml.com/audiogram/lesson-teaser.mp4"
```

## Common Use Cases

* **Podcast Promotion**: Create shareable video clips from podcast episodes for social media platforms like Instagram, Twitter, and LinkedIn
* **Audio Blog Posts**: Transform blog content with text-to-speech into engaging audiogram videos for increased social media engagement
* **Quote Sharing**: Generate visually appealing quote videos with synchronized captions for motivational or educational content
* **Course Previews**: Create teaser videos for online courses combining audio explanations with branded visuals and captions
* **Interview Highlights**: Extract and visualize key moments from audio interviews with dynamic waveforms and speaker captions
* **Music Snippets**: Produce promotional videos for music tracks or albums with waveform visualizations and lyrics
* **Audiobook Teasers**: Generate preview videos for audiobooks combining cover art, sample narration, and text excerpts

## Error Handling

| Error Type          | Cause                                                   | Solution                                                                              |
| ------------------- | ------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| Invalid Connection  | PixelML connection not configured or expired            | Verify your PixelML connection credentials and ensure the API key is valid            |
| Missing Cover Image | cover\_img URL is invalid or inaccessible               | Provide a valid, publicly accessible image URL in a supported format (JPG, PNG)       |
| Invalid Audio URL   | voice\_url points to inaccessible or corrupt audio      | Ensure the audio URL is publicly accessible and in a supported format (MP3, WAV, M4A) |
| Caption File Error  | caption\_url is invalid or file format unsupported      | Provide a valid caption file URL in SRT or VTT format with proper timestamp syntax    |
| Color Format Error  | Invalid color format in title\_color or wave\_color     | Use valid color formats: hex (#RRGGBB) or rgba (rgba(R, G, B, A))                     |
| Duration Mismatch   | duration\_in\_seconds doesn't match actual audio length | Set duration to match your audio file length or let the service auto-detect           |
| Rendering Timeout   | Video rendering took too long to complete               | Reduce video duration or simplify visual elements, then retry the request             |

## Notes

* **Caption File Format**: Use SRT or VTT files with proper timestamps. Captions will be synchronized with the audio and displayed according to subtitle\_line\_per\_page settings
* **Color Customization**: Use rgba format for transparent overlays (e.g., "rgba(255, 255, 255, 0.9)") or hex format for solid colors (e.g., "#FFFFFF")
* **Subtitle Styling**: The subtitle\_line\_per\_page controls how many caption lines appear simultaneously. Adjust subtitle\_line\_height for vertical spacing between lines
* **Waveform Visualization**: The wave\_color parameter customizes the audio waveform animation. Choose colors that contrast well with your cover image
* **Duration Control**: Set duration\_in\_seconds to trim the audio/video length. Useful for creating short previews from longer audio files
* **Image Requirements**: Cover images should be high resolution (at least 1080x1080px) for best quality. Square (1:1) or vertical (9:16) aspect ratios work well for social media
* **Audio Quality**: Higher quality audio files produce better waveform visualizations. Use audio at 128kbps or higher bitrate for optimal results
* **Performance**: Rendering time increases with video duration. Videos under 60 seconds typically render within 2-3 minutes


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.agenticflow.ai/reference/nodes/render_audiogram_video.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
