YouTube

Connect YouTube, a video hosting platform, with Webflow to embed videos, display channel feeds, and sync video metadata to CMS collections.

Install app
View website
View lesson
A record settings
CNAME record settings
YouTube

Webflow handles layout, CMS content, and hosting, but it does not host video files or manage a video library. Adding video to a site means relying on an external platform to store, transcode, and deliver that content. Without a video source, pages that need product demos, course lessons, or portfolio reels are left with static placeholders.

YouTube fills that gap by handling video hosting, playback, and delivery at no storage cost to the Webflow site. Connecting the two lets teams embed individual videos, pull entire channel feeds into CMS-driven pages, and control playback behavior through iframe parameters or JavaScript. The result is a video-rich site where YouTube handles the infrastructure and Webflow handles the design.

This integration is relevant to marketing teams adding campaign videos to landing pages, course creators building lesson libraries, agencies showcasing video portfolios, content creators running channel hub websites, and ecommerce teams embedding product demos. Any Webflow project that needs video content from YouTube will use at least one of the methods covered here.

How to integrate YouTube with Webflow

What is YouTube? YouTube is a video hosting, streaming, and content distribution platform owned by Google. It supports long-form video, short-form video (YouTube Shorts, up to 3 minutes), live streaming, and video podcasts. YouTube provides embeddable video players, a Data API for accessing video metadata, and an IFrame Player API for JavaScript-based playback control.

Teams connect YouTube with Webflow when they need video content on their site without self-hosting files. Common scenarios include embedding a demo video on a landing page, building a CMS-powered video gallery that reflects a YouTube channel, or creating a course platform backed by YouTube-hosted lessons. The right approach depends on how many videos are involved and how much control the project requires.

The YouTube-Webflow integration supports 4 approaches:

  • Webflow's native video elements handle single embeds and CMS-bound video fields without writing code.
  • Marketplace apps and third-party widgets display auto-updating YouTube channel feeds, playlists, and styled galleries.
  • Zapier, IFTTT, and n8n support YouTube-to-Webflow actions such as creating or updating Webflow CMS items when new YouTube videos are published.
  • The YouTube and Webflow APIs give full control over video metadata sync, custom players, and analytics dashboards, but require server-side development.

Most implementations combine two or more of these methods depending on the complexity of the setup.

Embed YouTube videos with Webflow's native elements

Webflow includes built-in elements for embedding YouTube videos directly on the canvas. These work without custom code and cover the majority of single-video use cases. The approach splits across three elements — each with different capabilities and trade-offs.

Use the YouTube video element

The YouTube video element is a dedicated component in Webflow's Add panel that exposes YouTube-specific settings through the UI. It was introduced to give access to playback controls not available in the generic Video element.

To add a YouTube video element:

  1. Open the Add panel (+ icon in the left sidebar) and search for "YouTube."
  2. Drag the YouTube element onto the canvas.
  3. Open the Settings panel (right sidebar) and paste the YouTube video URL.
  4. Configure available settings — start time, autoplay, mute, player controls, and privacy mode.

The element automatically takes the full width of its parent container and maintains the correct aspect ratio across screen sizes. The privacy mode toggle switches the embed domain to youtube-nocookie.com, reducing tracking cookies on page load.

One limitation applies here. The YouTube video element cannot connect to Webflow CMS fields for dynamic content. For CMS-driven video, use the generic Video element instead.

Use the generic Video element for CMS binding

The Video element accepts YouTube URLs and supports binding to a CMS collection's Video Link field. This makes it the right choice for video galleries, blog posts with dynamic video, or any page where the video URL comes from a CMS item.

To embed a CMS-bound video:

  1. Drag a Video element onto the canvas from the Add panel.
  2. In the Settings panel, connect the element to a CMS Video Link field.
  3. The element renders the correct video player for each collection item automatically.

The trade-off is that the generic Video element does not expose YouTube-specific settings like start time, autoplay, or privacy mode. Use it when CMS binding matters more than player configuration.

