Skip to main content

Automate S3 video transcoding, thumbnail generation & CDN distribution

Workflow preview

Workflow preview
100%
Automate S3 video transcoding, thumbnail generation & CDN distribution preview
Open on n8n.io

Important notice

This workflow is provided as-is. Please review and test before using in production.

1. Workflow Overview

Video Processing Pipeline with Thumbnail Generation and CDN Distribution Summary Automated video processing system that monitors S3 for new uploads, generates thumbnails and preview clips, extracts...

Best for

  • Content Creation automation workflows
  • Multimodal AI automation workflows
  • advanced n8n builders looking for reusable templates

Tools used

n8n-nodes-base.stickynote, n8n-nodes-base.webhook, n8n-nodes-base.merge, n8n-nodes-base.code, n8n-nodes-base.if, n8n-nodes-base.set, n8n-nodes-base.httprequest, n8n-nodes-base.aggregate

Source and attribution

This workflow is cataloged by N8N Workflows and links back to its original n8n.io source page by Tomoki.

Original n8n.io source

1.1 Workflow description

Title
Automate S3 video transcoding, thumbnail generation & CDN distribution
Workflow name
Automate S3 video transcoding, thumbnail generation & CDN distribution

# Video Processing Pipeline with Thumbnail Generation and CDN Distribution

Summary

Automated video processing system that monitors S3 for new uploads, generates thumbnails and preview clips, extracts metadata, transcodes to multiple formats, and distributes to CDN with webhook notifications.

Detailed Description

A comprehensive video processing workflow that receives S3 events or manual triggers, validates video files, extracts metadata via FFprobe, generates thumbnails at key frames, creates animated GIF previews, transcodes to multiple resolutions, invalidates CDN cache, and sends completion notifications.

Key Features

  • S3 Event Monitoring: Automatic detection of new video uploads
  • Thumbnail Generation: Multiple sizes at key frame intervals
  • Video Metadata: FFprobe extraction of duration, resolution, codec info
  • Preview GIF: Animated preview clips for video galleries
  • Multi-Format Transcoding: Convert to 1080p, 720p, 480p
  • CDN Distribution: 托管平台 cache invalidation and signed URLs
  • Webhook Callbacks: Notify origin system on completion

Use Cases

  • Video hosting platforms
  • Media asset management systems
  • Content delivery networks
  • Video streaming services
  • Social media platforms
  • E-learning video processing
  • User-generated content platforms

Required Credentials

  • AWS S3 Credentials (for video storage)
  • FFmpeg API credentials (via HTTP)
  • 托管平台 API Token (for CDN)
  • Slack Bot Token (for notifications)
  • Google Sheets OAuth (for logging)

Node Count: 24 (19 functional + 5 sticky notes)

Unique Aspects

  • Uses Webhook for S3 event notifications
  • Uses Code nodes for S3 info extraction and URL generation
  • Uses If node for video format validation
  • Uses HTTP Request nodes for FFprobe, FFmpeg, and CDN APIs
  • Uses Aggregate node for collecting parallel processing results
  • Uses Merge nodes for multiple workflow path consolidation
  • Implements parallel processing for thumbnails, GIF, and transcoding

Workflow Architecture

[S3 Event Webhook]    [Manual Webhook]
        |                   |
        +--------+----------+
                 |
                 v
         [Merge Triggers]
                 |
                 v
         [Extract S3 Info] (Code)
                 |
                 v
         [Check Is Video] (If)
              /         \
           Yes           No
            |             |
            v             v
[Get Video Metadata]  [Invalid Response]
    (FFprobe)              |
            |              |
            v              |
[Parse Video Metadata]     |
    (Code)                 |
       /|\                 |
      / | \                |
     v  v  v               |
[Thumbs][GIF][Transcode]   |
     \  |  /               |
      \ | /                |
       v v                 |
[Aggregate Results]        |
         |                 |
         v                 |
[Invalidate CDN Cache]     |
         |                 |
         v                 |
[Generate Signed URLs]     |
        / \                |
       /   \               |
      v     v              |
[Log Sheet] [Slack]        |
      \   /                |
       \ /                 |
        v                  |
[Merge Output Paths]       |
         |                 |
         +---------+-------+
                   |
                   v
         [Merge All Paths]
                   |
                   v
         [Respond to Webhook]

Configuration Guide

  1. S3 Event: Configure S3 bucket notification to send events to webhook
  2. FFmpeg API: Use a hosted FFmpeg service (e.g., api.ffmpeg-service.com)
  3. 托管平台: Set zone ID and API token for cache invalidation
  4. Slack Channel: Set #video-processing for notifications
  5. Google Sheets: Connect for processing metrics logging

Supported Video Formats

Extension MIME Type
.mp4 video/mp4
.mov video/quicktime
.avi video/x-msvideo
.mkv video/x-matroska
.webm video/webm
.m4v video/x-m4v

Thumbnail Generation

Size Dimensions Suffix
Large 1280x720 _large
Medium 640x360 _medium
Small 320x180 _small

