Skip to main content
This guide shows you how to add your company logo or watermark to videos with full control over positioning, size, and transparency. Perfect for branding videos without creating a full brand preset.

What You’ll Learn

Logo Integration

Add logos from URL to any video

Custom Positioning

Place logo anywhere on screen

Opacity Control

Adjust transparency for subtle branding

Size Customization

Control logo dimensions and scaling

Before You Begin

Make sure you have:
  • A Pictory API key (get one here)
  • Node.js or Python installed on your machine
  • Logo image file accessible via public URL
  • Basic understanding of image positioning
npm install axios

How Logo Placement Works

When you add a logo to your video:
  1. Logo Access - Your logo image is downloaded from the provided URL
  2. Position Calculation - Logo is placed at the specified screen position
  3. Size Application - Logo is scaled relative to video dimensions
  4. Opacity Setting - Transparency level is applied
  5. Video Rendering - Logo appears on all scenes throughout the video
The logo appears on every scene in your video by default. For scene-specific logos, you can apply logo settings at the scene level instead of the video level.

Complete Example

import axios from "axios";

const API_BASE_URL = "https://api.pictory.ai/pictoryapis";
const API_KEY = "YOUR_API_KEY";

const SAMPLE_TEXT = "AI is poised to significantly impact educators and course creators on social media.";
const LOGO_URL = "https://pictory-static.pictorycontent.com/logo.png";

async function createVideoWithLogo() {
  try {
    console.log("Creating video with logo...");

    const response = await axios.post(
      `${API_BASE_URL}/v2/video/storyboard/render`,
      {
        videoName: "text_to_video_with_logo",

        // Logo configuration
        logo: {
          url: LOGO_URL,              // Public URL to logo image
          position: "top-right",      // Logo placement
          opacity: 0.8,               // 80% opacity (0-1)
          scale: 0.15,                // 15% of video width
        },

        // Scene configuration
        scenes: [
          {
            story: SAMPLE_TEXT,
            createSceneOnNewLine: false,
            createSceneOnEndOfSentence: false,
          },
        ],
      },
      {
        headers: {
          "Content-Type": "application/json",
          Authorization: API_KEY,
        },
      }
    );

    const jobId = response.data.data.jobId;
    console.log("✓ Video creation started!");
    console.log("Job ID:", jobId);

    // Monitor progress
    console.log("\nMonitoring video creation...");
    let jobCompleted = false;
    let jobResult = null;

    while (!jobCompleted) {
      const statusResponse = await axios.get(
        `${API_BASE_URL}/v1/jobs/${jobId}`,
        {
          headers: { Authorization: API_KEY },
        }
      );

      const status = statusResponse.data.data.status;
      console.log("Status:", status);

      if (status === "completed") {
        jobCompleted = true;
        jobResult = statusResponse.data;
        console.log("\n✓ Video with logo is ready!");
        console.log("Video URL:", jobResult.data.videoURL);
      } else if (status === "failed") {
        throw new Error("Video creation failed: " + JSON.stringify(statusResponse.data));
      }

      await new Promise(resolve => setTimeout(resolve, 5000));
    }

    return jobResult;
  } catch (error) {
    console.error("Error:", error.response?.data || error.message);
    throw error;
  }
}

createVideoWithLogo();

Understanding the Parameters

Logo Configuration

ParameterTypeRequiredDescription
logo.urlstringYesPublic URL to your logo image file
logo.positionstringNoLogo placement on screen (default: top-right)
logo.opacitynumberNoTransparency level 0-1 (default: 1.0 = fully opaque)
logo.scalenumberNoSize relative to video width 0-1 (default: 0.15 = 15%)

Logo Position Options

Choose where to place your logo on the video:
PositionLocationBest Used For
top-leftUpper left cornerAlternative watermark placement
top-centerUpper centerCentered branding
top-rightUpper right cornerStandard watermark (most common)
center-leftMiddle leftSide branding
center-centerCenter of frameIntro/outro logos
center-rightMiddle rightSide branding
bottom-leftLower left cornerLegal/copyright notices
bottom-centerLower centerCentered footer branding
bottom-rightLower right cornerAlternative watermark
Most Popular: top-right is the standard position for watermarks and brand logos, as it’s visible but doesn’t interfere with subtitles (typically at bottom).

Opacity Reference

Control how transparent your logo appears:
Opacity ValueEffectBest Used For
0.0Fully transparent (invisible)Testing purposes only
0.3Very subtle watermarkMinimal branding, artistic videos
0.5Moderately transparentSubtle brand presence
0.7Somewhat transparentStandard watermarks
0.8Slightly transparentGood balance (recommended)
0.9Nearly opaqueStrong brand visibility
1.0Fully opaque (no transparency)Maximum visibility

Scale (Size) Reference

Control logo size relative to video width:
Scale ValuePercentageEffect
0.055%Very small, minimal watermark
0.1010%Small, subtle branding
0.1515%Standard size (recommended)
0.2020%Medium, noticeable branding
0.2525%Large logo
0.3030%Very large, dominant logo
Avoid Extremes: Logos smaller than 0.05 may be hard to see, while logos larger than 0.30 can be distracting and cover important content.

