Description
๐ฌ n8n-nodes-videosailor
โต This is an n8n community node for processing video files using the VideoSailor API. It enables you to download, trim, cut, resize, transcribe, and subtitle videos from within your n8n workflows.
n8n is a fair-code licensed workflow automation platform.
โจ Features
๐๏ธ Video Processing Operations
- โฌ๏ธ Download, โ๏ธ trim, cut, and ๐ resize videos
- ๐ Get detailed video metadata
- ๐๏ธ Transcribe audio with word- and segment-level timestamps
- ๐ฌ Burn custom styled subtitles into videos
- ๐ Direct video URLs
- ๐ฑ Social media links โ YouTube, TikTok, Instagram, Twitter/X, Vimeo, and 1,000+ sites
- ๐ Simple credential setup (API key header auth)
- ๐ค Native n8n integration โ
usableAsTool: true, so the node works as an AI agent tool - ๐ฏ Single node with operation dropdown โ no per-operation node sprawl
- Installation
- Operations
- Credentials
- Compatibility
- Example Workflow
- Resources
- Development
- โฌ๏ธ Download โ Download a video from a URL and return the file as n8n binary data
- โน๏ธ Video Info โ Get video metadata (title, duration, thumbnails) without downloading
- โ๏ธ Trim โ Trim a video to a start/end time range
- ๐ช Cut โ Cut a segment from a video (alias for Trim)
- ๐ Resize โ Resize a video either by explicit width/height or by aspect ratio + resolution preset (HD / Full HD / 2K / 4K / 8K)
- ๐๏ธ Transcribe โ Transcribe a video and return timestamped words and segments
- ๐ฌ Subtitles โ Burn custom subtitles (position, font size, color, stroke, background) into a video
- ๐ Info โ Get video dimensions and aspect ratio
- ๐ n8n community nodes documentation
- ๐ VideoSailor API Documentation
- ๐ VideoSailor API Keys Guide
- ๐ข Node.js (version compatible with the
typescriptandn8n-workflowpeer range) - ๐ฆ npm
๐ Universal Input Support
๐ Easy Integration
๐ Table of Contents
๐ฆ Installation
Follow the installation guide in the n8n community nodes documentation.
โ๏ธ Operations
๐ฅ Video Operations
๐ก The node accepts any URL the VideoSailor API supports โ direct media URLs and social media URLs (YouTube, TikTok, Instagram, etc.).
๐ Credentials
This node requires API credentials for the VideoSailor API.
๐๏ธ Getting Your API Key
1. ๐ Visit VideoSailor and sign up for an account
2. โ๏ธ Navigate to Settings โ API Keys in the dashboard
3. โจ Generate a new API key
4. ๐ Copy the API key
๐ Refer to the API Keys Guide for detailed instructions on obtaining and managing your API keys.
๐ ๏ธ Configuring Credentials in n8n
1. โ In n8n, create new credentials
2. ๐ฏ Select VideoSailor API from the credential types
3. ๐ Enter your API key
4. ๐ (Optional) Override the Base URL โ defaults to https://api.videosailor.com; set to http://localhost:8080 for local development
5. ๐พ Save the credentials
6. โ
Use these credentials when configuring the VideoSailor node
๐งฉ Compatibility
โ Compatible with n8n@1.60.0 or later.
๐๏ธ Example Workflow
An example workflow is included at examples/download-and-transcribe.json. It demonstrates:
1. Download a YouTube video as binary data
2. Transcribe the same video and return timestamped segments
To use it: in n8n go to Workflows โ Import from file, select the JSON, then add your VideoSailor credentials.
๐ Resources
๐งโ๐ป Development
๐ Prerequisites
๐ Setup
1. ๐ฅ Clone the repository
2. ๐ฆ Install dependencies:
cd n8n-node
npm install
๐๏ธ Building
Build the node package (compiles TypeScript and copies icons via gulp):
npm run build
๐ Watch mode for development:
npm run dev
๐ Linking into a local n8n instance
npm link
cd ~/.n8n/custom
npm link n8n-nodes-videosailor
๐ Then restart n8n so the custom node is picked up.
๐งน Linting & Formatting
๐ Run ESLint:
npm run lint
๐ ๏ธ Fix linting issues automatically:
npm run lintfix
โจ Format sources with Prettier:
npm run format
๐ข Publishing
Releases are automated via release-please. Commit to main using Conventional Commits and release-please handles the rest:
| Prefix | Effect | npm version bump |
|——–|——–|—————–|
| feat: | New operation or capability | minor |
| fix: | Bug fix | patch |
| perf: | Performance improvement | patch |
| deps: | Dependency update | patch |
| feat!: or BREAKING CHANGE: footer | Breaking API change | major |
| chore: / docs: / refactor: | No user-facing change | none |
When commits land on main, release-please opens or updates a Release PR with a changelog and bumped version. Merging that PR creates a GitHub release, which triggers the publish workflow to push to npm with provenance automatically.