Use a Code Embed element for full parameter control

A Code Embed element accepts raw HTML, giving access to every YouTube player parameter. This is the only method that supports looping, caption language preferences, keyboard control disabling, and annotation hiding.

To embed with full parameter control:

  1. On YouTube, click Share below the video, then click Embed, and copy the <iframe> code.
  2. In Webflow, drag a Code Embed element onto the canvas and double-click to open the code editor.
  3. Paste the iframe code and modify URL parameters in the src attribute as needed.
  4. Remove inline width and height attributes from the iframe, then apply sizing through Webflow's Style panel for responsive behavior.
  5. Click Save & Close.

Commonly used parameters include autoplay=1 (requires mute=1 for browser compatibility), controls=0 to hide player controls, rel=0 to restrict related videos to the same channel, and loop=1 paired with playlist=VIDEO_ID to loop a single video. The loop parameter fails silently without the matching playlist value — this is a documented requirement.

A complete background-style embed looks like this:

<iframe
 src="https://www.youtube-nocookie.com/embed/VIDEO_ID?autoplay=1&mute=1&loop=1&playlist=VIDEO_ID&controls=0&rel=0"
 loading="lazy"
 allow="autoplay; fullscreen"
 style="position:absolute; top:0; left:0; width:100%; height:100%;"
 title="Video Title">
</iframe>

Code Embed elements require a paid Webflow site plan (CMS, Business, or Ecommerce) or a paid Workspace plan. The element has a 50,000 character limit per embed. For performance on pages with multiple videos, add loading="lazy" to defer below-fold iframe loading, or use a facade pattern that shows a static thumbnail and loads the iframe only on click.

Use marketplace apps and third-party widgets

For auto-updating YouTube channel feeds, playlist galleries, and styled video displays, third-party tools handle the connection between a YouTube channel and Webflow without custom code. These are most useful when the goal is to display a living feed that reflects new uploads automatically.

Install Formly and Flowplay

Formly & Flowplay is a free Webflow Marketplace app by ViDesigns that adds custom video playback controls to YouTube, Vimeo, and HTML video embeds. It uses an attributes-based setup, meaning configuration happens through Webflow's element settings rather than code.

To set up Formly & Flowplay:

  1. Install the app from its Webflow Marketplace listing.
  2. Add a video element to the canvas and apply the required attributes per the app's documentation.
  3. Configure playback controls, video speed selector, keyboard shortcuts, and volume controls through attributes.

The app provides full design freedom within Webflow. It supports YouTube, Vimeo, and native HTML video sources. Because it is attributes-based, it works without writing JavaScript.

Add a Finsweet YouTube feed component

The Finsweet YouTube Feed component is an installable Webflow app that displays a live-updating YouTube feed from any channel or playlist. It supports grid, single player, and slider layouts, and displays metadata like likes, comments, views, saves, headers, title, and description.

To add a Finsweet YouTube feed:

  1. Install the component from the Finsweet website.
  2. Configure the feed to pull from a specific YouTube channel or playlist.
  3. Choose a layout — grid, single player, or slider — and customize the display options.

The component integrates with Finsweet's Slider Component for carousel-style feeds. No custom code is required.

Embed a third-party YouTube gallery widget

Widget services like Elfsight, EmbedSocial, and SociableKIT generate a snippet that renders a styled YouTube gallery on any Webflow page. These galleries auto-update when new content is published to the connected YouTube channel or playlist.

To add a widget:

  1. Create and configure the widget on the provider's site (e.g., Elfsight YouTube Gallery, EmbedSocial, or SociableKIT).
  2. Copy the embed code — typically a <script> tag and a <div> tag.
  3. Paste both into a Code Embed element on the Webflow canvas.

For site-wide widgets, paste the <script> tag into custom code in the head tag under site settings. Elfsight's documentation notes that omitting either the <script> or <div> tag prevents the widget from rendering. All widget-based methods require a paid Webflow plan because they rely on Code Embed elements.

