Skip to content

Commit 6dbb59c

Browse files
committed
zdf: 720p als normale Url analog ARD
2 parents 3a916be + c5b86e4 commit 6dbb59c

3 files changed

Lines changed: 47 additions & 51 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ sourceCompatibility = JavaVersion.VERSION_17
2727
targetCompatibility = JavaVersion.VERSION_17
2828
group = 'de.mediathekview'
2929
archivesBaseName = "MServer"
30-
version = '3.1.246'
30+
version = '3.1.247'
3131

3232
def jarName = 'MServer.jar'
3333
def mainClass = 'mServer.Main'

src/main/java/mServer/crawler/sender/zdf/ZdfVideoUrlOptimizer.java

Lines changed: 36 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,20 @@ public class ZdfVideoUrlOptimizer {
2727
private static final String NORMAL_2328_35_14 = "2328k_p35v14.mp4";
2828
private static final String NORMAL_2360_35_15 = "2360k_p35v15.mp4";
2929
private static final String NORMAL_2360_35_17 = "2360k_p35v17.mp4";
30+
private static final String NORMAL_3256 = "3256k_p15v12.mp4";
31+
private static final String NORMAL_3296_15_13 = "3296k_p15v13.mp4";
32+
private static final String NORMAL_3296_15_14 = "3296k_p15v14.mp4";
33+
private static final String NORMAL_3328_15_15 = "3328k_p15v15.mp4";
34+
private static final String NORMAL_3328_15_17 = "3328k_p15v17.mp4";
35+
private static final String NORMAL_3328_12 = "3328k_p36v12.mp4";
36+
private static final String NORMAL_3328_13 = "3328k_p36v13.mp4";
37+
private static final String NORMAL_3328_14 = "3328k_p36v14.mp4";
38+
private static final String NORMAL_3328_35_14 = "3328k_p35v14.mp4";
39+
private static final String NORMAL_3328_36_13 = "3328k_p36v13.mp4";
40+
private static final String NORMAL_3328_36_14 = "3328k_p36v14.mp4";
41+
private static final String NORMAL_3360_36_15 = "3360k_p36v15.mp4";
42+
private static final String NORMAL_3360_36_17 = "3360k_p36v17.mp4";
3043

31-
private static final String HD_3256 = "3256k_p15v12.mp4";
32-
private static final String HD_3296_15_13 = "3296k_p15v13.mp4";
33-
private static final String HD_3296_15_14 = "3296k_p15v14.mp4";
34-
private static final String HD_3328_15_15 = "3328k_p15v15.mp4";
35-
private static final String HD_3328_15_17 = "3328k_p15v17.mp4";
36-
private static final String HD_3328_12 = "3328k_p36v12.mp4";
37-
private static final String HD_3328_13 = "3328k_p36v13.mp4";
38-
private static final String HD_3328_14 = "3328k_p36v14.mp4";
39-
private static final String HD_3328_35_14 = "3328k_p35v14.mp4";
40-
private static final String HD_3328_36_13 = "3328k_p36v13.mp4";
41-
private static final String HD_3328_36_14 = "3328k_p36v14.mp4";
42-
private static final String HD_3360_36_15 = "3360k_p36v15.mp4";
43-
private static final String HD_3360_36_17 = "3360k_p36v17.mp4";
4444
private static final String HD_6628_61_17 = "6628k_p61v17.mp4";
4545
private static final String HD_6660_37_17 = "6660k_p37v17.mp4";
4646

@@ -49,38 +49,33 @@ public class ZdfVideoUrlOptimizer {
4949
private static final Map<String, String[]> HD_OPTIMIZE = new HashMap<>();
5050

5151
static {
52-
NORMAL_OPTIMIZE.put(NORMAL_1628_13_17, new String[]{NORMAL_2360_35_17});
52+
NORMAL_OPTIMIZE.put(NORMAL_1628_13_17, new String[] {NORMAL_3360_36_17, NORMAL_2360_35_17});
5353
NORMAL_OPTIMIZE.put(NORMAL_2256_14_11, new String[]{NORMAL_2328_35_11});
54-
NORMAL_OPTIMIZE.put(NORMAL_2256_14_12, new String[]{NORMAL_2328_35_12});
54+
NORMAL_OPTIMIZE.put(NORMAL_2256_14_12, new String[] {NORMAL_3328_12, NORMAL_3256, NORMAL_2328_35_12});
5555
NORMAL_OPTIMIZE.put(NORMAL_2296_14_13, new String[]{NORMAL_2328_35_13});
56-
NORMAL_OPTIMIZE.put(NORMAL_2296_14_14, new String[]{NORMAL_2328_35_14});
56+
NORMAL_OPTIMIZE.put(NORMAL_2296_14_14, new String[] {NORMAL_3328_14, NORMAL_3328_35_14, NORMAL_3328_13, NORMAL_3296_15_14, NORMAL_3296_15_13, NORMAL_2328_35_14});
5757
NORMAL_OPTIMIZE.put(NORMAL_1456_13_11, new String[]{NORMAL_2328_35_11, NORMAL_2256_14_11});
58-
NORMAL_OPTIMIZE.put(NORMAL_1456_13_12, new String[]{NORMAL_2328_35_12, NORMAL_2256_14_12});
59-
NORMAL_OPTIMIZE.put(NORMAL_1496_13_13, new String[]{NORMAL_2328_35_13, NORMAL_2296_14_13});
60-
NORMAL_OPTIMIZE.put(NORMAL_1496_13_14, new String[]{NORMAL_2328_35_14, NORMAL_2296_14_14});
61-
NORMAL_OPTIMIZE.put(NORMAL_1628_13_15, new String[]{NORMAL_2360_35_15});
62-
63-
NORMAL_TO_HD.put(NORMAL_2360_35_17, new String[] {HD_6660_37_17, HD_6628_61_17, HD_3360_36_17});
64-
NORMAL_TO_HD.put(NORMAL_1628_13_17, new String[] {HD_6660_37_17, HD_6628_61_17, HD_3360_36_17});
65-
NORMAL_TO_HD.put(NORMAL_1456_13_12, new String[] {HD_3328_12, HD_3256});
66-
NORMAL_TO_HD.put(NORMAL_2256_14_12, new String[] {HD_3328_12, HD_3256});
67-
NORMAL_TO_HD.put(NORMAL_2328_35_12, new String[] {HD_3328_12, HD_3256});
68-
NORMAL_TO_HD.put(NORMAL_1496_13_13, new String[] {HD_3328_13, HD_3296_15_14, HD_3296_15_13});
69-
NORMAL_TO_HD.put(NORMAL_2296_14_13, new String[] {HD_3328_13, HD_3296_15_14, HD_3296_15_13});
70-
NORMAL_TO_HD.put(NORMAL_2328_35_13, new String[] {HD_3328_13, HD_3296_15_14, HD_3296_15_13});
71-
NORMAL_TO_HD.put(NORMAL_1496_13_14, new String[] {HD_3328_14, HD_3328_35_14});
72-
NORMAL_TO_HD.put(NORMAL_2296_14_14, new String[] {HD_3328_14, HD_3328_35_14});
73-
NORMAL_TO_HD.put(NORMAL_2328_35_14, new String[] {HD_3328_14, HD_3328_35_14});
74-
NORMAL_TO_HD.put(NORMAL_1628_13_15, new String[] {HD_3360_36_15});
75-
NORMAL_TO_HD.put(NORMAL_2360_35_15, new String[] {HD_3360_36_15});
76-
77-
HD_OPTIMIZE.put(HD_3360_36_17, new String[] {HD_6660_37_17, HD_6628_61_17});
58+
NORMAL_OPTIMIZE.put(NORMAL_1456_13_12, new String[] {NORMAL_3328_12, NORMAL_3256, NORMAL_2328_35_12, NORMAL_2256_14_12});
59+
NORMAL_OPTIMIZE.put(NORMAL_1496_13_13, new String[] {NORMAL_3328_13, NORMAL_3296_15_14, NORMAL_3296_15_13, NORMAL_2328_35_13, NORMAL_2296_14_13});
60+
NORMAL_OPTIMIZE.put(NORMAL_1496_13_14, new String[] {NORMAL_3328_14, NORMAL_3328_35_14, NORMAL_2328_35_14, NORMAL_2296_14_14});
61+
NORMAL_OPTIMIZE.put(NORMAL_1628_13_15, new String[] {NORMAL_3360_36_15, NORMAL_2360_35_15});
62+
NORMAL_OPTIMIZE.put(NORMAL_3328_15_15, new String[] {NORMAL_3360_36_15});
63+
NORMAL_OPTIMIZE.put(NORMAL_3256, new String[] {NORMAL_3328_12});
64+
NORMAL_OPTIMIZE.put(NORMAL_3296_15_14, new String[] {NORMAL_3328_36_14});
65+
NORMAL_OPTIMIZE.put(NORMAL_3296_15_13, new String[] {NORMAL_3328_36_13});
66+
NORMAL_OPTIMIZE.put(NORMAL_3328_15_17, new String[] {NORMAL_3360_36_17});
67+
NORMAL_OPTIMIZE.put(NORMAL_2328_35_12, new String[] {NORMAL_3328_12, NORMAL_3256});
68+
NORMAL_OPTIMIZE.put(NORMAL_2328_35_13, new String[] {NORMAL_3328_13, NORMAL_3296_15_14, NORMAL_3296_15_13});
69+
NORMAL_OPTIMIZE.put(NORMAL_2328_35_14, new String[] {NORMAL_3328_14, NORMAL_3328_35_14});
70+
NORMAL_OPTIMIZE.put(NORMAL_2360_35_15, new String[] {NORMAL_3360_36_15});
71+
NORMAL_OPTIMIZE.put(NORMAL_2360_35_17, new String[] {NORMAL_3360_36_17});
72+
73+
NORMAL_TO_HD.put(NORMAL_2360_35_17, new String[] {HD_6660_37_17, HD_6628_61_17});
74+
NORMAL_TO_HD.put(NORMAL_1628_13_17, new String[] {HD_6660_37_17, HD_6628_61_17});
75+
NORMAL_TO_HD.put(NORMAL_3360_36_17, new String[] {HD_6660_37_17, HD_6628_61_17});
76+
NORMAL_TO_HD.put(NORMAL_3328_15_17, new String[] {HD_6660_37_17, HD_6628_61_17});
77+
7878
HD_OPTIMIZE.put(HD_6628_61_17, new String[] {HD_6660_37_17});
79-
HD_OPTIMIZE.put(HD_3328_15_17, new String[] {HD_6660_37_17, HD_6628_61_17, HD_3360_36_17});
80-
HD_OPTIMIZE.put(HD_3328_15_15, new String[] {HD_3360_36_15});
81-
HD_OPTIMIZE.put(HD_3256, new String[] {HD_3328_12});
82-
HD_OPTIMIZE.put(HD_3296_15_14, new String[] {HD_3328_36_14});
83-
HD_OPTIMIZE.put(HD_3296_15_13, new String[] {HD_3328_36_13});
8479
}
8580

8681
/**

src/main/java/mServer/crawler/sender/zdf/json/ZdfDownloadDtoDeserializer.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -86,12 +86,10 @@ private void parseDuration(final DownloadDto dto, final JsonObject rootNode) {
8686
}
8787
}
8888

89-
private void parseFormitaet(final DownloadDto dto, final JsonElement formitaet) {
89+
private void parseFormitaet(final List<DownloadInfo> downloads, final JsonElement formitaet) {
9090
// only mp4-videos are relevant
9191
final JsonElement mimeType = formitaet.getAsJsonObject().get(JSON_ELEMENT_MIMETYPE);
9292
if (mimeType != null && mimeType.getAsString().equalsIgnoreCase(RELEVANT_MIME_TYPE)) {
93-
List<DownloadInfo> downloads = new ArrayList<>();
94-
9593
// array Resolution
9694
final JsonArray qualityList
9795
= formitaet.getAsJsonObject().getAsJsonArray(JSON_ELEMENT_QUALITIES);
@@ -113,8 +111,6 @@ private void parseFormitaet(final DownloadDto dto, final JsonElement formitaet)
113111
}
114112
}
115113
}
116-
downloads.sort(Comparator.comparingInt(DownloadInfo::getVerticalResolution));
117-
downloads.forEach(info -> dto.addUrl(info.getLanguage(), info.getQuality(), info.getUri()));
118114
}
119115
}
120116

@@ -154,14 +150,14 @@ private void parseGeoLocation(final DownloadDto dto, final JsonObject rootNode)
154150
}
155151
}
156152

157-
private void parsePriority(final DownloadDto dto, final JsonElement priority) {
153+
private void parsePriority(final List<DownloadInfo> downloads, final JsonElement priority) {
158154
if (priority != null) {
159155

160156
// array formitaeten
161157
final JsonArray formitaetList
162158
= priority.getAsJsonObject().getAsJsonArray(JSON_ELEMENT_FORMITAET);
163159
for (final JsonElement formitaet : formitaetList) {
164-
parseFormitaet(dto, formitaet);
160+
parseFormitaet(downloads, formitaet);
165161
}
166162
}
167163
}
@@ -198,9 +194,9 @@ private Qualities parseVideoQuality(final JsonObject quality) {
198194
qualityValue = Qualities.SMALL;
199195
break;
200196
case ZDF_QUALITY_VERYHIGH:
197+
case ZDF_QUALITY_HD:
201198
qualityValue = Qualities.NORMAL;
202199
break;
203-
case ZDF_QUALITY_HD:
204200
case ZDF_QUALITY_FHD:
205201
qualityValue = Qualities.HD;
206202
break;
@@ -216,12 +212,17 @@ private Qualities parseVideoQuality(final JsonObject quality) {
216212
}
217213

218214
private void parseVideoUrls(final DownloadDto dto, final JsonObject rootNode) {
215+
List<DownloadInfo> downloads = new ArrayList<>();
216+
219217
// array priorityList
220218
final JsonArray priorityList = rootNode.getAsJsonArray(JSON_ELEMENT_PRIORITYLIST);
221219
for (final JsonElement priority : priorityList) {
222220

223-
parsePriority(dto, priority);
221+
parsePriority(downloads, priority);
224222
}
223+
224+
downloads.sort(Comparator.comparingInt(DownloadInfo::getVerticalResolution));
225+
downloads.forEach(info -> dto.addUrl(info.getLanguage(), info.getQuality(), info.getUri()));
225226
}
226227

227228
private class DownloadInfo {

0 commit comments

Comments
 (0)