Instagram Embed
This module allows users to easily embed Instagram posts, reels, and IGTV videos directly into CKEditor 5 content. It provides a toolbar button and a simple form for inserting URLs, and uses Instagram's native embed functionality without requiring any API keys or external services. The embeds are stored as lightweight placeholders and converted to standard blocks on render for security.
Description
Embeds Instagram posts, reels, and IGTV videos inside CKEditor 5 content via a native toolbar button and balloon form. No build step, no external proxy, no API key required.
Features
- Adds an Instagram Post button to the CKEditor 5 toolbar.
- Balloon form accepts an Instagram URL (post, reel, or TV) and validates it before inserting.
- Optional background color toggle (configurable per embed).
- Stores a lightweight placeholder in the database; a text filter converts it to the standard Instagram embed blockquote on render.
- Strict server-side URL validation prevents XSS. No user-controlled markup or JavaScript is emitted.
- Uses Instagram's native embed.js directly — no external proxy service dependency.
- No build step: uses the CKEditor 5 DLL-compatible plugin format.
Installation & Configuration
- Install via Composer:
composer require drupal/instagram_embed - Enable:
drush en instagram_embed - Go to Configuration → Content authoring → Text formats and editors, edit the desired format (e.g. Full HTML):
- Drag the Instagram Post button into the CKEditor 5 toolbar.
- Enable the Instagram Embed filter.
- Save the format.
Additional Requirements
Drupal 10.3+ or 11. Only core modules required: filter and ckeditor5.
Similar projects
Ckeditor Instagram Embed — CKEditor 4 only, no stable release, appears unmaintained since 2024.
CKEditor Media Embed Plugin — generic oEmbed via external Iframely proxy; not Instagram-specific.
This module is a lightweight, zero-dependency alternative focused solely on Instagram with native CKEditor 5 support and per-embed background styling.