This commit is contained in:
charles 2025-06-14 17:56:10 +07:00 committed by GitHub
commit 204b05b18d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 10 additions and 4 deletions

View File

@ -7,6 +7,7 @@ export const services = {
bilibili: { bilibili: {
patterns: [ patterns: [
"video/:comId", "video/:comId",
"video/:comId?p=:episode",
"_shortLink/:comShortLink", "_shortLink/:comShortLink",
"_tv/:lang/video/:tvId", "_tv/:lang/video/:tvId",
"_tv/video/:tvId" "_tv/video/:tvId"

View File

@ -17,8 +17,8 @@ function extractBestQuality(dashData) {
return [ bestVideo, bestAudio ]; return [ bestVideo, bestAudio ];
} }
async function com_download(id) { async function com_download(id, episode = 1) {
let html = await fetch(`https://bilibili.com/video/${id}`, { const html = await fetch(`https://bilibili.com/video/${id}?p=${episode}`, {
headers: { headers: {
"user-agent": genericUserAgent "user-agent": genericUserAgent
} }
@ -87,14 +87,14 @@ async function tv_download(id) {
}; };
} }
export default async function({ comId, tvId, comShortLink }) { export default async function ({ comId, tvId, comShortLink, episode }) {
if (comShortLink) { if (comShortLink) {
const patternMatch = await resolveRedirectingURL(`https://b23.tv/${comShortLink}`); const patternMatch = await resolveRedirectingURL(`https://b23.tv/${comShortLink}`);
comId = patternMatch?.comId; comId = patternMatch?.comId;
} }
if (comId) { if (comId) {
return com_download(comId); return com_download(comId, episode);
} else if (tvId) { } else if (tvId) {
return tv_download(tvId); return tv_download(tvId);
} }

View File

@ -159,6 +159,11 @@ function cleanURL(url) {
limitQuery('xsec_token'); limitQuery('xsec_token');
} }
break; break;
case "bilibili":
if (url.searchParams.get('p')) {
limitQuery('p');
}
break;
} }
if (stripQuery) { if (stripQuery) {