一方面苦于不知道B站视频失效了啥已久,另一方面b站收藏夹实在做得稀烂、体验不如edge自带收藏夹的一半,所以我决定把b站视频链接导出。
(实测已失效的视频也能把标题导出)
用在线编译环境鼓捣了两个小时,出现莫名其妙的bug一直没法使用api,又懒得专门下载python pycharm,所以改用js实现。因为还没正式学过前端,所以参考了大佬的博客,把他的代码修改得满足了我的需求。
以下是大佬的代码:
快速导出B站收藏单节目列表 - 鱼肉真好吃 - 博客园 (cnblogs.com)
以下是我修改后的:
function get_list() {
let result = "";
document.querySelectorAll(".items__item .bili-video-card").forEach(card => {
const titleElement = card.querySelector(".bili-video-card__title");
const title = titleElement ? titleElement.textContent.trim() : "";
const linkElement = card.querySelector(".bili-cover-card");
let link = linkElement ? linkElement.getAttribute("href") : "";
link = link.startsWith("http") ? link : "https:" + link;
result += `<DT><A HREF="${link}" ADD_DATE="${Date.now()}">${title}</A>\n`;
});
return result;
}
var html = '<!DOCTYPE NETSCAPE-Bookmark-file-1>\n<!-- This is an automatically generated file.\n It will be read and overwritten.\n DO NOT EDIT! -->\n<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">\n<TITLE>Bookmarks</TITLE>\n<H1>Bookmarks</H1>\n<DL><p>\n';
async function main() {
// 等待页面稳定
await new Promise(resolve => setTimeout(resolve, 500));
html += get_list();
// 获取所有下一页按钮(包括禁用的)
const nextBtns = document.querySelectorAll('.vui_button.vui_pagenation--btn.vui_pagenation--btn-side');
// 找到最后一个未被禁用的下一页按钮
let nextBtn = null;
for (let i = nextBtns.length - 1; i >= 0; i--) {
if (!nextBtns[i].disabled && nextBtns[i].textContent.trim() === "下一页") {
nextBtn = nextBtns[i];
break;
}
}
if (!nextBtn || nextBtn.textContent.trim() !== "下一页") {
html += '</DL><p>\n';
download('bookmarks.html', html);
} else {
nextBtn.click();
// 等待1秒后继续执行
setTimeout(main, 1000);
}
}
function download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
setTimeout(main, 500);
在收藏页面按f12,填写上述代码,回车,链接下载完成。
可以把下载的html导入edge浏览器收藏夹。
理论上浏览器收藏夹属于Internet Explorer收藏夹格式应该都可以把该html文件导入,不过我之研究了edge,所以不能保证。
文章介绍了一种方法,通过修改大佬的JavaScript代码,实现从B站收藏夹导出视频链接到HTML文件,以便导入Edge浏览器收藏夹。作者提到,这个方法适用于那些遇到B站视频失效问题或者对B站收藏夹功能不满意的用户。
1万+

被折叠的 条评论
为什么被折叠?



