Merge pull request #31 from nikoyoke1/master

🐞 fix: 油管解析成功后视频时长显示错误
This commit is contained in:
Zhiyu 2024-10-17 21:16:03 +08:00 committed by GitHub
commit d20309ba14
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 8 deletions

View File

@ -1956,21 +1956,22 @@ export class tools extends plugin {
await checkAndRemoveFile(path + "/temp.mp4")
await checkAndRemoveFile(path + "/Thumbnail.png")
await ytDlpGetThumbnail(path, url, isOversea, this.myProxy)
const Duration = await ytDlpGetDuration(url, isOversea, this.myProxy).toString().replace(/\n/g, '')
// logger.info('时长------',Duration)
const title = await ytDlpGetTilt(url, isOversea, this.myProxy).toString().replace(/\n/g, '');
// logger.info('标题------',title)
function convertToSeconds(timeStr) {
const [minutes, seconds] = timeStr.split(':').map(Number); // 拆分并转换为数字
if (!seconds) return timeStr;
return minutes * 60 + seconds; // 分钟转化为秒并加上秒数
}
if(await convertToSeconds(Duration) > this.youtubeDuration){
const Duration = convertToSeconds(await ytDlpGetDuration(url, isOversea, this.myProxy).toString().replace(/\n/g, ''))
// logger.info('时长------',Duration)
if(Duration > this.youtubeDuration){
e.reply([
segment.image(`${ path }/thumbnail.png`),
`${this.identifyPrefix}识别:油管,视频下载中请耐心等待 \n视频标题:${title}${DIVIDING_LINE.replace('{}', '限制说明')}\n视频时长:${Duration}分钟\n大于管理员限定时长:${(this.youtubeDuration / 60).toFixed(2).replace(/\.00$/, '')} 分钟\n将截取限定时间部分`
`${this.identifyPrefix}识别:油管,视频下载中请耐心等待 \n视频标题:${title}${DIVIDING_LINE.replace('{}', '限制说明')}\n视频时长:${(Duration / 60).toFixed(2).replace(/\.00$/, '')} 分钟\n大于管理员限定时长:${(this.youtubeDuration / 60).toFixed(2).replace(/\.00$/, '')} 分钟\n将截取限定时间部分`
]);
} else {
e.reply([segment.image(`${ path }/thumbnail.png`),`${ this.identifyPrefix }识别:油管,视频下载中请耐心等待 \n视频标题:${ title }\n视频时长:${Duration} 分钟`]);
e.reply([segment.image(`${ path }/thumbnail.png`),`${ this.identifyPrefix }识别:油管,视频下载中请耐心等待 \n视频标题:${ title }\n视频时长:${(Duration / 60).toFixed(2).replace(/\.00$/, '')} 分钟`]);
}
await ytDlpHelper(path, url, isOversea, this.myProxy, true, graphics, timeRange);
this.sendVideoToUpload(e, `${ path }/temp.mp4`);

View File

@ -19,7 +19,7 @@ function constructProxyParam(isOversea, proxy) {
* @returns string
*/
export function ytDlpGetDuration(url, isOversea, proxy) {
return execSync(`yt-dlp --get-duration ${constructProxyParam(isOversea, proxy)} ${url}`);
return execSync(`yt-dlp --get-duration --skip-download ${constructProxyParam(isOversea, proxy)} ${url}`);
}
/**
@ -30,7 +30,7 @@ export function ytDlpGetDuration(url, isOversea, proxy) {
* @returns string
*/
export function ytDlpGetTilt(url, isOversea, proxy) {
return execSync(`yt-dlp --get-title ${constructProxyParam(isOversea, proxy)} ${url} --encoding utf8`);
return execSync(`yt-dlp --get-title --skip-download ${constructProxyParam(isOversea, proxy)} ${url} --encoding utf8`);
}
/**