honoring formats and http headers
This commit is contained in:
@@ -29,7 +29,7 @@ App.player = App.player || {};
|
||||
return host;
|
||||
}
|
||||
|
||||
App.player.open = async function(url) {
|
||||
App.player.open = async function(source) {
|
||||
const modal = document.getElementById('video-modal');
|
||||
const video = document.getElementById('player');
|
||||
if (!modal || !video) return;
|
||||
@@ -41,15 +41,30 @@ App.player = App.player || {};
|
||||
}
|
||||
|
||||
// Normalize stream URL + optional referer forwarding.
|
||||
let refererParam = '';
|
||||
try {
|
||||
const origin = new URL(url).origin;
|
||||
refererParam = `&referer=${encodeURIComponent(origin + '/')}`;
|
||||
} catch (err) {
|
||||
refererParam = '';
|
||||
let resolved = { url: '', referer: '' };
|
||||
if (App.videos && typeof App.videos.resolveStreamSource === 'function') {
|
||||
resolved = App.videos.resolveStreamSource(source);
|
||||
} else if (typeof source === 'string') {
|
||||
resolved.url = source;
|
||||
} else if (source && typeof source === 'object') {
|
||||
resolved.url = source.url || '';
|
||||
}
|
||||
const streamUrl = `/api/stream?url=${encodeURIComponent(url)}${refererParam}`;
|
||||
let isHls = /\.m3u8($|\?)/i.test(url);
|
||||
if (!resolved.referer && resolved.url) {
|
||||
try {
|
||||
resolved.referer = `${new URL(resolved.url).origin}/`;
|
||||
} catch (err) {
|
||||
resolved.referer = '';
|
||||
}
|
||||
}
|
||||
if (!resolved.url) {
|
||||
if (App.ui && App.ui.showError) {
|
||||
App.ui.showError('Unable to play this stream.');
|
||||
}
|
||||
return;
|
||||
}
|
||||
const refererParam = resolved.referer ? `&referer=${encodeURIComponent(resolved.referer)}` : '';
|
||||
const streamUrl = `/api/stream?url=${encodeURIComponent(resolved.url)}${refererParam}`;
|
||||
let isHls = /\.m3u8($|\?)/i.test(resolved.url);
|
||||
|
||||
// Cleanup existing player instance to prevent aborted bindings.
|
||||
if (state.hlsPlayer) {
|
||||
|
||||
Reference in New Issue
Block a user