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:
@@ -54,12 +54,8 @@
|
||||
"enabled": true
|
||||
},
|
||||
"tumblr": {
|
||||
"patterns": ["post/:id"],
|
||||
"enabled": false
|
||||
},
|
||||
"facebook": {
|
||||
"patterns": [":pageid/:type/:postid"],
|
||||
"enabled": false
|
||||
"patterns": ["post/:id", "blog/view/:user/:id"],
|
||||
"enabled": true
|
||||
},
|
||||
"instagram": {
|
||||
"patterns": [":type/:id"],
|
||||
|
||||
24
src/modules/services/tumblr.js
Normal file
24
src/modules/services/tumblr.js
Normal 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') };
|
||||
}
|
||||
}
|
||||
@@ -54,7 +54,7 @@ export default async function (obj) {
|
||||
return { type: "render", urls: [video[0]["url"], audio[0]["url"]], time: video[0]["approxDurationMs"],
|
||||
filename: `youtube_${obj.id}_${video[0]["width"]}x${video[0]["height"]}.${video[0]["container"]}` };
|
||||
} else if (audio.length > 0) {
|
||||
return { type: "render", isAudioOnly: true, urls: [audio[0]["url"]], filename: `youtube_${obj.id}_${audio[0]["audioBitrate"]}kbps.opus` };
|
||||
return { type: "bridge", isAudioOnly: true, urls: audio[0]["url"], filename: `youtube_${obj.id}_${audio[0]["audioBitrate"]}kbps.${audio[0]["container"] == "webm" ? "opus" : "m4a"}` };
|
||||
} else {
|
||||
return { error: loc(obj.lang, 'ErrorBadFetch') };
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user