Live preview
Media Library
A sermon and media library with series grouping and video playback. Organize your church's video content into series and let visitors browse and watch directly on your website.
Supported Providers
- Firesky — Data managed in Dashboard → Widgets → Media Library. Available to all churches.
Embed
<fs-media-library></fs-media-library>
Optional Attributes
| Attribute | Description | Default |
|---|---|---|
media-label | Plural label for media items | Sermons |
media-label-singular | Singular label (derived from media-label if not set) | Derived |
layout | Display layout: series (default) or videos | series |
Examples:
<!-- Default: series grid → series modal → player -->
<fs-media-library></fs-media-library>
<!-- Custom label for a video-focused church -->
<fs-media-library media-label="Messages"></fs-media-library>
<!-- Full custom labels -->
<fs-media-library media-label="Videos" media-label-singular="Video"></fs-media-library>
<!-- Flat video grid: skip the series popup, click any video to play directly -->
<fs-media-library layout="videos" media-label="Videos"></fs-media-library>
Layout modes
layout="series" (default) — The classic experience:
- Browse a grid of series cards
- Click a series to open a series detail popup
- Click a video in the popup to open the player
layout="videos" — A flat video list, ideal for YouTube-synced channels:
- Browse a flat grid of all videos (newest first), skipping the series layer
- Click any video card to open the player directly
Both layouts share the same URL-based deep linking (?item=<id>, ?latest=1).
Features
- Series grid — Displays all series with thumbnail, title, and video count
- Flat video grid — Optional
layout="videos"skips the series popup - Series detail — Click a series to see all videos in it (series layout only)
- Video playback — Embedded YouTube player or HTML5 video with title and description
- Deep linking — Series and video state is reflected in the URL for shareable links
- Responsive — Works on desktop and mobile
Managing Content
Go to Dashboard → Widgets → Media Library to:
- Create and manage series
- Add videos to series (YouTube or uploaded video files)
- Set thumbnails, titles, and descriptions
- Reorder content
- Connect a YouTube channel for automatic sync
YouTube Channel Auto-Sync
Connect a public YouTube channel to automatically keep your Media Library up to date:
- In the Dashboard → Widgets → Media Library, scroll to YouTube Channel Sync
- Paste your channel URL (e.g.
https://www.youtube.com/@YourChurch) and click Resolve - Confirm the channel details — set the earliest import date and any import options (see below)
- Click Connect channel — all matching public uploads are imported immediately
- New videos appear within minutes of being published (via WebSub push notifications)
- The cron reconciler runs every 30 minutes as a safety net for any missed pushes
Recommended embed for YouTube-synced libraries:
<fs-media-library layout="videos" media-label="Videos"></fs-media-library>
Import options
Import settings can be configured at connect time and edited at any time via Import settings on the connected channel card. Changing settings and clicking Save & re-sync immediately re-applies filters: newly-matching videos are imported and previously-imported videos that no longer match are hidden.
| Option | Default | Description |
|---|---|---|
| Earliest import date | Required | Only videos published on or after this date are imported. Useful for channels with years of older content. |
| Include Shorts | Off | Import videos ≤ 60 seconds. YouTube has no direct Shorts flag — this is a duration heuristic. |
| Include past livestreams | Off | Import completed broadcasts. Upcoming/scheduled premieres are always excluded. |
| Minimum duration (minutes) | None | Exclude short clips. E.g. set to 10 to only import videos 10+ minutes long. |
| Title must contain | None | Comma-separated keywords. At least one must appear in the video title (case-insensitive). |
| Title must not contain | None | Comma-separated keywords. Videos matching any keyword are excluded (case-insensitive). |
Requirements:
YOUTUBE_API_KEYmust be set in your Vercel environment (YouTube Data API v3 key)- Videos must be public — private/unlisted videos are not synced
Requirements
- Add allowed origins in Dashboard → Widgets → Allowed origins
- Embed the Firesky script before using the widget
Use Case
Add to your church website's sermons or media page to give visitors a clean, browsable library of your video content organized by series — or connect your YouTube channel for fully automatic, zero-maintenance video sync.