Thumbnails generated at: 10%, 30%, 50%, 70%, 90% of video duration

Transcoding Presets

Preset Resolution Bitrate Codec
1080p 1920x1080 5000k H.264
720p 1280x720 2500k H.264
480p 854x480 1000k H.264

Output Structure

{
  "job_id": "job_1705312000_abc123",
  "status": "completed",
  "original": {
    "filename": "video.mp4",
    "resolution": "1920x1080",
    "duration": "00:05:30"
  },
  "thumbnails": {
    "large": "https://cdn/thumbnails/job_id/thumb_0_large.jpg",
    "medium": "https://cdn/thumbnails/job_id/thumb_0_medium.jpg",
    "small": "https://cdn/thumbnails/job_id/thumb_0_small.jpg"
  },
  "preview_gif": "https://cdn/previews/job_id/preview.gif",
  "transcoded": {
    "1080p": "https://cdn/transcoded/job_id/video_1080p.mp4",
    "720p": "https://cdn/transcoded/job_id/video_720p.mp4",
    "480p": "https://cdn/transcoded/job_id/video_480p.mp4"
  }
}

1.2 Logical Blocks

This catalog entry is organized from the workflow JSON. The node-level section below shows the executable blocks available for review before importing the template.

2. Block-by-Block Analysis

Block 1 - Sticky Note - Overview1

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 2 - Sticky Note - Step

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 3 - Sticky Note - Step 5

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 4 - Sticky Note - Step 6

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 5 - Sticky Note - Step 7

Type / Role
n8n-nodes-base.stickyNote - stickyNote
Config choices
Version 1

Block 6 - S3 Event Webhook1

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2

Block 7 - Manual Process Trigger1

Type / Role
n8n-nodes-base.webhook - webhook
Config choices
Version 2

Block 8 - Merge Triggers1

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3

Block 9 - Extract S3 Info1

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 10 - Check Is Video1

Type / Role
n8n-nodes-base.if - if
Config choices
Version 2.2

Block 11 - Invalid File Response1

Type / Role
n8n-nodes-base.set - set
Config choices
Version 3.4

Block 12 - Get Video Metadata (FFprobe)1

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 13 - Parse Video Metadata1

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 14 - Generate Thumbnails (FFmpeg)1

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 15 - Generate Preview GIF1

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 16 - Transcode Video1

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 17 - Aggregate Processing Results1

Type / Role
n8n-nodes-base.aggregate - aggregate
Config choices
Version 1

Block 18 - Invalidate CDN Cache1

Type / Role
n8n-nodes-base.httpRequest - httpRequest
Config choices
Version 4.2

Block 19 - Generate Signed URLs1

Type / Role
n8n-nodes-base.code - code
Config choices
Version 2

Block 20 - Log Processing Metrics1

Type / Role
n8n-nodes-base.googleSheets - googleSheets
Config choices
Version 4.5

Block 21 - Send Slack Notification1

Type / Role
n8n-nodes-base.slack - slack
Config choices
Version 2.2

Block 22 - Merge Output Paths1

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3

Block 23 - Merge All Paths1

Type / Role
n8n-nodes-base.merge - merge
Config choices
Version 3

Block 24 - Respond to Webhook1

Type / Role
n8n-nodes-base.respondToWebhook - respondToWebhook
Config choices
Version 1.1

3. Summary Table

Workflow Automate S3 video transcoding, thumbnail generation & CDN distribution
Complexity advanced
Nodes 24
Categories Content Creation, Multimodal AI
Author Tomoki
Published 16 Dec 2025

4. Reproducing the Workflow from Scratch

  1. 1. Download the workflow JSON

    Use the JSON export at /data/workflows/11853/11853.json as the source template for this automation.

  2. 2. Import the template into n8n

    Open n8n, import the downloaded JSON, and review each node before activating the workflow.

  3. 3. Configure credentials and variables

    Replace placeholder credentials, API keys, webhook URLs, account IDs, and environment-specific values with your own settings.

  4. 4. Test with sample data

    Run the workflow manually or in a staging workspace, inspect node output, and confirm downstream systems receive the expected data.

  5. 5. Activate and monitor

    Enable the workflow only after testing, then monitor executions, errors, and rate limits during the first production runs.

5. General Notes & Resources

Review imported nodes carefully before activation. This catalog entry is intended to help you inspect the workflow structure, understand required services, and find related templates faster.

Node names, credentials, schedules, webhook paths, and external service limits may need adjustment for your workspace.

Frequently asked questions

What does Automate S3 video transcoding, thumbnail generation & CDN distribution do?

Video Processing Pipeline with Thumbnail Generation and CDN Distribution Summary Automated video processing system that monitors S3 for new uploads, generates thumbnails and preview clips, extracts...

What do I need before importing this workflow?

Review the workflow JSON, configure any required credentials in n8n, and test the automation in a safe workspace before using it in production.

Can I customize this workflow?

Yes. Use the block-by-block analysis and the downloadable JSON to inspect each node, then adjust credentials, prompts, schedules, filters, or destinations for your Content Creation, Multimodal AI use case.