UNPKG

spectatr-player-sdk

Version:

A custom video player built with Stencil with Shaka Player integration

89 lines (87 loc) 4.2 kB
async function fetchVideoSrc(component, isSetSrc = false) { try { if (!component.clientId) return; const response = await fetch(`${component.baseUrl}/sp-onboarding/video-streaming/${component.clientId}?userId=${component.userId}&${component.videoId && `videoId=${component.videoId}`}`, { headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'x-api-key': 'bak8zb8uwimo4pjdmyu3-basluiwthvn3u7qznfgy-2thtwws1764g3706xsoo', }, }); const data = await response.json(); if (data.success) { component.quizzes = data.payload.quiz ?? { quizQuestions: [] }; component.polls = data.payload.polls ?? []; component.statistics = data.payload.statistics; component.totalLikes = data.payload.likeCount; component.isLiked = data.payload.userLiked; component.isDisliked = data.payload.userReacted ? !data.payload.userLiked : false; component.totalViews = data.payload.views; component.tempVideoId = data.payload.videoId; component.timelineEvents = data.payload.videoEventMarkers ?? []; if (isSetSrc) { component.src = data.payload.outputLink; component.scheduleTime = data.payload.scheduledStart; // component.src = 'https://live-hls-web-aje.getaj.net/AJE/index.m3u8'; component.videoTitle = data.payload.title; component.videoDescription = data.payload.description; component.token = data.payload.token ?? ''; component.poster = data.payload.thumbnailPath; component.createdAt = data.payload.createdAt; component.showFullDescription = (component.videoDescription ?? '').length <= 200; } } } catch (error) { console.error('Error loading video:', error); } } async function addReaction(component, reaction) { const response = await fetch(`${component.baseUrl}/sp-onboarding/reactions`, { body: JSON.stringify({ userId: component.userId, videoId: component.videoId, reaction: reaction, }), method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'x-api-key': 'bak8zb8uwimo4pjdmyu3-basluiwthvn3u7qznfgy-2thtwws1764g3706xsoo', }, }); if (!response.ok) { const errorData = await response.json().catch(() => ({})); throw new Error(`Request failed with status ${response.status}: ${JSON.stringify(errorData)}`); } return response.json(); } async function fetchSuggestions(component, page = 0, limit = 10) { try { const response = await fetch(`${component.baseUrl}/sp-onboarding/video-onboard/suggestions/${component.clientId}?limit=${limit}&page=${page}`, { headers: { 'x-api-key': 'bak8zb8uwimo4pjdmyu3-basluiwthvn3u7qznfgy-2thtwws1764g3706xsoo' }, }); const data = await response.json(); if (!!data) { return { suggestions: data.payload.suggestions, totalCount: data.payload.totalCount }; } } catch (error) { return { suggestions: [], totalCount: 0 }; } } async function fetchAllVideos(clientId, baseUrl = 'https://media-ingestion.antino.ca') { const response = await fetch(`${baseUrl}/sp-onboarding/video-onboard/suggestions/${clientId}/no-pagination`, { headers: { 'x-api-key': 'bak8zb8uwimo4pjdmyu3-basluiwthvn3u7qznfgy-2thtwws1764g3706xsoo' }, }); if (!response.ok) { const errorData = await response.json().catch(() => ({})); throw new Error(`Request failed with status ${response.status}: ${JSON.stringify(errorData)}`); } const data = await response.json(); return { suggestions: data.payload.suggestions, totalCount: data.payload.totalCount }; } export { addReaction as a, fetchVideoSrc as b, fetchSuggestions as c, fetchAllVideos as f }; //# sourceMappingURL=videoService-iOhrDaXh.js.map //# sourceMappingURL=videoService-iOhrDaXh.js.map