added support for tumblr

- support for tumblr is back! (i tried all types of links in clear sight and everything seems to work, lmk if something doesn't)
- increased stream lifespan up to 1 hour
- made youtube audios download without additional conversion, speed should be a bit better but not by much cause youtube limits the audio download speed :(
This commit is contained in:
wukko
2022-08-01 23:53:44 +06:00
parent 6afa8448f8
commit 20798685c2
9 changed files with 49 additions and 12 deletions

View File

@@ -0,0 +1,24 @@
import got from "got";
import loc from "../../localization/manager.js";
import { genericUserAgent } from "../config.js";
export default async function(obj) {
try {
let user = obj.user ? obj.user : obj.url.split('.')[0].replace('https://', '');
if (user.length <= 32) {
let html = await got.get(`https://${user}.tumblr.com/post/${obj.id}`, { headers: { "user-agent": genericUserAgent } });
html.on('error', (err) => {
return { error: loc(obj.lang, 'ErrorCouldntFetch', 'tumblr') };
});
html = html.body
if (html.includes('<!-- GOOGLE CAROUSEL --><script type="application/ld+json">')) {
let json = JSON.parse(html.split('<!-- GOOGLE CAROUSEL --><script type="application/ld+json">')[1].split('</script>')[0])
if (json["video"] && json["video"]["contentUrl"]) {
return json["video"]["contentUrl"]
} else return { error: loc(obj.lang, 'ErrorEmptyDownload') }
} else return { error: loc(obj.lang, 'ErrorBrokenLink', 'tumblr') }
} else return { error: loc(obj.lang, 'ErrorBrokenLink', 'tumblr') }
} catch (e) {
return { error: loc(obj.lang, 'ErrorBadFetch') };
}
}