您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
B站BV号与AV号互转脚本库
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.gf.qytechs.cn/scripts/398808/785053/BV%E5%8F%B7%E2%87%86AV%E5%8F%B7.js
// @name BV号⇆AV号 // @description B站BV号与AV号互转脚本库 // @language zh-CN const table = [...'fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF']; const s = [11, 10, 3, 8, 4, 6]; const xor = 177451812; const add = 8728348608; const bv2av = bv=>{ let str = ''; if (bv.length === 12) { str = bv; } else if (bv.length === 10) { str = `BV${bv}`; // 根据官方 API,BV 号开头的 BV1 其实可以省略 // 不过单独省略个 B 又不行( } else if (bv.length === 9) { str = `BV1${bv}`; } else { return '¿你在想桃子?'; }; if (!str.match(/[Bb][Vv][fZodR9XQDSUm21yCkr6zBqiveYah8bt4xsWpHnJE7jL5VG3guMTKNPAwcF]{10}/gu)) { return '¿你在想桃子?'; }; let result = 0; let i = 0; while (i < 6) { result += table.indexOf(str[s[i]]) * 58 ** i; i += 1; }; return `av${result - add ^ xor}`; }; const av2bv = av=>{ let num = NaN; if (Object.prototype.toString.call(av) === '[object Number]') { num = av; } else if (Object.prototype.toString.call(av) === '[object String]') { num = parseInt(av.replace(/[^0-9]/gu, '')); }; if (isNaN(num) || num <= 0) { // 网页版直接输出这个结果了 return '¿你在想桃子?'; }; num = (num ^ xor) + add; let result = [...'bv1 4 1 7 ']; let i = 0; while (i < 6) { result[s[i]] = table[Math.floor(num / 58 ** i) % 58]; i += 1; }; return result.join(''); };
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址