(() => { const S = window.__INITIAL_STATE__; let list = []; // 1) 番剧/影视播放页 (bilibili.com/bangumi/play/...) if (S?.epList?.length) { list = S.epList.map(e => ({ title: e.longTitle || e.title || '', url: e.shareUrl || `https://www.bilibili.com/bangumi/play/ep${e.epId}` })); } // 2) 普通视频页 else if (S?.videoData) { const vd = S.videoData, season = vd.ugc_season; if (season?.sections?.some(s => s.episodes?.length)) { // 合集 season.sections.forEach(s => s.episodes.forEach(ep => list.push({ title: ep.title || ep.arc?.title || '', url: `https://www.bilibili.com/video/${ep.bvid}?p=${ep.page?.page || 1}` }))); } else if (vd.pages?.length) { // 分P vd.pages.forEach(p => list.push({ title: p.part, url: `https://www.bilibili.com/video/${vd.bvid}?p=${p.page}` })); } else { list.push({ title: vd.title, url: location.href.split('?')[0] }); } } if (!list.length) return console.warn('未识别到播放列表(不是B站播放页?)'); console.log(`共 ${list.length} 条`); console.table(list); console.log(list.map(x => x.url).join('\n')); // 纯链接 return list; // 也可拿返回值 })();