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

{
  "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

{
  "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

Last updated

Was this helpful?