npm package: @qy-upup/veo
Description: Professional integration for https://supermaker.ai/video/veo/
Author: SuperMaker
Latest version: 1767166.928.398

# Veo

Veo is a lightweight JavaScript library designed for seamless video manipulation and processing within web applications. It provides a simplified interface for common video tasks, enhancing developer productivity.

## Installation

Install Veo using npm:
bash
npm install veo

## Usage Examples

Here are a few examples demonstrating how to use Veo in your JavaScript/Node.js projects:

**1. Basic Video Duration Retrieval:**
javascript
const veo = require('veo');

async function getVideoDuration(videoPath) {
  try {
    const duration = await veo.getDuration(videoPath);
    console.log(`Video duration: ${duration} seconds`);
  } catch (error) {
    console.error("Error getting video duration:", error);
  }
}

// Example usage (replace with your video file path)
getVideoDuration('path/to/your/video.mp4');

**2. Generating a Video Thumbnail:**
javascript
const veo = require('veo');

async function generateThumbnail(videoPath, outputPath) {
  try {
    await veo.generateThumbnail(videoPath, outputPath);
    console.log(`Thumbnail generated at: ${outputPath}`);
  } catch (error) {
    console.error("Error generating thumbnail:", error);
  }
}

// Example usage (replace with your video file path and output path)
generateThumbnail('path/to/your/video.mp4', 'path/to/your/thumbnail.jpg');

**3. Trimming a Video Segment:**
javascript
const veo = require('veo');

async function trimVideo(videoPath, outputPath, startTime, duration) {
  try {
    await veo.trim(videoPath, outputPath, startTime, duration);
    console.log(`Video trimmed and saved to: ${outputPath}`);
  } catch (error) {
    console.error("Error trimming video:", error);
  }
}

// Example usage (replace with your video file path, output path, start time, and duration in seconds)
trimVideo('path/to/your/video.mp4', 'path/to/your/trimmed_video.mp4', 5, 10); // Trim from 5 seconds for 10 seconds.

**4. Converting Video Format:**
javascript
const veo = require('veo');

async function convertVideo(inputPath, outputPath, format) {
  try {
    await veo.convert(inputPath, outputPath, format);
    console.log(`Video converted to ${format} and saved to: ${outputPath}`);
  } catch (error) {
    console.error("Error converting video:", error);
  }
}

// Example usage (replace with your video file path, output path, and desired format)
convertVideo('path/to/your/video.mp4', 'path/to/your/converted_video.avi', 'avi');

**5. Retrieving Video Metadata:**
javascript
const veo = require('veo');

async function getVideoMetadata(videoPath) {
    try {
        const metadata = await veo.getMetadata(videoPath);
        console.log("Video Metadata:", metadata);
    } catch (error) {
        console.error("Error retrieving video metadata:", error);
    }
}

// Example usage (replace with your video file path)
getVideoMetadata('path/to/your/video.mp4');

## API Summary

*   **`getDuration(videoPath)`**:  Asynchronously retrieves the duration of a video file in seconds.
    *   `videoPath` (string): The path to the video file.
    *   Returns: `Promise<number>` - A promise that resolves with the duration in seconds.

*   **`generateThumbnail(videoPath, outputPath)`**:  Asynchronously generates a thumbnail image from a video file.
    *   `videoPath` (string): The path to the video file.
    *   `outputPath` (string): The path where the thumbnail image should be saved.
    *   Returns: `Promise<void>` - A promise that resolves when the thumbnail is generated.

*   **`trim(videoPath, outputPath, startTime, duration)`**:  Asynchronously trims a video segment from a video file.
    *   `videoPath` (string): The path to the video file.
    *   `outputPath` (string): The path where the trimmed video should be saved.
    *   `startTime` (number): The start time of the segment to trim, in seconds.
    *   `duration` (number): The duration of the segment to trim, in seconds.
    *   Returns: `Promise<void>` - A promise that resolves when the video is trimmed.

*   **`convert(inputPath, outputPath, format)`**: Asynchronously converts a video file to a specified format.
    *   `inputPath` (string): The path to the input video file.
    *   `outputPath` (string): The path where the converted video should be saved.
    *   `format` (string): The desired output format (e.g., 'avi', 'mov', 'mp4').
    *   Returns: `Promise<void>` - A promise that resolves when the video is converted.

*   **`getMetadata(videoPath)`**: Asynchronously retrieves metadata information from a video file.
    *   `videoPath` (string): The path to the video file.
    *   Returns: `Promise<object>` - A promise that resolves with an object containing video metadata. The structure of the object may vary depending on the video file.

## License

MIT

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