diff --git a/b0esche_cloud/lib/pages/file_explorer.dart b/b0esche_cloud/lib/pages/file_explorer.dart index 590bc16..458ab13 100644 --- a/b0esche_cloud/lib/pages/file_explorer.dart +++ b/b0esche_cloud/lib/pages/file_explorer.dart @@ -901,15 +901,26 @@ class _FileExplorerState extends State { if (file.type == FileType.folder) { context.read().add(NavigateToFolder(file.path)); } else if (isVideo) { - // Open video files in video viewer - final videoUrl = await getIt().getDownloadUrl( - widget.orgId, - file.path, - ); - _showVideoViewer( - file.name, - '${getIt().baseUrl}$videoUrl', - ); + // Open video files in video viewer - use viewer session for authenticated URL + if (file.id == null || file.id!.isEmpty) { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar(content: Text('Error: File ID is missing')), + ); + return; + } + try { + final session = await getIt().requestViewerSession( + widget.orgId, + file.id!, + ); + _showVideoViewer(file.name, session.viewUrl.toString()); + } catch (e) { + if (mounted) { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar(content: Text('Error loading video: $e')), + ); + } + } } else { if (file.id == null || file.id!.isEmpty) { ScaffoldMessenger.of(context).showSnackBar(