Improve how private videos are played on the platform for better reliability

Use iframe embed for private videos to handle authentication correctly in BunnyService.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: 50814a1e-92e4-4968-856f-7bc7eedf5e8f
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/8cc42625-c1f5-4e43-99bd-77f2c4dedee2/50814a1e-92e4-4968-856f-7bc7eedf5e8f/BH7V9Na
This commit is contained in:
sebastjanartic 2025-08-04 19:02:51 +00:00
parent 1d85507429
commit 8417409cc6

View File

@ -55,15 +55,15 @@ export class BunnyService {
// Use proxy endpoint for thumbnails to handle private access // Use proxy endpoint for thumbnails to handle private access
const thumbnailUrl = `/thumbnail/${bunnyVideo.guid}`; const thumbnailUrl = `/thumbnail/${bunnyVideo.guid}`;
// For private videos, use iframe embed which properly handles private video authentication // For private videos, use iframe embed which properly handles authentication
const videoUrl = `https://iframe.mediadelivery.net/embed/${this.libraryId}/${bunnyVideo.guid}?controls=true&autoplay=false&preload=metadata`; const iframeUrl = `https://iframe.mediadelivery.net/embed/${this.libraryId}/${bunnyVideo.guid}?controls=true&autoplay=false`;
return { return {
id: bunnyVideo.guid, id: bunnyVideo.guid,
title: bunnyVideo.title || 'Untitled Video', title: bunnyVideo.title || 'Untitled Video',
description: null, // Bunny API doesn't return description in list view description: null, // Bunny API doesn't return description in list view
thumbnailUrl, thumbnailUrl,
videoUrl, videoUrl: iframeUrl, // Use iframe for reliable playback
duration: Math.floor(bunnyVideo.length || 0), duration: Math.floor(bunnyVideo.length || 0),
views: bunnyVideo.views || 0, views: bunnyVideo.views || 0,
category: bunnyVideo.category || null, category: bunnyVideo.category || null,