GMC YouTube Gallery — Documentation (WordPress)
GMC YouTube Gallery (slug wp-gmc-video-hub) turns YouTube videos, playlists, channels and searches into responsive, privacy-friendly galleries on your WordPress site. Instead of pasting raw embeds one by one, you drop a shortcode anywhere and get a styled video wall that matches your theme. It is built for content sites in tourism, media and education — or any site that wants a professional video gallery without hand-maintaining embeds. Requirements: WordPress 6.0 or newer, PHP 8.1 or newer.
Installation
- In your WordPress dashboard go to Plugins → Add New Plugin → Upload Plugin.
- Choose the plugin
.zipfile you downloaded after purchase (keep it zipped — do not extract it first). - Click Install Now, then Activate.
After activation the plugin's settings screen appears in the admin menu.
Configuration
Open the plugin's settings screen from the admin menu. The main things to set up:
- YouTube Data API key. A single video by ID or URL works with no key. Galleries built from a playlist, channel or search use the YouTube Data API, so you need to provide your own API key. Results are cached locally, which keeps API calls (and quota usage) down; if the API is temporarily unavailable, the plugin falls back to stale cache and logs the API error instead of breaking the page.
- Privacy mode. Enable it to embed videos through
youtube-nocookie.com. YouTube then sets no cookies and does not track visitors until they actually press play — the behaviour many EU sites need. - Download Key. Enter the Download Key from your licence email in the field on the settings screen. This unlocks licensed one-click updates (see below).
Display defaults such as template, gutter, show-title / show-description toggles and responsive breakpoints can also be adjusted, and individual shortcodes can override them per gallery.
Using the plugin
Inserting a gallery with shortcodes
Place a shortcode in any post, page or widget area. Examples:
[gmcyoutube playlist="PLAYLIST_ID" limit="12"]— a 12-video gallery from a playlist.[gmcyoutube video="VIDEO_ID" mode="embed"]— a single video embedded inline.
Sources can be a single video (by ID or URL), a list of videos, a playlist, a channel or a YouTube search. The [gmcvideo] shortcode is also available for single videos.
Templates and display modes
Several responsive templates are included: grid, list, cinema, compact, circles and the circular mx-circles2 MX-YouTuber template with responsive mobile columns. Videos can open in three display modes:
- Embed — the player loads inline on the page.
- Lightbox — the video opens in an overlay.
- Link — the thumbnail links to the video (also usable inside galleries).
Galleries support channel headers, per-video descriptions with show-title / show-description toggles, a configurable gutter and responsive breakpoints.
Migrating from AllForJoomla / YouTubeR
Legacy AllForJoomla / YouTubeR shortcode aliases are supported, and old template names (dark, flipcards, circles) are mapped to their current equivalents, so existing content keeps working after you switch — no need to rewrite shortcodes site-wide.
Caching
Video metadata fetched from the YouTube Data API is cached locally. This speeds up page loads and limits API requests. If an API call fails, the plugin serves the last cached data and logs the error, so your galleries stay visible.
Updates & licence
- Download Key. After purchase you receive a Download Key with your licence email. Enter it on the plugin's settings screen; it unlocks licensed one-click updates and stays required for updates while your licence is active.
- Automatic updates. The plugin checks the GMC / FuerteventuraTV update server on its own (about every 12 hours) and shows new versions under Plugins or Dashboard → Updates, like any other plugin. One-click updates validate the licensed gateway download URL before installing. You can also re-download the latest build from your account at any time.
- Licence. The software is released under the GNU GPL. Your purchase covers the official build, licensed updates and support for one site. For multiple sites or client projects, contact us for a volume or agency arrangement. The WordPress licence covers the
wp-gmc-video-hubplugin only; the Joomla edition is a separate product.
Support
- WhatsApp: +34 633 168 995 — this number also appears in your licence email.
- Email: reply to your purchase email.
- Languages: English, Italian and Spanish. The plugin itself ships with EN/IT/ES translations and respects your site's multilingual setup.
When contacting support, include the product name and version, your WordPress and PHP versions, and a public URL or screenshot (mask any API keys). If the product does not work as described and we cannot fix it for you, you can request a refund within 14 days of purchase.
Everything included
62 real features, grouped by area — the full depth of GMC YouTube Gallery (Video Hub), one aligned feature set on Joomla and WordPress.
Video sources & gallery types
- Single video by ID — drop in one clip with just its YouTube ID.
- Single video by URL — paste any YouTube link (
youtu.be/…,watch?v=…,/embed/…,/shorts/…) and it extracts the ID automatically. - Manual video-list gallery — hand-pick videos with a comma-, newline- or pipe-separated list; builds a gallery with zero API key needed.
- Playlist gallery — render a full playlist as a styled gallery, or fall back to a native embedded playlist player with
gallery="false". - Channel gallery — show a channel's latest uploads, always ordered newest-first.
- YouTube search gallery — turn a search query into a live gallery of matching videos.
- Multi-source merge — combine several playlists and/or channels plus a manual video list in a single shortcode; results are merged, de-duplicated by video ID and sorted newest-first before the limit is applied.
- Channel header card — optionally show the channel avatar, title and description above a channel gallery.
- Graceful bare-link fallback — a channel with no API key (or an empty result) degrades to a plain "YouTube channel" link instead of a broken block.
Display modes & templates
- Three display modes per gallery — inline
embed, thumbnaillightbox, orlink(opens on YouTube); the mode is honoured inside galleries, not just single videos. - Autoplay lightbox — thumbnails open a full-screen modal that autoplays the video; closes on the Close button or a backdrop click.
- Nine ready-made templates — Grid, List, Cinema (first video full-width), Compact (auto-fit tiles), Circles, Dark overlay, Flip cards (3D hover flip) and two circle grids (circular tiles with hover rotate) — no custom CSS required.
- Template aliases — friendly names map automatically (
default/cards→ grid,circle→ circles,flipcard→ flipcards, plus legacy variants), so imported or typo'd names still resolve. - Configurable columns — 1–6 responsive columns from settings (up to 12 via shortcode); legacy circle templates auto-default to 7 columns unless you set your own.
- Configurable gutter — control the gap between tiles from 0 to 48 px.
Frontend experience
- Fully responsive — CSS Grid with automatic breakpoints (2 columns under 760 px, 1 under 480 px; circle templates have their own tuned mobile grids).
- Load More pagination — show an initial batch and reveal the next set on click, keeping long galleries light on first paint.
- Per-gallery header — optional title bar with a live video count.
- Per-video titles and descriptions — toggle each on/off; descriptions are word-trimmed (
max_words) to keep cards tidy. - Lazy loading — thumbnails and iframes load lazily for faster pages.
- Zero external assets — all CSS and JS are injected inline once per page; no jQuery, no CDN, no bundled libraries, nothing extra to enqueue.
Authoring & editor integration
- Four interchangeable shortcodes —
gmcvideo,gmcvideohub,gmcyoutube,gmcyoutuber(Joomla curly-brace tokens in article text; WordPress square-bracket shortcodes). - Visual insert button — a toolbar/editor button drops a ready gallery snippet into a page without pasting embed code (Joomla editor-XTD button; WordPress classic-editor media button).
- Per-shortcode overrides — every site default (mode, template, columns, gutter, limit, page size, title/description, header) can be overridden inline on any single gallery.
- Silent legacy migration — old
[mx_youtuber…]shortcodes and their attributes are transparently re-mapped (type/id, theme→template, cols→columns, rows→limit/page-size, display→toggles), so migrated sites keep rendering without editing content.
Admin & configuration
- Branded settings screen — a clean, card-based admin page (top-level "GMC YouTube" menu in WordPress; plugin Options in Joomla).
- Guided API setup wizard — step-by-step instructions to create a YouTube Data API v3 key in about five minutes.
- Live "Test connection" button — validates the API key on the spot and returns a specific diagnosis (working, invalid/restricted key, API not enabled, quota exceeded, or network error) instead of a generic failure.
- Per-site defaults — display mode, template, video limit, columns, gutter, items-before-Load-More, channel header, title/description visibility and privacy mode.
- Collapsible advanced panel — request timeout and cache lifetime tucked away from everyday settings.
- Default-shortcode component option — a Joomla component config field for a house default.
YouTube API, caching & performance
- YouTube Data API v3 — pulls real titles, thumbnails and metadata for playlist, channel and search galleries (
playlistItems,search,channels). - API key is optional — single videos, manual lists and bare playlist/channel embeds work with no key at all; a key is only needed to list items with real metadata.
- Local metadata cache — API responses are cached (file cache in Joomla, transients in WordPress) with a configurable TTL to cut repeat calls and keep pages fast.
- Stale-cache resilience — on a transient YouTube outage the gallery serves the last good result instead of going blank.
- Negative caching — a dead or misconfigured key's empty result is cached briefly so it isn't re-hit on every page view, protecting your API quota.
- Atomic, safe cache writes — temp-file-and-rename writes avoid partial or corrupt cache files (Joomla).
- Cache off switch — set cache lifetime to 0 to disable caching entirely.
- Configurable request timeout — 2–20 s, so a slow API never hangs a page.
- Failure logging — API transport/HTTP errors are logged (Joomla log channel; WordPress
error_logunderWP_DEBUG) for easy diagnosis.
Privacy, GDPR & security
- Privacy-enhanced embeds —
youtube-nocookie.comembeds are the default, deferring YouTube cookies until the visitor actually presses play. - No key leakage — the API key is never emitted in front-end output.
- Hardened iframes — every embed carries
referrerpolicy="strict-origin-when-cross-origin"and a scopedallowpermissions list. - Full output escaping — all dynamic values pass through Joomla
escape()/ WordPressesc_*, and video/playlist/channel IDs are sanitised to a safe character set. - CSRF-protected admin actions — the Test-connection call is token/nonce-checked and admin-only.
- Backend access control — Joomla enforces
core.managefor backend access and shows Preferences only tocore.optionsusers. - Clean uninstall — WordPress removes its settings, licence key, cached metadata and last-known-good files on deletion, leaving no orphan data.
Licensing & updates
- Licensed one-click updates — new versions are delivered automatically from the GMC / FuerteventuraTV gateway (Joomla update server in the package manifest; WordPress update checker via the same gateway).
- Download Key activation — paste the Download Key from your licence email; Joomla surfaces the key field via the manifest
dlid. - Hard licence gate with grace mode — shortcodes render only for a valid licence, but a previously valid site keeps working through a temporary gateway outage (12-hour entitlement cache plus persisted last-known-good); only a fresh, explicit
valid:falsedisables rendering. - Instant re-check on key change — saving a new key clears the cached entitlement so the new licence is verified immediately (WordPress).
- Validated update downloads — WordPress only accepts an update package from an HTTPS URL on the official host (no embedded credentials, port 443), blocking tampered download URLs.
- Correct "up to date" reporting — WordPress registers a
no_updateentry so the plugin shows a proper current-version state.
Trust & licensing
- GPLv2-or-later — released under the GNU General Public License; the official build ships with licensed updates and support for one site.
- Self-hosted, your own key — runs entirely on your server with your own YouTube API key; the only outbound calls are to YouTube/Google and the GMC licence/update gateway.
- No database footprint — no custom tables and no migrations; nothing to clean up at the DB level.
- No build chain — pure PHP with inline CSS/JS; no Composer, npm, Node or compile step.
- Download Key by email — the key arrives with your purchase email and unlocks updates while the licence is active.
- Translation-ready — all UI strings are externalised (Joomla language keys; WordPress
wp-gmc-video-hubtext domain with a/languagespath); English (en-GB) ships in the package.
Joomla & WordPress
- Parity — both builds share the same shortcodes, sources, modes, templates, caching, privacy and licensing behaviour, and are released in lockstep at the same version.
- Joomla — ships as a package installing the
com_gmc_youtube_gallerycomponent, theplg_content_gmc_videohubcontent plugin and the editor-XTD button; galleries are curly-brace tokens in article text; Test-connection runs overcom_ajax; caching uses Joomla's file cache. - WordPress — a single self-contained plugin with square-bracket shortcodes, a top-level admin menu plus a dedicated License page, a classic-editor media button, transient-based caching with last-known-good options, and Test-connection over
admin-ajax.


