修复up主视频下载,不下载图文视频的bug

增加图文视频下载配置(是否合成视频,是否单独下载图片,单独下载音频)
This commit is contained in:
jianzhichu
2025-11-24 22:47:06 +08:00
parent 609649057f
commit 2db61f4958
12 changed files with 380 additions and 92 deletions
+36 -18
View File
@@ -4,6 +4,7 @@ using dy.net.dto;
using dy.net.model;
using dy.net.service;
using dy.net.utils;
using Newtonsoft.Json;
using Quartz;
using Quartz.Util;
using Serilog;
@@ -133,6 +134,10 @@ namespace dy.net.job
return;
}
//将配置项打印日志
Log.Debug($"最新:{JsonConvert.SerializeObject(config)}");
// 2. 从配置中获取每页请求数量
if (config.BatchCount > 0)
count = config.BatchCount.ToString();
@@ -356,9 +361,12 @@ namespace dy.net.job
// 如果配置了下载图片视频,则处理图片集并合成视频
if (_downImageVideo)
{
var mergevideo = await ProcessImageSetAndMergeToVideo(cookie, item, data, config);
if (mergevideo != null)
videos.Add(mergevideo);
if(config.DownImage||config.DownMp3||config.DownImage)
{
var mergevideo = await ProcessImageSetAndMergeToVideo(cookie, item, data, config);
if (mergevideo != null)
videos.Add(mergevideo);
}
}
}
return videos;
@@ -404,9 +412,13 @@ namespace dy.net.job
// 下载视频
if (!await _douyinService.DownloadAsync(videoUrl, savePath, cookie.Cookies))
{
Log.Error($"{JobType}-视频[{TikTokFileNameHelper.SanitizePath(item.Desc)}]下载失败");
Log.Error($"{JobType}-{item?.Author?.Nickname??""}-视频[{TikTokFileNameHelper.SanitizePath(item.Desc)}]下载失败");
return null;
}
else
{
Log.Debug($"{JobType}-{item?.Author?.Nickname ?? ""}-视频[{TikTokFileNameHelper.SanitizePath(item.Desc)}]下载完成");
}
// 下载视频封面
await DownVideoCover(item, saveFolder, cookie, config);
@@ -455,7 +467,7 @@ namespace dy.net.job
var imageService = _serviceProvider.GetService<ImageMergeToVideoService>();
if (imageService == null)
{
Log.Error($"{JobType} -图片视频同步-无法创建 ImageMergeToVideoService。");
Log.Error($"{JobType} -图片视频同步-无法实例化 ImageMergeToVideoService。");
return null;
}
@@ -484,29 +496,35 @@ namespace dy.net.job
};
// 执行图片合成视频操作
var mergeResult = await imageService.MergeToVideo(AppContext.BaseDirectory, reqParams, savePath, fileNamefolder);
var mergeResult = await imageService.MergeToVideo(AppContext.BaseDirectory, reqParams, savePath, fileNamefolder,config.DownImageVideo,config.DownImage,config.DownMp3);
if (!mergeResult)
{
Log.Error($"{JobType}-图片视频同步-视频[{TikTokFileNameHelper.SanitizePath(item.Desc)}]合成失败");
return null;
}
// 检查合成后的视频文件是否有效
if (!File.Exists(savePath) || new FileInfo(savePath).Length <= 0)
if (config.DownImageVideo)
{
Log.Error($"{JobType}-图片视频同步-视频[{TikTokFileNameHelper.SanitizePath(item.Desc)}]合成失败");
// 清理无效的文件和文件夹
if (Directory.Exists(fileNamefolder))
// 检查合成后的视频文件是否有效
if (!File.Exists(savePath) || new FileInfo(savePath).Length <= 0)
{
File.Delete(savePath);
Directory.Delete(fileNamefolder, true);
Log.Error($"{JobType}-图片视频同步-已删除合成失败的视频文件和目录");
Log.Error($"{JobType}-图片视频同步-视频[{TikTokFileNameHelper.SanitizePath(item.Desc)}]合成失败");
// 清理无效的文件和文件夹
if (Directory.Exists(fileNamefolder))
{
File.Delete(savePath);
Directory.Delete(fileNamefolder, true);
Log.Error($"{JobType}-图片视频同步-已删除合成失败的视频文件和目录");
}
return null;
}
return null;
}
else
{
}
// 下载视频封面(使用第一张图片作为封面)
await DownVideoCover(imageUrls.FirstOrDefault(), fileNamefolder, cookie, item, config);
// 下载视频封面(使用第一张图片作为封面)
await DownVideoCover(imageUrls.FirstOrDefault(), fileNamefolder, cookie, item, config);
// 下载作者头像
var (avatarSavePath, avatarUrl) = await DownAuthorAvatar(cookie, item);
// 生成NFO文件
@@ -690,7 +708,7 @@ namespace dy.net.job
if (!string.IsNullOrWhiteSpace(downImageVideoConfig))
{
downImageVideoConfig = downImageVideoConfig.ToLower();
_downImageVideo = config.DownImageVideo && (downImageVideoConfig == "1" || downImageVideoConfig == "y" || downImageVideoConfig == "t" || downImageVideoConfig == "true");
_downImageVideo = config.DownImageVideo && downImageVideoConfig == "1";
}
}