Connect with Zapier, IFTTT, or n8n

Automation platforms connect YouTube and Webflow directly through explicit YouTube triggers and Webflow actions. This is the most practical approach for teams that want their Webflow site to reflect new YouTube content automatically without writing code or managing APIs.

Zapier offers pre-built templates for YouTube-to-Webflow workflows. Available triggers and actions include:

  • New video in channel (YouTube) → Create live CMS item (Webflow)
  • New video in channel (YouTube) → Update existing CMS item (Webflow)
  • New video matching search keyword (YouTube) → Create CMS item (Webflow)
  • New video added to playlist (YouTube) → Create live CMS item (Webflow)

IFTTT supports YouTube triggers and Webflow actions, including Create collection item (Webflow), Create live collection item (Webflow), and Publish site (Webflow). Webflow triggers and actions on IFTTT require a Pro subscription.

n8n also supports direct YouTube-to-Webflow workflows. Confirmed use cases include YouTube videos to Webflow CMS and a workflow template for generating blog posts from YouTube videos and publishing to Webflow. This makes n8n a flexible option for teams that want multi-step workflows while still ending in explicit Webflow actions.

For the most common use case — syncing new YouTube uploads to a Webflow CMS collection — any of these platforms works. Zapier has the most pre-built templates, IFTTT supports YouTube triggers with Webflow actions such as creating collection items or publishing a site, and n8n offers the most flexibility for multi-step workflows. The CMS plan supports up to 2,000 items, and the Business plan supports up to 20,000 items, so plan the collection size accordingly.

Build with the Webflow and YouTube APIs

For dynamic video galleries, search pages, auto-sync pipelines, and custom player behavior, the YouTube and Webflow APIs provide full programmatic control. This approach requires server-side development and API key management.

The relevant APIs are:

Each API has different authentication requirements. YouTube Data API calls need either an API key (read-only) or OAuth 2.0 (write access). Webflow's API requires a Bearer token. The YouTube IFrame Player API runs client-side with no authentication.

Sync channel videos to Webflow CMS

The most common API use case pulls a YouTube channel's uploads into Webflow CMS items. A quota-efficient pattern avoids the search.list endpoint (100 quota units per call) in favor of playlistItems.list (1 unit per page).

To sync channel videos:

  1. Get the channel's uploads playlist ID with channels.list:

GET https://www.googleapis.com/youtube/v3/channels
 ?part=contentDetails
 &id=UCxxxxxxxx
 &key=YOUR_API_KEY

Extract items[0].contentDetails.relatedPlaylists.uploads. This costs 1 quota unit.

  1. Fetch video IDs from the uploads playlist with playlistItems.list:

GET https://www.googleapis.com/youtube/v3/playlistItems
 ?part=snippet,contentDetails
 &playlistId=UUxxxxxxxx
 &maxResults=50
 &key=YOUR_API_KEY

Each page costs 1 unit. Paginate with nextPageToken for channels with more than 50 videos.

  1. Get full metadata with videos.list:

GET https://www.googleapis.com/youtube/v3/videos
 ?part=snippet,contentDetails,statistics
 &id=VIDEO_ID_1,VIDEO_ID_2
 &key=YOUR_API_KEY

This accepts up to 50 comma-separated video IDs per call at 1 unit each.

  1. Create Webflow CMS items via the Data API:

POST https://api.webflow.com/v2/collections/{collection_id}/items
Authorization: Bearer <token>
Content-Type: application/json

json
{
 "fieldData": {
   "name": "Video Title",
   "slug": "video-slug",
   "video-id": "dQw4w9WgXcQ",
   "thumbnail-url": "https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg",
   "published-at": "2024-01-15T00:00:00.000Z",
   "youtube-url": "https://youtube.com/watch?v=dQw4w9WgXcQ"
 },
 "isArchived": false,
 "isDraft": false
}

5. Publish the items:

POST https://api.webflow.com/v2/collections/{collection_id}/items/publish
Body: { "itemIds": ["itemid1", "itemid2"] }

The total quota cost for syncing a typical channel is 3 to 5 units — compared to 100+ units if `search.list` were used. The YouTube Data API defaults to 10,000 units per day, resetting at midnight Pacific Time. For new-upload detection without any quota cost, poll the YouTube RSS feed at `https://www.youtube.com/feeds/videos.xml?channel_id=UCxxxxxxxx`, which returns the most recent ~15 videos with no API key required.

#### **Add JavaScript playback control with the IFrame Player API**

The IFrame Player API lets you control YouTube playback programmatically — play, pause, seek, detect video completion, and respond to state changes. It consumes zero Data API quota because it runs entirely in the browser.

To implement a custom player in Webflow:

1. Add the API script to the page's before `</body>` custom code section in page settings:

html
<script>
 var tag = document.createElement('script');
 tag.src = "https://www.youtube.com/iframe_api";
 var firstScriptTag = document.getElementsByTagName('script')[0];
 firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
</script>

2. Add a Code Embed element with a container `<div>` for the player:

html

3. Instantiate the player and attach event listeners:

javascript
var player;
function onYouTubeIframeAPIReady() {
 player = new YT.Player('yt-player', {
   videoId: 'VIDEO_ID',
   playerVars: {
     'playsinline': 1,
     'rel': 0
   },
   events: {
     'onStateChange': function(event) {
       if (event.data === YT.PlayerState.ENDED) {
         console.log('Video completed');
       }
     }
   }
 });
}
```

For CMS-driven pages, read the video ID from a data attribute on a page element (data-video-id) and pass it to the YT.Player constructor. This lets each CMS item load a different video without changing the script. The onStateChange event is useful for tracking video completion — a common requirement for course platforms and SaaS demo pages. This method is best when playback behavior needs to respond to user actions or page logic.

What can you build with the YouTube Webflow integration?

Integrating YouTube with Webflow lets you build video-driven pages and content libraries without self-hosting video files or managing media infrastructure.

  • CMS-powered video course platform: Build a lesson library where each CMS item stores a YouTube video URL, title, description, and thumbnail. Use Collection Lists to render course catalogs with filterable categories. Pair with the IFrame Player API to detect lesson completion and mark progress, similar to the Outseta LMS template that auto-detects when a student finishes a video.
  • Auto-synced YouTube channel hub: Create a branded website that mirrors a YouTube channel's content automatically. Use Zapier or n8n to create a Webflow CMS item each time a new video is published, populating title, thumbnail, and video link fields. The site stays current without manual updates — useful for content creators, podcasters, and media brands.
  • Video portfolio with lightbox playback: Build a grid of video thumbnails from CMS Video Link fields that open in Webflow's Lightbox element for full-screen playback. Agencies and production studios use this pattern to showcase reels and case studies without sending visitors to YouTube.
  • Product demo library with search and filtering: Store YouTube demo video metadata in CMS collections with fields for product category, feature area, and duration. Render a filterable video library on the site where prospects can self-serve. Track which videos are watched to completion using the IFrame Player API's onStateChange event for lead qualification signals.

If you need more control over real-time sync or custom analytics dashboards, the API integration path covers those cases with full flexibility.

Frequently asked questions

  • Yes, but only with the generic Video element, not the YouTube video element. The YouTube video element does not bind to CMS Video Link fields. Switch to the generic Video element, which accepts YouTube URLs from a collection's Video Link field and renders the embed dynamically. The trade-off is losing access to YouTube-specific settings like start time, autoplay, and privacy mode. For full parameter control with CMS data, use a Code Embed element and construct the iframe URL using a CMS plain text field containing the video ID.

  • Add ?autoplay=1&mute=1&loop=1&playlist=VIDEO_ID to the iframe src attribute inside a Code Embed element. Muting is required because modern browsers block autoplay with audio. The playlist parameter must match the video ID. Without it, loop=1 fails silently. The native YouTube video element offers autoplay and mute toggles in its settings panel, but does not support looping. For loop behavior, the Code Embed approach is necessary.

  • Each YouTube iframe loads its own JavaScript, CSS, and player resources independently. On pages with several embeds, this adds significant weight and negatively affects Largest Contentful Paint (LCP) and Cumulative Layout Shift (CLS). The fix is a facade pattern: display a static thumbnail image from YouTube's CDN with a play button overlay, and load the actual iframe only when the visitor clicks. Adding loading="lazy" to below-fold iframes also defers their load.

  • Standard YouTube embeds from the youtube.com domain set tracking cookies on page load, which requires prior user consent under GDPR. Switching to youtube-nocookie.com in the iframe src prevents profiling cookies on page load but may still set cookies on playback. Webflow's native YouTube element handles this through a built-in privacy mode toggle . Enable it in the element settings to serve video from youtube-nocookie.com without touching the URL field. If you need a custom iframe with specific parameters, use a Code Embed element and set the src to your youtube-nocookie.com URL directly; pasting that URL into the native element's URL field does not work.

  • Use an automation platform with a direct YouTube-to-Webflow connection. Zapier offers a pre-built template that triggers on new YouTube channel videos and creates a live Webflow CMS item with the video's title, URL, and metadata. IFTTT and n8n support the same workflow. For a code-based approach, poll the YouTube RSS feed (https://www.youtube.com/feeds/videos.xml?channel_id=UCxxxxxxxx) from a serverless function and use the Webflow Data API to create collection items — this consumes zero YouTube API quota.

YouTube
YouTube
Joined in

Category

Assets

Description

Embed YouTube videos on Webflow pages with native elements, sync channel uploads to Webflow CMS through automation tools or APIs, and control playback with iframe parameters.

Install app

This integration page is provided for informational and convenience purposes only.


Other Assets integrations

Other Assets integrations

Pixcap Editable 3D Icons and Characters

Pixcap Editable 3D Icons and Characters

Connect Pixcap, a customizable 3D asset library, with Webflow to browse, customize, and insert 3D icons, illustrations, and characters directly in Webflow without 3D modeling skills.

Assets
Learn more
CutCopy

CutCopy

Connect CutCopy with Webflow to transfer variables and attributes between projects without manual recreation.

Assets
Learn more
Devblocks CMS Image Optimizer

Devblocks CMS Image Optimizer

Large CMS collections accumulate uncompressed images over time as content editors upload full-resolution photos and marketing teams import product libraries. Each uncompressed image increases page load times and consumes bandwidth.

Assets
Learn more
Flowdrive

Flowdrive

Connect Flowdrive, an external file and video hosting service, with Webflow to host videos and enable file uploads without Webflow's Business plan requirement.

Assets
Learn more
Lummi

Lummi

Connect Lummi, an AI-generated stock image platform, with Webflow to search, customize, and insert royalty-free images directly in the Designer without leaving your canvas.

Assets
Learn more
Image Management

Image Management

Connect the Pixlevents Image Management Webflow app to optimize CMS images and convert formats to WebP and AVIF without leaving your workspace.

Assets
Learn more
Smootify Icons Webflow integration

Smootify Icons Webflow integration

Access 10,000+ SVG icons directly in Webflow without downloading files or managing external asset libraries. Smootify Icons integrates 8 icon libraries with native styling controls.

Assets
Learn more
Chainlift Color

Chainlift Color

Connect Chainlift Color with Webflow to generate accessible Material 3 dynamic color themes with pre-configured utility classes and color variables.

Assets
Learn more
Bynder

Bynder

Connect Bynder with Webflow to manage brand-approved digital assets within your design workflow and serve optimized content through Bynder's global CDN.

Assets
Learn more

Related integrations

No items found.

Get started for free

Try Webflow for as long as you like with our free Starter plan. Purchase a paid Site plan to publish, host, and unlock additional features.

Get started — it’s free