mirror of
https://github.com/Jerryplusy/rc-plugin.git
synced 2025-10-14 08:09:19 +00:00
✨ feat: 新增哔哩哔哩下载分辨率设置
- 在 config/tools.yaml 中添加哔哩哔哩下载分辨率配置项 - 在 guoba.support.js 中新增哔哩哔哩下载分辨率选择项 - 在 utils/bilibili.js 中实现分辨率标签拼接功能 - 在 apps/tools.js 中加载哔哩哔哩最高分辨率配置 - 在 utils/bbdown-util.js 中添加分辨率参数到 BBDown 命令 - 在 constants/constant.js 中定义哔哩哔哩下载分辨率列表
This commit is contained in:
parent
78db32133d
commit
7aa487b13a
@ -250,6 +250,8 @@ export class tools extends plugin {
|
|||||||
this.biliCDN = this.toolsConfig.biliCDN;
|
this.biliCDN = this.toolsConfig.biliCDN;
|
||||||
// 加载哔哩哔哩是否使用Aria2
|
// 加载哔哩哔哩是否使用Aria2
|
||||||
this.biliDownloadMethod = this.toolsConfig.biliDownloadMethod;
|
this.biliDownloadMethod = this.toolsConfig.biliDownloadMethod;
|
||||||
|
// 加载哔哩哔哩最高分辨率
|
||||||
|
this.biliResolution = this.toolsConfig.biliResolution;
|
||||||
// 加载抖音Cookie
|
// 加载抖音Cookie
|
||||||
this.douyinCookie = this.toolsConfig.douyinCookie;
|
this.douyinCookie = this.toolsConfig.douyinCookie;
|
||||||
// 加载抖音是否压缩
|
// 加载抖音是否压缩
|
||||||
@ -735,6 +737,7 @@ export class tools extends plugin {
|
|||||||
biliSessData: this.biliSessData,
|
biliSessData: this.biliSessData,
|
||||||
biliUseAria2: this.biliDownloadMethod === 1,
|
biliUseAria2: this.biliDownloadMethod === 1,
|
||||||
biliCDN: BILI_CDN_SELECT_LIST.find(item => item.value === this.biliCDN)?.sign,
|
biliCDN: BILI_CDN_SELECT_LIST.find(item => item.value === this.biliCDN)?.sign,
|
||||||
|
biliResolution: this.biliResolution,
|
||||||
});
|
});
|
||||||
// 发送视频
|
// 发送视频
|
||||||
return this.sendVideoToUpload(e, `${ tempPath }.mp4`);
|
return this.sendVideoToUpload(e, `${ tempPath }.mp4`);
|
||||||
|
@ -17,6 +17,7 @@ biliDisplaySummary: false # 是否显示哔哩哔哩的总结
|
|||||||
biliUseBBDown: false # 是否使用BBDown,默认不开启,开启后使用强劲的BBDown下载最高画质
|
biliUseBBDown: false # 是否使用BBDown,默认不开启,开启后使用强劲的BBDown下载最高画质
|
||||||
biliCDN: 0 # 哔哩哔哩 CDN,默认为0表示不使用
|
biliCDN: 0 # 哔哩哔哩 CDN,默认为0表示不使用
|
||||||
biliDownloadMethod: 0 # 哔哩哔哩的下载方式:0默认使用原生稳定的下载方式,如果你在乎内存可以使用轻量的wget和axel下载方式,如果在乎性能可以使用Aria2下载
|
biliDownloadMethod: 0 # 哔哩哔哩的下载方式:0默认使用原生稳定的下载方式,如果你在乎内存可以使用轻量的wget和axel下载方式,如果在乎性能可以使用Aria2下载
|
||||||
|
biliResolution: 1 # 哔哩哔哩的下载画质,0为原画,1为清晰画,2为流畅画(默认为0)
|
||||||
|
|
||||||
douyinCookie: '' # douyin's cookie, 格式:odin_tt=xxx;passport_fe_beating_status=xxx;sid_guard=xxx;uid_tt=xxx;uid_tt_ss=xxx;sid_tt=xxx;sessionid=xxx;sessionid_ss=xxx;sid_ucp_v1=xxx;ssid_ucp_v1=xxx;passport_assist_user=xxx;ttwid=xxx;
|
douyinCookie: '' # douyin's cookie, 格式:odin_tt=xxx;passport_fe_beating_status=xxx;sid_guard=xxx;uid_tt=xxx;uid_tt_ss=xxx;sid_tt=xxx;sessionid=xxx;sessionid_ss=xxx;sid_ucp_v1=xxx;ssid_ucp_v1=xxx;passport_assist_user=xxx;ttwid=xxx;
|
||||||
douyinCompression: true # true-压缩,false-不压缩;是否使用压缩视频格式的抖音(默认使用),使用后加速视频发送
|
douyinCompression: true # true-压缩,false-不压缩;是否使用压缩视频格式的抖音(默认使用),使用后加速视频发送
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
- {
|
- {
|
||||||
version: 1.8.1,
|
version: 1.8.2,
|
||||||
data:
|
data:
|
||||||
[
|
[
|
||||||
|
新增<span class="cmd">哔哩哔哩下载分辨率设置</span>功能,
|
||||||
新增<span class="cmd">自定义识别</span>功能,
|
新增<span class="cmd">自定义识别</span>功能,
|
||||||
修正<span class="cmd">油管分辨率降低到720P</span>功能,
|
修正<span class="cmd">油管分辨率降低到720P</span>功能,
|
||||||
新增<span class="cmd">小飞机解析 Beta</span>功能,
|
新增<span class="cmd">小飞机解析 Beta</span>功能,
|
||||||
新增<span class="cmd">BBDown更换CDN</span>功能,
|
|
||||||
支持<span class="cmd">锅巴</span>插件,方便查看和修改配置,
|
支持<span class="cmd">锅巴</span>插件,方便查看和修改配置,
|
||||||
输入<span class="cmd">#R帮助</span>获取插件帮助,
|
输入<span class="cmd">#R帮助</span>获取插件帮助,
|
||||||
输入<span class="cmd">#R更新</span>更新插件,
|
输入<span class="cmd">#R更新</span>更新插件,
|
||||||
|
@ -177,6 +177,16 @@ export const BILI_DOWNLOAD_METHOD = Object.freeze([
|
|||||||
{ label: '轻量(axel/wget)', value: 2 }
|
{ label: '轻量(axel/wget)', value: 2 }
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
export const BILI_RESOLUTION_LIST = Object.freeze([
|
||||||
|
{ label: '4K 超清', value: 0 },
|
||||||
|
{ label: '1080P 60帧', value: 1 },
|
||||||
|
{ label: '1080P 高码率', value: 2 },
|
||||||
|
{ label: '1080P 高清', value: 3 },
|
||||||
|
{ label: '720P 高清', value: 4 },
|
||||||
|
{ label: '480P 清晰', value: 5 },
|
||||||
|
{ label: '360P 流畅', value: 6 },
|
||||||
|
]);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 消息撤回时间
|
* 消息撤回时间
|
||||||
* @type {number}
|
* @type {number}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import _ from "lodash";
|
import _ from "lodash";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
import { BILI_CDN_SELECT_LIST, BILI_DOWNLOAD_METHOD } from "./constants/constant.js";
|
import { BILI_CDN_SELECT_LIST, BILI_DOWNLOAD_METHOD, BILI_RESOLUTION_LIST } from "./constants/constant.js";
|
||||||
import model from "./model/config.js";
|
import model from "./model/config.js";
|
||||||
|
|
||||||
const pluginName = `rconsole-plugin`;
|
const pluginName = `rconsole-plugin`;
|
||||||
@ -191,6 +191,16 @@ export function supportGuoba() {
|
|||||||
options: BILI_DOWNLOAD_METHOD,
|
options: BILI_DOWNLOAD_METHOD,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
field: "tools.biliResolution",
|
||||||
|
label: "bili最高分辨率",
|
||||||
|
bottomHelpMessage:
|
||||||
|
"哔哩哔哩的最高分辨率(目前仅适用于开启BBDown后),默认为1080p,可以自行根据服务器进行调整",
|
||||||
|
component: "Select",
|
||||||
|
componentProps: {
|
||||||
|
options: BILI_RESOLUTION_LIST,
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
field: "tools.douyinCookie",
|
field: "tools.douyinCookie",
|
||||||
label: "抖音的Cookie",
|
label: "抖音的Cookie",
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { exec } from 'child_process';
|
import { exec } from 'child_process';
|
||||||
|
import { getResolutionLabels } from "./bilibili.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 使用BBDown下载
|
* 使用BBDown下载
|
||||||
@ -7,7 +8,7 @@ import { exec } from 'child_process';
|
|||||||
* @param BBDownOptions BBDown选项(目前仅支持session登录、使用Aria2下载、CDN)
|
* @param BBDownOptions BBDown选项(目前仅支持session登录、使用Aria2下载、CDN)
|
||||||
*/
|
*/
|
||||||
export function startBBDown(videoUrl, downloadDir, BBDownOptions) {
|
export function startBBDown(videoUrl, downloadDir, BBDownOptions) {
|
||||||
const { biliSessData, biliUseAria2, biliCDN } = BBDownOptions;
|
const { biliSessData, biliUseAria2, biliCDN, biliResolution } = BBDownOptions;
|
||||||
|
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
// logger.info(videoUrl);
|
// logger.info(videoUrl);
|
||||||
@ -28,8 +29,10 @@ export function startBBDown(videoUrl, downloadDir, BBDownOptions) {
|
|||||||
if (!(videoUrl.includes("play\/ep") || videoUrl.includes("play\/ss"))) {
|
if (!(videoUrl.includes("play\/ep") || videoUrl.includes("play\/ss"))) {
|
||||||
pParam = pageParam ? '-p ' + pageParam + ' -M \"temp\"' : '-p 1' + ' -M \"temp\"';
|
pParam = pageParam ? '-p ' + pageParam + ' -M \"temp\"' : '-p 1' + ' -M \"temp\"';
|
||||||
}
|
}
|
||||||
|
// 构造 -q 参数 (画质优先级,用逗号分隔 例: "8K 超高清, 1080P 高码率, HDR 真彩, 杜比视界")
|
||||||
|
const qParam = `-q \"${getResolutionLabels(biliResolution)}\"`;
|
||||||
// 说明:-F 自定义名称,-c 自定义Cookie, --work-dir 设置下载目录,-M 多p下载的时候命名
|
// 说明:-F 自定义名称,-c 自定义Cookie, --work-dir 设置下载目录,-M 多p下载的时候命名
|
||||||
const command = `BBDown ${videoUrl} -e \"hevc,av1,avc\" --work-dir ${downloadDir} ${biliSessData ? '-c SESSDATA=' + biliSessData : ''} ${pParam} -F temp --skip-subtitle --skip-cover ${biliUseAria2 ? '--use-aria2c' : ''} ${biliCDN ? '--upos-host ' + biliCDN : ''}`;
|
const command = `BBDown ${videoUrl} -e \"hevc,av1,avc\" ${qParam} --work-dir ${downloadDir} ${biliSessData ? '-c SESSDATA=' + biliSessData : ''} ${pParam} -F temp --skip-subtitle --skip-cover ${biliUseAria2 ? '--use-aria2c' : ''} ${biliCDN ? '--upos-host ' + biliCDN : ''}`;
|
||||||
logger.info(command);
|
logger.info(command);
|
||||||
// logger.info(command);
|
// logger.info(command);
|
||||||
// 直接调用BBDown,因为它已经在系统路径中
|
// 直接调用BBDown,因为它已经在系统路径中
|
||||||
|
@ -5,6 +5,7 @@ import fs from "node:fs";
|
|||||||
import path from "path";
|
import path from "path";
|
||||||
import qrcode from "qrcode"
|
import qrcode from "qrcode"
|
||||||
import util from "util";
|
import util from "util";
|
||||||
|
import { BILI_RESOLUTION_LIST } from "../constants/constant.js";
|
||||||
import {
|
import {
|
||||||
BILI_BVID_TO_CID,
|
BILI_BVID_TO_CID,
|
||||||
BILI_DYNAMIC,
|
BILI_DYNAMIC,
|
||||||
@ -543,3 +544,16 @@ function replaceP2PUrl(url) {
|
|||||||
return url;
|
return url;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 拼接分辨率,例如:"720P 高清, 480P 清晰, 360P 流畅"
|
||||||
|
* @param selectedValue
|
||||||
|
* @returns {*}
|
||||||
|
*/
|
||||||
|
export function getResolutionLabels(selectedValue) {
|
||||||
|
// 过滤出 value 大于等于 selectedValue 的所有对象
|
||||||
|
const filteredResolutions = BILI_RESOLUTION_LIST.filter(resolution => resolution.value >= selectedValue);
|
||||||
|
|
||||||
|
// 将这些对象的 label 拼接成一个字符串
|
||||||
|
return filteredResolutions.map(resolution => resolution.label).join(', ');
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user