Supported Image Formats

FormatExtensionSupports TransparencyRecommended For
PNG.pngYesLogos with transparency (best choice)
JPG/JPEG.jpg, .jpegNoPhotographic logos
SVG.svgYesVector logos, scalable graphics
GIF.gifYesStatic logos (animation not supported)
Best Format: Use PNG with transparent background for professional-looking logos that blend seamlessly with any video background.

Common Use Cases

Professional Watermark

{
  logo: {
    url: "https://example.com/company-logo.png",
    position: "top-right",
    opacity: 0.8,
    scale: 0.15
  }
}
Result: Subtle, professional watermark in the standard position.

Prominent Branding

{
  logo: {
    url: "https://example.com/brand-logo.png",
    position: "top-center",
    opacity: 1.0,
    scale: 0.25
  }
}
Result: Large, fully visible logo for strong brand presence.
{
  logo: {
    url: "https://example.com/copyright-mark.png",
    position: "bottom-left",
    opacity: 0.5,
    scale: 0.08
  }
}
Result: Small, subtle copyright or trademark symbol.
{
  logo: {
    url: "https://example.com/large-logo.png",
    position: "center-center",
    opacity: 1.0,
    scale: 0.4
  }
}
Result: Large centered logo for introduction or conclusion scenes.

Best Practices

Prepare your logo file for best results:
  • PNG Format: Use PNG with transparent background for clean edges
  • High Resolution: Minimum 512x512 pixels for clarity
  • Simple Design: Logos with less detail scale better
  • Appropriate Colors: Ensure logo is visible on various backgrounds
  • Test First: Preview logo on different content types before production
Select logo placement strategically:
  • Top-Right: Standard for watermarks, doesn’t conflict with subtitles
  • Top-Left: Alternative for different visual balance
  • Avoid Center: Center placement can distract from main content
  • Consider Subtitles: Don’t overlap with caption placement (usually bottom)
  • Test Visibility: Ensure logo is visible on light and dark scenes
Balance visibility with subtlety:
  • Professional Videos: Use 0.7-0.9 for visible but not distracting
  • Watermarks: Use 0.5-0.7 for copyright protection
  • Branded Content: Use 0.8-1.0 for strong brand association
  • Test on Content: Preview on actual video content
  • Avoid Too Faint: Below 0.5 may not serve branding purpose
Choose scale based on video type:
  • Standard Videos: 0.12-0.18 works well for most content
  • Social Media: 0.10-0.15 for subtle branding
  • Corporate Videos: 0.15-0.20 for stronger presence
  • Intro/Outro Only: Consider scene-level logos instead
  • Consistency: Use same size across all videos for brand recognition
Make your logo file accessible to the API:
  • Cloud Storage: Upload to Google Drive, Dropbox, AWS S3, or CDN
  • Public URL: Ensure the URL is publicly accessible (no authentication)
  • Direct Link: Use direct file URL, not preview or viewer links
  • Test Access: Open URL in incognito browser to verify
  • HTTPS: Use secure HTTPS URLs for best compatibility

Troubleshooting

Problem: Video is created but logo is missing.Solution:
  • Verify the logo URL is publicly accessible (test in incognito browser)
  • Check that the image file format is supported (PNG, JPG, SVG, GIF)
  • Ensure opacity is not set to 0 (which makes logo invisible)
  • Confirm the URL is a direct link to the image file
  • Try a different image URL to test if it’s a file-specific issue
Problem: Logo quality is poor in the final video.Solution:
  • Use a higher resolution logo image (minimum 512x512 pixels)
  • Avoid scaling logo too large (keep scale below 0.3)
  • Use PNG or SVG format instead of JPG for sharper edges
  • Check source image quality before using
  • For vector logos, use SVG format when possible
Problem: Logo appears with a white or colored background instead of being transparent.Solution:
  • Use PNG format with transparent background
  • Re-export logo with alpha channel (transparency) enabled
  • Check original file has transparent background (open in image editor)
  • Avoid JPG format which doesn’t support transparency
  • Use online tools to remove background if needed
Problem: Logo size doesn’t match expectations.Solution:
  • Adjust the scale parameter (0.05-0.30 range)
  • Scale is relative to video width, not height
  • Test different scale values: 0.10 (small), 0.15 (medium), 0.20 (large)
  • Remember larger videos will show logos larger at same scale
  • Preview before full production
Problem: Logo doesn’t appear where expected.Solution:
  • Verify position value matches available options
  • Position names are case-sensitive (e.g., “top-right” not “Top-Right”)
  • Check for typos in position parameter
  • Logo is positioned based on its center point
  • Try different positions to find best placement
Problem: Logo covers subtitles or key visuals.Solution:
  • Move logo to a different position (avoid bottom if using subtitles)
  • Reduce logo size (lower scale value)
  • Increase transparency (lower opacity to 0.5-0.7)
  • Consider placing logo in corner with least content
  • Test with actual video content before production

Next Steps

Explore more branding and customization options:

API Reference

For complete technical details, see: