一方面苦于不知道B站视频失效了啥已久,另一方面b站收藏夹实在做得稀烂、体验不如edge自带收藏夹的一半,所以我决定把b站视频链接导出。
(实测已失效的视频也能把标题导出)
用在线编译环境鼓捣了两个小时,出现莫名其妙的bug一直没法使用api,又懒得专门下载python pycharm,所以改用js实现。因为还没正式学过前端,所以参考了大佬的博客,把他的代码修改得满足了我的需求。
以下是大佬的代码:
快速导出B站收藏单节目列表 - 鱼肉真好吃 - 博客园 (cnblogs.com)
以下是我修改后的:
function get_list () {
var result = "";
$(".fav-video-list > li >a.title").each(function(){
var title = $(this).text();
var link = "https:" + $(this).attr("href");
result += '<DT><A HREF="' + link + '" ADD_DATE="' + Date.now() + '" LAST_MODIFIED="' + Date.now() + '" ICON_URI="' + link + '" ICON="' + link + '">' + 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';
function main (){
html += get_list();
if($(".be-pager-next:visible").length == 0) {
html += '</DL><p>\n';
download('bookmarks.html', html);
return;
} else {
$(".be-pager-next").click();
setTimeout(main, 500);
}
}
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);
}
main();
在收藏页面按f12,填写上述代码,回车,链接下载完成。
可以把下载的html导入edge浏览器收藏夹。
理论上浏览器收藏夹属于Internet Explorer收藏夹格式应该都可以把该html文件导入,不过我之研究了edge,所以不能保证。