This repository was archived by the owner on Mar 23, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDirectory.CreateDirectory(_outSubPath.Sp
More file actions
102 lines (88 loc) · 4.25 KB
/
Directory.CreateDirectory(_outSubPath.Sp
File metadata and controls
102 lines (88 loc) · 4.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
Directory.CreateDirectory(_outSubPath.Split('/').First());
}
_outSubPath = Path.ChangeExtension(_outSubPath, $".{s.lan}.srt");
File.Move(s.path, _outSubPath, true);
}
}
}
if (myOption.SubOnly)
{
if (Directory.Exists(p.aid) && Directory.GetFiles(p.aid).Length == 0) Directory.Delete(p.aid, true);
return;
}
}
//调用解析
ParsedResult parsedResult = await ExtractTracksAsync(aidOri, p.aid, p.cid, p.epid, myOption.UseTvApi, myOption.UseIntlApi, myOption.UseAppApi, firstEncoding);
List<AudioMaterial> audioMaterial = [];
if (!p.points.Any())
{
p.points = parsedResult.ExtraPoints;
}
if (Config.DEBUG_LOG)
{
File.WriteAllText($"debug_{DateTime.Now:yyyyMMddHHmmssfff}.json", parsedResult.WebJsonString);
}
var savePath = "";
var downloadConfig = new DownloadConfig()
{
UseAria2c = myOption.UseAria2c,
Aria2cArgs = myOption.Aria2cArgs,
ForceHttp = myOption.ForceHttp,
MultiThread = myOption.MultiThread,
RelatedTask = relatedTask,
};
//此处代码简直灾难, 后续优化吧
if ((parsedResult.VideoTracks.Any() || parsedResult.AudioTracks.Any()) && !parsedResult.Clips.Any()) //dash
{
if (parsedResult.VideoTracks.Count == 0)
{
LogWarn("没有找到符合要求的视频流");
if (myOption.VideoOnly) return;
}
if (parsedResult.AudioTracks.Count == 0)
{
LogWarn("没有找到符合要求的音频流");
if (myOption.AudioOnly) return;
}
if (myOption.AudioOnly)
{
parsedResult.VideoTracks.Clear();
}
if (myOption.VideoOnly)
{
parsedResult.AudioTracks.Clear();
parsedResult.BackgroundAudioTracks.Clear();
parsedResult.RoleAudioList.Clear();
}
//排序
parsedResult.VideoTracks = SortTracks(parsedResult.VideoTracks, dfnPriority, encodingPriority, myOption.VideoAscending);
parsedResult.AudioTracks = SortTracks(parsedResult.AudioTracks, encodingPriority, myOption.AudioAscending);
parsedResult.BackgroundAudioTracks = SortTracks(parsedResult.BackgroundAudioTracks, encodingPriority, myOption.AudioAscending);
foreach (var role in parsedResult.RoleAudioList)
{
role.audio = SortTracks(role.audio, encodingPriority, myOption.AudioAscending);
}
//打印轨道信息
if (!myOption.HideStreams)
{
PrintAllTracksInfo(parsedResult, p.dur, myOption.OnlyShowInfo);
}
//仅展示 跳过下载
if (myOption.OnlyShowInfo)
{
return;
}
int vIndex = 0; //用户手动选择的视频序号
int aIndex = 0; //用户手动选择的音频序号
//选择轨道
if (myOption.Interactive && !selected)
{
SelectTrackManually(parsedResult, ref vIndex, ref aIndex);
selected = true;
}
Video? selectedVideo = parsedResult.VideoTracks.ElementAtOrDefault(vIndex);
Audio? selectedAudio = parsedResult.AudioTracks.ElementAtOrDefault(aIndex);
Audio? selectedBackgroundAudio = parsedResult.BackgroundAudioTracks.ElementAtOrDefault(aIndex);
LogDebug("Format Before: " + savePathFormat);
savePath = FormatSavePath(savePathFormat, title, selectedVideo, selectedAudio, p, pagesCount, apiType, pubTime);
LogDebug("Format After: " + savePath);