UNPKG

peertube-plugin-transposer-connector

Version:

Transposer connector is a PeerTube language tool plugin to transcribe and translate with Whisper

49 lines (42 loc) 1.72 kB
const initCaptionMetadata = (router, peertubeHelpers) => { router.get("/captions/:id", async (req, res) => { try { const videoId = req.params.id; peertubeHelpers.logger.info( `[transposer-connector] CaptionController: Starting caption fetch request for video ${videoId}` ); const webserverUrl = peertubeHelpers.config.getWebserverUrl(); peertubeHelpers.logger.info( `[transposer-connector] CaptionController: Fetching captions from PeerTube API at ${webserverUrl}/api/v1/videos/${videoId}/captions` ); const response = await fetch( `${webserverUrl}/api/v1/videos/${videoId}/captions` ); if (!response.ok) { peertubeHelpers.logger.error( `[transposer-connector] CaptionController: PeerTube API returned error status ${response.status} for video ${videoId}` ); return res .status(response.status) .json({ error: "Failed to fetch captions from PeerTube API" }); } const captions = await response.json(); const captionCount = captions.data ? captions.data.length : 0; peertubeHelpers.logger.info( `[transposer-connector] CaptionController: Successfully fetched ${captionCount} captions for video ${videoId}` ); return res.json(captions); } catch (error) { const videoId = req.params.id; peertubeHelpers.logger.error( `[transposer-connector] CaptionController: Exception during caption fetch for video ${videoId}: ${error.message}` ); return res .status(500) .json({ error: "Internal server error during caption fetch" }); } }); }; module.exports = { initCaptionMetadata, };