mirror of
https://github.com/imputnet/cobalt.git
synced 2025-06-28 01:18:27 +00:00
api: return covers from soundcloud and youtube
& refactor createProxyTunnels() in stream/manage a little
This commit is contained in:
parent
4ff4766bda
commit
164ea8aeb9
@ -34,6 +34,8 @@ export default function({
|
|||||||
requestIP,
|
requestIP,
|
||||||
originalRequest: r.originalRequest,
|
originalRequest: r.originalRequest,
|
||||||
subtitles: r.subtitles,
|
subtitles: r.subtitles,
|
||||||
|
cover: r.cover,
|
||||||
|
cropCover: r.cropCover,
|
||||||
},
|
},
|
||||||
params = {};
|
params = {};
|
||||||
|
|
||||||
|
@ -67,6 +67,8 @@ export function createResponse(responseType, responseData) {
|
|||||||
copy: responseData?.audioCopy,
|
copy: responseData?.audioCopy,
|
||||||
format: responseData?.audioFormat,
|
format: responseData?.audioFormat,
|
||||||
bitrate: responseData?.audioBitrate,
|
bitrate: responseData?.audioBitrate,
|
||||||
|
cover: !!responseData?.cover || undefined,
|
||||||
|
cropCover: !!responseData?.cropCover || undefined,
|
||||||
},
|
},
|
||||||
|
|
||||||
isHLS: responseData?.isHLS,
|
isHLS: responseData?.isHLS,
|
||||||
|
@ -146,8 +146,14 @@ export default async function(obj) {
|
|||||||
copyright: json.license?.trim(),
|
copyright: json.license?.trim(),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let cover;
|
||||||
|
if (json.artwork_url) {
|
||||||
|
cover = json.artwork_url.replace(/-large/, "-t1080x1080");
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
urls: file.toString(),
|
urls: file.toString(),
|
||||||
|
cover,
|
||||||
filenameAttributes: {
|
filenameAttributes: {
|
||||||
service: "soundcloud",
|
service: "soundcloud",
|
||||||
id: json.id,
|
id: json.id,
|
||||||
|
@ -532,6 +532,15 @@ export default async function (o) {
|
|||||||
urls = audio.decipher(innertube.session.player);
|
urls = audio.decipher(innertube.session.player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let cover = `https://i.ytimg.com/vi/${o.id}/maxresdefault.jpg`;
|
||||||
|
const testMaxCover = await fetch(cover, { dispatcher: o.dispatcher })
|
||||||
|
.then(r => r.status === 200)
|
||||||
|
.catch(() => {});
|
||||||
|
|
||||||
|
if (!testMaxCover) {
|
||||||
|
cover = basicInfo.thumbnail?.[0]?.url;
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
type: "audio",
|
type: "audio",
|
||||||
isAudioOnly: true,
|
isAudioOnly: true,
|
||||||
@ -540,7 +549,10 @@ export default async function (o) {
|
|||||||
fileMetadata,
|
fileMetadata,
|
||||||
bestAudio,
|
bestAudio,
|
||||||
isHLS: useHLS,
|
isHLS: useHLS,
|
||||||
originalRequest
|
originalRequest,
|
||||||
|
|
||||||
|
cover,
|
||||||
|
cropCover: basicInfo.author.endsWith("- Topic"),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -82,17 +82,19 @@ export function createProxyTunnels(info) {
|
|||||||
urls = [urls];
|
urls = [urls];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const tunnelTemplate = {
|
||||||
|
type: "proxy",
|
||||||
|
headers: info?.headers,
|
||||||
|
requestIP: info?.requestIP,
|
||||||
|
}
|
||||||
|
|
||||||
for (const url of urls) {
|
for (const url of urls) {
|
||||||
proxyTunnels.push(
|
proxyTunnels.push(
|
||||||
createStream({
|
createStream({
|
||||||
|
...tunnelTemplate,
|
||||||
url,
|
url,
|
||||||
type: "proxy",
|
|
||||||
|
|
||||||
service: info?.service,
|
service: info?.service,
|
||||||
headers: info?.headers,
|
originalRequest: info?.originalRequest,
|
||||||
requestIP: info?.requestIP,
|
|
||||||
|
|
||||||
originalRequest: info?.originalRequest
|
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -100,11 +102,19 @@ export function createProxyTunnels(info) {
|
|||||||
if (info.subtitles) {
|
if (info.subtitles) {
|
||||||
proxyTunnels.push(
|
proxyTunnels.push(
|
||||||
createStream({
|
createStream({
|
||||||
|
...tunnelTemplate,
|
||||||
url: info.subtitles,
|
url: info.subtitles,
|
||||||
type: "proxy",
|
|
||||||
service: `${info?.service}-subtitles`,
|
service: `${info?.service}-subtitles`,
|
||||||
headers: info?.headers,
|
})
|
||||||
requestIP: info?.requestIP
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (info.cover) {
|
||||||
|
proxyTunnels.push(
|
||||||
|
createStream({
|
||||||
|
...tunnelTemplate,
|
||||||
|
url: info.cover,
|
||||||
|
service: `${info?.service}-cover`,
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user