1
0
mirror of https://git.sr.ht/~cadence/cloudtube synced 2024-09-19 18:57:30 +00:00
cloudtube/api/captions.js
2021-04-05 01:25:58 +12:00

26 lines
811 B
JavaScript

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
}
})
})
}
}
]