1
0
mirror of https://git.sr.ht/~cadence/cloudtube synced 2024-09-20 03:07:28 +00:00
cloudtube/api/captions.js

28 lines
869 B
JavaScript
Raw Normal View History

2021-05-11 09:27:57 +00:00
/** @type {import("node-fetch").default} */
// @ts-ignore
2021-04-04 13:24:55 +00:00
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)
2021-04-04 13:24:55 +00:00
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
}
})
})
}
}
]