B站模块:修复字幕过大的问题

B站模块:修复仅下载前6分钟字幕的问题
This commit is contained in:
Yutousama 2022-05-09 11:55:12 +08:00
parent a7baf2a236
commit c1fd29232e
3 changed files with 29 additions and 13 deletions

View File

@ -6,7 +6,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class QQBotApplication {
public static final String version="QQBot v.1.2.27";
public static final String version="QQBot v.1.2.28";
public static void main(String[] args) {
System.out.println("version = " + version);
SpringApplication.run(QQBotApplication.class, args);

View File

@ -49,15 +49,15 @@ public class AssTools {
addBuilder("Original Script: 本字幕由@yutou生成");
addBuilder("ScriptType: v4.00+");
addBuilder("Collisions: Normal");
addBuilder("PlayResX: 560");
addBuilder("PlayResY: 420");
addBuilder("PlayResX: 1920");
addBuilder("PlayResY: 1080");
addBuilder("Timer: 10.0000");
addBuilder("");
addBuilder("[V4+ Styles]");
addBuilder("Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, ");
addBuilder("MarginL, MarginR, MarginV, Encoding");
addBuilder("Style: Fix,Microsoft YaHei UI,25,&H66FFFFFF,&H66FFFFFF,&H66000000,&H66000000,1,0,0,0,100,100,0,0,1,2,0,2,20,20,2,0");
addBuilder("Style: R2L,Microsoft YaHei UI,14,&H00FFFFFF,&H000000FF,&H00161616,&H00000000,0,0,0,0,100,100,0,0,1,2,0,2,20,20,20,1");
addBuilder("Style: Fix,Microsoft YaHei UI,45,&H66FFFFFF,&H66FFFFFF,&H66000000,&H66000000,1,0,0,0,100,100,0,0,1,2,0,2,20,20,2,0");
addBuilder("Style: R2L,Microsoft YaHei UI,45,&H00FFFFFF,&H000000FF,&H00161616,&H00000000,0,0,0,0,100,100,0,0,1,2,0,2,20,20,20,1");
addBuilder("");
addBuilder("[Events]");
addBuilder("Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text");
@ -141,7 +141,7 @@ public class AssTools {
new DecimalFormat("00").format(m),
new DecimalFormat("00").format(s));
float x1, x2;
x1 = 560 + (danmuData.getDanmu().length() * 12.5f);
x1 = 1920 + (danmuData.getDanmu().length() * 12.5f);
x2 = 0 - (danmuData.getDanmu().length() * 12.5f);
String ass = String.format("Dialogue: 0,%s,%s,R2L,,20,20,2,,{\\move(%.1f,%d,%.1f,%d)\\c&%s\\alpha&H%s}%s",
@ -160,9 +160,9 @@ public class AssTools {
private void addY() {
y += 25;
if (y >= 420) {
y = 25;
y += 30;
if (y >= 1080) {
y = 30;
}
}

View File

@ -154,12 +154,15 @@ public class BiliVideo extends Model {
json.put("oid", cid);
json.put("avid", avid);
json.put("segment_index", segment_index);
byte[] http = BiliBiliUtils.http("https://api.bilibili.com/x/v2/dm/web/seg.so?" + HttpTools.toUrlParams(json), BiliBiliUtils.HTTP.GET, null, BiliBiliUtils.RET_MODEL.BYTE);
try {
VideoDanMu.DmSegMobileReply parse = VideoDanMu.DmSegMobileReply.parseFrom(http);
List<VideoDanMu.DanmakuElem> tmp, danmuList = new ArrayList<>();
while (!(tmp = getDanmu(json)).isEmpty()) {
danmuList.addAll(tmp);
json.put("segment_index",++segment_index);
}
AssTools tools = new AssTools(title);
List<DanmuData> list = new ArrayList<>();
for (VideoDanMu.DanmakuElem elem : parse.getElemsList()) {
for (VideoDanMu.DanmakuElem elem : danmuList) {
DanmuData danmuData = new DanmuData();
danmuData.setDanmu(elem.getContent());
danmuData.setFontSize(elem.getFontsize());
@ -176,6 +179,18 @@ public class BiliVideo extends Model {
}
}
private List<VideoDanMu.DanmakuElem> getDanmu(JSONObject json) {
try {
byte[] http = BiliBiliUtils.http("https://api.bilibili.com/x/v2/dm/web/seg.so?" + HttpTools.toUrlParams(json), BiliBiliUtils.HTTP.GET, null, BiliBiliUtils.RET_MODEL.BYTE);
VideoDanMu.DmSegMobileReply parse = VideoDanMu.DmSegMobileReply.parseFrom(http);
return parse.getElemsList();
} catch (Exception e) {
e.printStackTrace();
}
return new ArrayList<>();
}
private void save(String name, File videoFile, File audioFile) {
List<String> urls = new ArrayList<>();
@ -263,9 +278,10 @@ public class BiliVideo extends Model {
//video.downVideo("https://www.bilibili.com/video/BV1qF411T7Vf?spm_id_from=444.41.list.card_archive.click");
//唐诱正片
//video.downVideo("https://www.bilibili.com/video/BV1L44y147zR?spm_id_from=333.337.search-card.all.click");
video.downVideo("https://www.bilibili.com/video/BV18L4y1H7rz?spm_id_from=333.999.0.0");
// video.downVideo("https://www.bilibili.com/video/BV18L4y1H7rz?spm_id_from=333.999.0.0");
// int a=16|2048;
// System.out.println("a = " + a);
//video.downDanmu(428855000L,976216102L,"【都市_情感】《唐可可的诱惑》第一集",1);
video.downDanmu(711506339L, 641094440L, "泡泡", 1);
}
}