Bunny Stream Video Guide
Complete reference for creating and integrating video content using Bunny Stream’s native iframe player with live working examples.
🎯 Quick Start
Section titled “🎯 Quick Start”Basic Video Embed
Section titled “Basic Video Embed”<BunnyVideo videoId="YOUR_VIDEO_GUID" libraryId="YOUR_LIBRARY_ID" title="Video Title" aspectRatio="16/9"/>Playlist Embed
Section titled “Playlist Embed”<BunnyPlaylist libraryId="YOUR_LIBRARY_ID" heading="Training Series" videos={[ {id: "VIDEO_GUID_1", title: "Session 1 — Introduction"}, {id: "VIDEO_GUID_2", title: "Session 2 — Deep Dive"} ]}/>📋 Required Information
Section titled “📋 Required Information”For each video, you’ll need:
- Video Library ID: Your Bunny Stream library identifier
- Video ID: The unique GUID for each video
- Video Metadata: Title, description (optional but recommended)
Getting Your Video IDs
Section titled “Getting Your Video IDs”- Log into your Bunny Stream Dashboard
- Navigate to your video library
- Select a video to view its details
- Copy the Video Library ID and Video ID from the embed section
🎬 Live Examples
Section titled “🎬 Live Examples”This section demonstrates actual working video embeds. These are real video players that you can interact with.
Single Video Players
Section titled “Single Video Players”Standard Player
Section titled “Standard Player”Autoplay Player
Section titled “Autoplay Player”Playlist Players
Section titled “Playlist Players”Overcome Objections Collection
Section titled “Overcome Objections Collection”⚙️ Component Options
Section titled “⚙️ Component Options”BunnyVideo Component
Section titled “BunnyVideo Component”Required Props:
videoId: Bunny Stream video GUIDlibraryId: Bunny Stream library ID
Optional Props:
title: Accessible title for the iframetoken: Embed view token for protected contentautoplay: Boolean (default: false)muted: Boolean (default: false, but true if autoplay is true)loop: Boolean (default: false)aspectRatio: String (default: “16/9”, accepts “width/height” format)responsive: Boolean (default: true)className: Custom CSS classes
Examples:
<!-- Basic video --><BunnyVideo videoId="abc123" libraryId="456789" />
<!-- With custom settings --><BunnyVideo videoId="abc123" libraryId="456789" title="Welcome Video" aspectRatio="4/3" autoplay muted/>BunnyPlaylist Component
Section titled “BunnyPlaylist Component”Required Props:
libraryId: Bunny Stream library IDvideos: Array of playlist items
Optional Props:
heading: String for playlist headinginitialIndex: Number (default: 0)autoplay: Boolean (default: false)muted: Boolean (default: false, but true if autoplay is true)loop: Boolean (default: false)aspectRatio: String (default: “16/9”)className: Custom CSS classes
Playlist Item Format:
{ id: string; // Required: Video GUID title?: string; // Optional: Display title description?: string; // Optional: Description text token?: string; // Optional: Access token}🎨 Styling & Features
Section titled “🎨 Styling & Features”Player Features Comparison
Section titled “Player Features Comparison”| Feature | Single Player | Playlist Player |
|---|---|---|
| Video Count | 1 video | Multiple videos |
| Controls | Standard video controls | Video list + standard controls |
| Navigation | Basic seek bar | Playlist navigation + seek bar |
| Use Case | Individual content | Multi-part series |
| UI Layout | Single video player | Video + compact scrolling list |
Enhanced Playlist UI
Section titled “Enhanced Playlist UI”Our playlist component includes:
- Compact scrolling interface - Fixed height list for space efficiency
- Smooth auto-scroll - Selected videos automatically scroll into view
- Custom styled scrollbar - Matches site theme with teal accents
- Enhanced hover effects - Interactive animations and visual feedback
- Responsive design - Adapts to different screen sizes
- Active state highlighting - Clear indication of current video
Styling Options
Section titled “Styling Options”<!-- With custom CSS classes --><BunnyVideo videoId="abc123" libraryId="456789" className="featured-video shadow-lg rounded-xl"/>Aspect Ratios
Section titled “Aspect Ratios”<BunnyVideo videoId="abc123" libraryId="456789" aspectRatio="16/9" {/* Standard widescreen */}/>
<BunnyVideo videoId="abc123" libraryId="456789" aspectRatio="4/3" {/* Standard TV */}/>
<BunnyVideo videoId="abc123" libraryId="456789" aspectRatio="1/1" {/* Square */}/>🔐 Role-Based Access Control
Section titled “🔐 Role-Based Access Control”Videos automatically inherit access control from their containing page:
- Guest: Public-facing videos (welcome, introductory content)
- Member: Basic training and informational videos
- CoreTeam: Advanced sales techniques, strategy videos
- Admin: System training, administrative content
Access Level Examples
Section titled “Access Level Examples”<!-- Public welcome video - accessible to everyone -->---title: "Welcome to Our Platform"roles: ["Guest"]---
<BunnyVideo videoId="welcome-video-guid" libraryId="124653" title="Welcome Video"/>
<!-- Core team training - restricted access -->---title: "Advanced Sales Techniques"roles: ["CoreTeam", "Admin"]---
<BunnyVideo videoId="advanced-training-guid" libraryId="124653" title="Advanced Training"/>📱 Responsive Design
Section titled “📱 Responsive Design”- Videos automatically adapt to container width
- Maintain aspect ratio (16:9 by default)
- Work on mobile and desktop devices
- Support custom aspect ratios
- Touch-friendly playlist navigation
🚀 Performance & Best Practices
Section titled “🚀 Performance & Best Practices”Performance Considerations
Section titled “Performance Considerations”- Lazy Loading: Videos load only when scrolled into view (automatic)
- Autoplay: Use sparingly to improve page load performance
- Responsive Design: Automatic adaptation to screen sizes
Content Best Practices
Section titled “Content Best Practices”- Plan Content Structure: Map out where videos fit in your content hierarchy
- Use Appropriate Access Levels: Match video sensitivity to role permissions
- Provide Context: Always include text explanations alongside videos
- Test Thoroughly: Verify videos work across devices and user roles
- Keep URLs Current: Verify video IDs periodically as content evolves
🔧 Technical Configuration
Section titled “🔧 Technical Configuration”Current Setup
Section titled “Current Setup”- Library ID: 124653
- Source: Bunny Stream
- Features: Responsive design, click navigation, smooth scrolling
- Playlist UI: Compact scrolling list with custom scrollbar
- Component Architecture: Astro-based with role-based access control
URL Formats
Section titled “URL Formats”Iframe Embed URL:
https://iframe.mediadelivery.net/embed/{libraryId}/{videoId}?autoplay=false&muted=trueBunny Stream Dashboard:
- Library: https://dash.bunny.net/stream/{libraryId}/library
- Video Details: https://dash.bunny.net/stream/{libraryId}/library/videos/{videoId}
🛠 Troubleshooting
Section titled “🛠 Troubleshooting”Common Issues
Section titled “Common Issues”- Video Not Loading: Check your Video Library ID and Video ID
- Access Denied: Verify the page’s role permissions match intended audience
- Poor Quality: Ensure your Bunny Stream videos are properly encoded
- Slow Loading: Consider network conditions and file sizes
Error Handling
Section titled “Error Handling”The components provide inline error messages when:
- Required videoId or libraryId is missing
- Playlist items are missing required IDs
- Invalid configuration is detected
Getting Help
Section titled “Getting Help”- Video IDs: Check your Bunny Stream dashboard
- Access Problems: Test with different user roles
- Component Errors: Check browser console for specific error messages
- Performance: Use browser dev tools to analyze video loading
📚 Quick Reference
Section titled “📚 Quick Reference”Component Syntax
Section titled “Component Syntax”<BunnyVideo videoId="GUID" libraryId="LIBRARY_ID" [options] /><BunnyPlaylist libraryId="LIBRARY_ID" videos={[{id: "GUID", title: "Title"}]} [options] />Required Props
Section titled “Required Props”videoId: Bunny Stream video GUIDlibraryId: Bunny Stream library ID
Most Common Optional Props
Section titled “Most Common Optional Props”title: Video titleaspectRatio: “16/9”, “4/3”, “1/1”autoplay: true/falsemuted: true/falsevideos: Array for playlistsheading: Playlist title
Note: Access to these videos is controlled by the page’s role permissions. Users must have appropriate access rights to view the video content.