mirror of
				https://git.sr.ht/~cadence/cloudtube
				synced 2025-11-03 21:15:36 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			28 lines
		
	
	
		
			869 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			869 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/** @type {import("node-fetch").default} */
 | 
						|
// @ts-ignore
 | 
						|
const fetch = require("node-fetch")
 | 
						|
const {getUser} = require("../utils/getuser")
 | 
						|
const constants = require("../utils/constants.js")
 | 
						|
 | 
						|
module.exports = [
 | 
						|
	{
 | 
						|
		route: `/api/v1/captions/(${constants.regex.video_id})`, methods: ["GET"], code: async ({req, fill, url}) => {
 | 
						|
			const instanceOrigin = getUser(req).getSettingsOrDefaults().instance
 | 
						|
			const fetchURL = new URL(`${url.pathname}${url.search}`, instanceOrigin)
 | 
						|
			return fetch(fetchURL.toString()).then(res => {
 | 
						|
				return res.text().then(text => {
 | 
						|
					if (res.status === 200) {
 | 
						|
						// Remove the position annotations that youtube unhelpfully provides
 | 
						|
						text = text.replace(/(--> \S+).*/g, "$1")
 | 
						|
					}
 | 
						|
					return {
 | 
						|
						statusCode: res.status,
 | 
						|
						contentType: res.headers.get("content-type"),
 | 
						|
						content: text
 | 
						|
					}
 | 
						|
				})
 | 
						|
			})
 | 
						|
		}
 | 
						|
	}
 | 
						|
]
 |