Skip to content

Commit 8392a36

Browse files
committed
zdf: 720p als normale Url analog ARD
1 parent 564a1de commit 8392a36

File tree

5 files changed

+77
-91
lines changed

5 files changed

+77
-91
lines changed

src/main/java/de/mediathekview/mserver/crawler/zdf/ZdfVideoUrlOptimizer.java

Lines changed: 36 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,19 @@ public class ZdfVideoUrlOptimizer {
3131
private static final String NORMAL_2360_35_15 = "2360k_p35v15.mp4";
3232
private static final String NORMAL_2360_35_17 = "2360k_p35v17.mp4";
3333

34-
private static final String HD_3256 = "3256k_p15v12.mp4";
35-
private static final String HD_3296_15_13 = "3296k_p15v13.mp4";
36-
private static final String HD_3296_15_14 = "3296k_p15v14.mp4";
37-
private static final String HD_3328_15_15 = "3328k_p15v15.mp4";
38-
private static final String HD_3328_15_17 = "3328k_p15v17.mp4";
39-
private static final String HD_3328_12 = "3328k_p36v12.mp4";
40-
private static final String HD_3328_13 = "3328k_p36v13.mp4";
41-
private static final String HD_3328_14 = "3328k_p36v14.mp4";
42-
private static final String HD_3328_35_14 = "3328k_p35v14.mp4";
43-
private static final String HD_3328_36_13 = "3328k_p36v13.mp4";
44-
private static final String HD_3328_36_14 = "3328k_p36v14.mp4";
45-
private static final String HD_3360_36_15 = "3360k_p36v15.mp4";
46-
private static final String HD_3360_36_17 = "3360k_p36v17.mp4";
34+
private static final String NORMAL_3256 = "3256k_p15v12.mp4";
35+
private static final String NORMAL_3296_15_13 = "3296k_p15v13.mp4";
36+
private static final String NORMAL_3296_15_14 = "3296k_p15v14.mp4";
37+
private static final String NORMAL_3328_15_15 = "3328k_p15v15.mp4";
38+
private static final String NORMAL_3328_15_17 = "3328k_p15v17.mp4";
39+
private static final String NORMAL_3328_12 = "3328k_p36v12.mp4";
40+
private static final String NORMAL_3328_13 = "3328k_p36v13.mp4";
41+
private static final String NORMAL_3328_14 = "3328k_p36v14.mp4";
42+
private static final String NORMAL_3328_35_14 = "3328k_p35v14.mp4";
43+
private static final String NORMAL_3328_36_13 = "3328k_p36v13.mp4";
44+
private static final String NORMAL_3328_36_14 = "3328k_p36v14.mp4";
45+
private static final String NORMAL_3360_36_15 = "3360k_p36v15.mp4";
46+
private static final String NORMAL_3360_36_17 = "3360k_p36v17.mp4";
4747
private static final String HD_6628_61_17 = "6628k_p61v17.mp4";
4848
private static final String HD_6660_37_17 = "6660k_p37v17.mp4";
4949

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

5454
static {
55-
NORMAL_OPTIMIZE.put(NORMAL_1628_13_17, new String[] {NORMAL_2360_35_17});
55+
NORMAL_OPTIMIZE.put(NORMAL_1628_13_17, new String[] {NORMAL_3360_36_17, NORMAL_2360_35_17});
5656
NORMAL_OPTIMIZE.put(NORMAL_2256_14_11, new String[] {NORMAL_2328_35_11});
57-
NORMAL_OPTIMIZE.put(NORMAL_2256_14_12, new String[] {NORMAL_2328_35_12});
57+
NORMAL_OPTIMIZE.put(NORMAL_2256_14_12, new String[] {NORMAL_3328_12, NORMAL_3256, NORMAL_2328_35_12});
5858
NORMAL_OPTIMIZE.put(NORMAL_2296_14_13, new String[] {NORMAL_2328_35_13});
59-
NORMAL_OPTIMIZE.put(NORMAL_2296_14_14, new String[] {NORMAL_2328_35_14});
59+
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});
6060
NORMAL_OPTIMIZE.put(NORMAL_1456_13_11, new String[] {NORMAL_2328_35_11, NORMAL_2256_14_11});
61-
NORMAL_OPTIMIZE.put(NORMAL_1456_13_12, new String[] {NORMAL_2328_35_12, NORMAL_2256_14_12});
62-
NORMAL_OPTIMIZE.put(NORMAL_1496_13_13, new String[] {NORMAL_2328_35_13, NORMAL_2296_14_13});
63-
NORMAL_OPTIMIZE.put(NORMAL_1496_13_14, new String[] {NORMAL_2328_35_14, NORMAL_2296_14_14});
64-
NORMAL_OPTIMIZE.put(NORMAL_1628_13_15, new String[] {NORMAL_2360_35_15});
65-
66-
NORMAL_TO_HD.put(NORMAL_2360_35_17, new String[] {HD_6660_37_17, HD_6628_61_17, HD_3360_36_17});
67-
NORMAL_TO_HD.put(NORMAL_1628_13_17, new String[] {HD_6660_37_17, HD_6628_61_17, HD_3360_36_17});
68-
NORMAL_TO_HD.put(NORMAL_1456_13_12, new String[] {HD_3328_12, HD_3256});
69-
NORMAL_TO_HD.put(NORMAL_2256_14_12, new String[] {HD_3328_12, HD_3256});
70-
NORMAL_TO_HD.put(NORMAL_2328_35_12, new String[] {HD_3328_12, HD_3256});
71-
NORMAL_TO_HD.put(NORMAL_1496_13_13, new String[] {HD_3328_13, HD_3296_15_14, HD_3296_15_13});
72-
NORMAL_TO_HD.put(NORMAL_2296_14_13, new String[] {HD_3328_13, HD_3296_15_14, HD_3296_15_13});
73-
NORMAL_TO_HD.put(NORMAL_2328_35_13, new String[] {HD_3328_13, HD_3296_15_14, HD_3296_15_13});
74-
NORMAL_TO_HD.put(NORMAL_1496_13_14, new String[] {HD_3328_14, HD_3328_35_14});
75-
NORMAL_TO_HD.put(NORMAL_2296_14_14, new String[] {HD_3328_14, HD_3328_35_14});
76-
NORMAL_TO_HD.put(NORMAL_2328_35_14, new String[] {HD_3328_14, HD_3328_35_14});
77-
NORMAL_TO_HD.put(NORMAL_1628_13_15, new String[] {HD_3360_36_15});
78-
NORMAL_TO_HD.put(NORMAL_2360_35_15, new String[] {HD_3360_36_15});
79-
80-
HD_OPTIMIZE.put(HD_3360_36_17, new String[] {HD_6660_37_17, HD_6628_61_17});
61+
NORMAL_OPTIMIZE.put(NORMAL_1456_13_12, new String[] {NORMAL_3328_12, NORMAL_3256, NORMAL_2328_35_12, NORMAL_2256_14_12});
62+
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});
63+
NORMAL_OPTIMIZE.put(NORMAL_1496_13_14, new String[] {NORMAL_3328_14, NORMAL_3328_35_14, NORMAL_2328_35_14, NORMAL_2296_14_14});
64+
NORMAL_OPTIMIZE.put(NORMAL_1628_13_15, new String[] {NORMAL_3360_36_15, NORMAL_2360_35_15});
65+
NORMAL_OPTIMIZE.put(NORMAL_3328_15_15, new String[] {NORMAL_3360_36_15});
66+
NORMAL_OPTIMIZE.put(NORMAL_3256, new String[] {NORMAL_3328_12});
67+
NORMAL_OPTIMIZE.put(NORMAL_3296_15_14, new String[] {NORMAL_3328_36_14});
68+
NORMAL_OPTIMIZE.put(NORMAL_3296_15_13, new String[] {NORMAL_3328_36_13});
69+
NORMAL_OPTIMIZE.put(NORMAL_3328_15_17, new String[] {NORMAL_3360_36_17});
70+
NORMAL_OPTIMIZE.put(NORMAL_2328_35_12, new String[] {NORMAL_3328_12, NORMAL_3256});
71+
NORMAL_OPTIMIZE.put(NORMAL_2328_35_13, new String[] {NORMAL_3328_13, NORMAL_3296_15_14, NORMAL_3296_15_13});
72+
NORMAL_OPTIMIZE.put(NORMAL_2328_35_14, new String[] {NORMAL_3328_14, NORMAL_3328_35_14});
73+
NORMAL_OPTIMIZE.put(NORMAL_2360_35_15, new String[] {NORMAL_3360_36_15});
74+
NORMAL_OPTIMIZE.put(NORMAL_2360_35_17, new String[] {NORMAL_3360_36_17});
75+
76+
NORMAL_TO_HD.put(NORMAL_2360_35_17, new String[] {HD_6660_37_17, HD_6628_61_17});
77+
NORMAL_TO_HD.put(NORMAL_1628_13_17, new String[] {HD_6660_37_17, HD_6628_61_17});
78+
NORMAL_TO_HD.put(NORMAL_3360_36_17, new String[] {HD_6660_37_17, HD_6628_61_17});
79+
NORMAL_TO_HD.put(NORMAL_3328_15_17, new String[] {HD_6660_37_17, HD_6628_61_17});
80+
8181
HD_OPTIMIZE.put(HD_6628_61_17, new String[] {HD_6660_37_17});
82-
HD_OPTIMIZE.put(HD_3328_15_17, new String[] {HD_6660_37_17, HD_6628_61_17, HD_3360_36_17});
83-
HD_OPTIMIZE.put(HD_3328_15_15, new String[] {HD_3360_36_15});
84-
HD_OPTIMIZE.put(HD_3256, new String[] {HD_3328_12});
85-
HD_OPTIMIZE.put(HD_3296_15_14, new String[] {HD_3328_36_14});
86-
HD_OPTIMIZE.put(HD_3296_15_13, new String[] {HD_3328_36_13});
8782
}
8883

8984
protected AbstractCrawler crawler;

src/main/java/de/mediathekview/mserver/crawler/zdf/json/ZdfDownloadDtoDeserializer.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -101,12 +101,11 @@ private void parseDuration(final DownloadDto dto, final JsonObject rootNode) {
101101
}
102102
}
103103

104-
private void parseFormitaet(final DownloadDto dto, final JsonElement formitaet) {
104+
private void parseFormitaet(final List<DownloadInfo> downloads, final JsonElement formitaet) {
105105
// only mp4-videos are relevant
106106
final JsonElement mimeType = formitaet.getAsJsonObject().get(JSON_ELEMENT_MIMETYPE);
107107
if (mimeType != null && mimeType.getAsString().equalsIgnoreCase(RELEVANT_MIME_TYPE)) {
108108

109-
List<DownloadInfo> downloads = new ArrayList<>();
110109

111110
// array Resolution
112111
final JsonArray qualityList =
@@ -135,9 +134,6 @@ private void parseFormitaet(final DownloadDto dto, final JsonElement formitaet)
135134
}
136135
}
137136
}
138-
139-
downloads.sort(Comparator.comparingInt(DownloadInfo::verticalResolution));
140-
downloads.forEach(info -> dto.addUrl(info.language(), info.resolution(), info.uri()));
141137
}
142138
}
143139

@@ -159,14 +155,13 @@ private void parseGeoLocation(final DownloadDto dto, final JsonObject rootNode)
159155
}
160156
}
161157

162-
private void parsePriority(final DownloadDto dto, final JsonElement priority) {
158+
private void parsePriority(final List<DownloadInfo> downloads, final JsonElement priority) {
163159
if (priority != null) {
164-
165160
// array formitaeten
166161
final JsonArray formitaetList =
167162
priority.getAsJsonObject().getAsJsonArray(JSON_ELEMENT_FORMITAET);
168163
for (final JsonElement formitaet : formitaetList) {
169-
parseFormitaet(dto, formitaet);
164+
parseFormitaet(downloads, formitaet);
170165
}
171166
}
172167
}
@@ -203,9 +198,9 @@ private Resolution parseVideoQuality(final JsonObject quality) {
203198
qualityValue = Resolution.SMALL;
204199
break;
205200
case ZDF_QUALITY_VERYHIGH:
201+
case ZDF_QUALITY_HD:
206202
qualityValue = Resolution.NORMAL;
207203
break;
208-
case ZDF_QUALITY_HD:
209204
case ZDF_QUALITY_FHD:
210205
qualityValue = Resolution.HD;
211206
break;
@@ -220,12 +215,17 @@ private Resolution parseVideoQuality(final JsonObject quality) {
220215
}
221216

222217
private void parseVideoUrls(final DownloadDto dto, final JsonObject rootNode) {
218+
List<DownloadInfo> downloads = new ArrayList<>();
219+
223220
// array priorityList
224221
final JsonArray priorityList = rootNode.getAsJsonArray(JSON_ELEMENT_PRIORITYLIST);
225222
for (final JsonElement priority : priorityList) {
226223

227-
parsePriority(dto, priority);
224+
parsePriority(downloads, priority);
228225
}
226+
227+
downloads.sort(Comparator.comparingInt(DownloadInfo::verticalResolution));
228+
downloads.forEach(info -> dto.addUrl(info.language(), info.resolution(), info.uri()));
229229
}
230230

231231
private record DownloadInfo(

src/test/java/de/mediathekview/mserver/crawler/zdf/ZdfVideoUrlOptimizerTest.java

Lines changed: 21 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -66,22 +66,13 @@ public void getOptimizedUrlHdTestAlreadyBestQuality() {
6666

6767
@Test
6868
public void getOptimizedUrlHdTestBetterUrlExists() {
69-
final String url = getWireMockBaseUrlSafe() + "/video_3360k_p36v17.mp4";
69+
final String url = getWireMockBaseUrlSafe() + "/video_6628k_p61v17.mp4";
7070
final String expectedUrl = getWireMockBaseUrlSafe() + "/video_6660k_p37v17.mp4";
7171

7272
setupHeadResponse("/video_6660k_p37v17.mp4", 200);
7373
assertGetOptimizedUrlHd(expectedUrl, url);
7474
}
7575

76-
@Test
77-
public void getOptimizedUrlHdTestBetterUrlExists2() {
78-
final String url = getWireMockBaseUrlSafe() + "/video_3360k_p36v17.mp4";
79-
final String expectedUrl = getWireMockBaseUrlSafe() + "/video_6628k_p61v17.mp4";
80-
81-
setupHeadResponse("/video_6628k_p61v17.mp4", 200);
82-
assertGetOptimizedUrlHd(expectedUrl, url);
83-
}
84-
8576
@Test
8677
public void getOptimizedUrlHdTestBetterUrlNotExists() {
8778
final String url = getWireMockBaseUrlSafe() + "/video_3360k_p36v17.mp4";
@@ -92,57 +83,57 @@ public void getOptimizedUrlHdTestBetterUrlNotExists() {
9283

9384
@Test
9485
public void determineUrlHdTestFirstUrlExists() {
95-
final String url = getWireMockBaseUrlSafe() + "/video_1456k_p13v12.mp4";
96-
final String expectedUrl = getWireMockBaseUrlSafe() + "/video_3328k_p36v12.mp4";
86+
final String url = getWireMockBaseUrlSafe() + "/video_1628k_p13v17.mp4";
87+
final String expectedUrl = getWireMockBaseUrlSafe() + "/video_6660k_p37v17.mp4";
9788

98-
setupHeadResponse("/video_3328k_p36v12.mp4", 200);
89+
setupHeadResponse("/video_6660k_p37v17.mp4", 200);
9990
assertDetermineUrlHd(Optional.of(expectedUrl), url);
10091
}
10192

10293
@Test
10394
public void determineUrlHdTestFirstUrlExists2() {
104-
final String url = getWireMockBaseUrlSafe() + "/video_2360k_p35v15.mp4";
105-
final String expectedUrl = getWireMockBaseUrlSafe() + "/video_3360k_p36v15.mp4";
95+
final String url = getWireMockBaseUrlSafe() + "/video_2360k_p35v17.mp4";
96+
final String expectedUrl = getWireMockBaseUrlSafe() + "/video_6660k_p37v17.mp4";
10697

107-
setupHeadResponse("/video_3360k_p36v15.mp4", 200);
98+
setupHeadResponse("/video_6660k_p37v17.mp4", 200);
10899
assertDetermineUrlHd(Optional.of(expectedUrl), url);
109100
}
110101

111102
@Test
112103
public void determineUrlHdTestFirstUrlExists3() {
113-
final String url = getWireMockBaseUrlSafe() + "/video_1628k_p13v15.mp4";
114-
final String expectedUrl = getWireMockBaseUrlSafe() + "/video_3360k_p36v15.mp4";
104+
final String url = getWireMockBaseUrlSafe() + "/video_3328k_p15v17.mp4";
105+
final String expectedUrl = getWireMockBaseUrlSafe() + "/video_6660k_p37v17.mp4";
115106

116-
setupHeadResponse("/video_3360k_p36v15.mp4", 200);
107+
setupHeadResponse("/video_6660k_p37v17.mp4", 200);
117108
assertDetermineUrlHd(Optional.of(expectedUrl), url);
118109
}
119110

120111
@Test
121112
public void determineUrlHdTestSecondUrlExists() {
122-
final String url = getWireMockBaseUrlSafe() + "/video_1456k_p13v12.mp4";
123-
final String expectedUrl = getWireMockBaseUrlSafe() + "/video_3256k_p15v12.mp4";
113+
final String url = getWireMockBaseUrlSafe() + "/video_1628k_p13v17.mp4";
114+
final String expectedUrl = getWireMockBaseUrlSafe() + "/video_6628k_p61v17.mp4";
124115

125-
setupHeadResponse("/video_3328k_p36v12.mp4", 404);
126-
setupHeadResponse("/video_3256k_p15v12.mp4", 200);
116+
setupHeadResponse("/video_6660k_p37v17.mp4", 404);
117+
setupHeadResponse("/video_6628k_p61v17.mp4", 200);
127118
assertDetermineUrlHd(Optional.of(expectedUrl), url);
128119
}
129120

130121
@Test
131122
public void determineUrlHdTestNoUrlExists() {
132-
final String url = getWireMockBaseUrlSafe() + "/video_1456k_p13v12.mp4";
123+
final String url = getWireMockBaseUrlSafe() + "/video_1628k_p13v17.mp4";
133124

134-
setupHeadResponse("/video_3328k_p36v12.mp4", 404);
135-
setupHeadResponse("/video_3256k_p15v12.mp4", 404);
125+
setupHeadResponse("/video_6660k_p37v17.mp4", 404);
126+
setupHeadResponse("/video_6628k_p61v17.mp4", 404);
136127
assertDetermineUrlHd(Optional.empty(), url);
137128
}
138129

139130
@Test
140131
public void determineUrlHdTestBothUrlExists() {
141-
final String url = getWireMockBaseUrlSafe() + "/video_1496k_p13v13.mp4";
142-
final String expectedUrl = getWireMockBaseUrlSafe() + "/video_3328k_p36v13.mp4";
132+
final String url = getWireMockBaseUrlSafe() + "/video_1628k_p13v17.mp4";
133+
final String expectedUrl = getWireMockBaseUrlSafe() + "/video_6660k_p37v17.mp4";
143134

144-
setupHeadResponse("/video_3328k_p36v13.mp4", 200);
145-
setupHeadResponse("/video_3296k_p15v13.mp4", 200);
135+
setupHeadResponse("/video_6660k_p37v17.mp4", 200);
136+
setupHeadResponse("/video_6628k_p61v17.mp4", 200);
146137
assertDetermineUrlHd(Optional.of(expectedUrl), url);
147138
}
148139

src/test/java/de/mediathekview/mserver/crawler/zdf/json/ZdfDownloadDtoDeserializerTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ public static Collection<Object[]> data() {
8080
{
8181
"/zdf/zdf_video_details1.json",
8282
"http://localhost:8589/none/zdf/16/06/160605_echte_kerle_das_duo_neo/6/160605_echte_kerle_das_duo_neo_436k_p9v12.mp4",
83-
"http://localhost:8589/none/zdf/16/06/160605_echte_kerle_das_duo_neo/6/160605_echte_kerle_das_duo_neo_1456k_p13v12.mp4",
8483
"http://localhost:8589/none/zdf/16/06/160605_echte_kerle_das_duo_neo/6/160605_echte_kerle_das_duo_neo_3328k_p36v12.mp4",
8584
"",
8685
"",
@@ -91,6 +90,7 @@ public static Collection<Object[]> data() {
9190
"",
9291
"",
9392
"",
93+
"",
9494
Optional.empty(),
9595
Optional.empty(),
9696
Optional.of(GeoLocations.GEO_NONE)
@@ -190,16 +190,16 @@ public static Collection<Object[]> data() {
190190
{
191191
"/zdf/zdf_video_details_uhd.json",
192192
"http://localhost:8589/none/zdf/23/01/230101_2015_sendung_trs/3/230101_2015_sendung_trs_a1a2_808k_p11v15.mp4",
193-
"http://localhost:8589/none/zdf/23/01/230101_2015_sendung_trs/3/230101_2015_sendung_trs_a1a2_1628k_p13v15.mp4",
193+
// "http://localhost:8589/none/zdf/23/01/230101_2015_sendung_trs/3/230101_2015_sendung_trs_a1a2_1628k_p13v15.mp4",
194194
"http://localhost:8589/none/zdf/23/01/230101_2015_sendung_trs/3/230101_2015_sendung_trs_a1a2_3328k_p15v15.mp4",
195-
"http://localhost:8589/none/zdf/23/01/230101_2015_sendung_trs/3/230101_2015_sendung_trs_a1a2_4692k_p72v16.mp4",
195+
"", "http://localhost:8589/none/zdf/23/01/230101_2015_sendung_trs/3/230101_2015_sendung_trs_a1a2_4692k_p72v16.mp4",
196196
"",
197197
"",
198198
"",
199199
"",
200200
"http://localhost:8589/none/zdf/23/01/230101_2015_sendung_trs/3/230101_2015_sendung_trs_a3a4_808k_p11v15.mp4",
201-
"http://localhost:8589/none/zdf/23/01/230101_2015_sendung_trs/3/230101_2015_sendung_trs_a3a4_1628k_p13v15.mp4",
202201
"http://localhost:8589/none/zdf/23/01/230101_2015_sendung_trs/3/230101_2015_sendung_trs_a3a4_3328k_p15v15.mp4",
202+
"",
203203
"http://localhost:8589/none/zdf/23/01/230101_2015_sendung_trs/3/230101_2015_sendung_trs_a3a4_4692k_p72v16.mp4",
204204
Optional.of(
205205
"https://utstreaming.zdf.de/mtt/zdf/23/01/230101_2015_sendung_trs/6/F1037067_hoh_deu_Das_Traumschiff_Bahamas_Karibik_final_010123.xml"),
@@ -209,7 +209,7 @@ public static Collection<Object[]> data() {
209209
{
210210
"/zdf/zdf_video_details_fhd.json",
211211
"http://localhost:8589/dach/zdf/20/12/201222_schwarm_meerestroemung_tex/3/201222_schwarm_meerestroemung_tex_808k_p11v17.mp4",
212-
"http://localhost:8589/dach/zdf/20/12/201222_schwarm_meerestroemung_tex/3/201222_schwarm_meerestroemung_tex_1628k_p13v17.mp4",
212+
"http://localhost:8589/dach/zdf/20/12/201222_schwarm_meerestroemung_tex/3/201222_schwarm_meerestroemung_tex_3328k_p15v17.mp4",
213213
"http://localhost:8589/dach/zdf/20/12/201222_schwarm_meerestroemung_tex/3/201222_schwarm_meerestroemung_tex_6628k_p61v17.mp4",
214214
"",
215215
"",
@@ -227,15 +227,15 @@ public static Collection<Object[]> data() {
227227
{
228228
"/zdf/zdf_video_details_eng_ut.json",
229229
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a1a2_808k_p11v17.mp4",
230-
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a1a2_1628k_p13v17.mp4",
230+
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a1a2_3328k_p15v17.mp4",
231231
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a1a2_6628k_p61v17.mp4",
232232
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a1a2_4692k_p72v16.mp4",
233233
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a3a4_808k_p11v17.mp4",
234-
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a3a4_1628k_p13v17.mp4",
234+
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a3a4_3328k_p15v17.mp4",
235235
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a3a4_6628k_p61v17.mp4",
236236
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a3a4_4692k_p72v16.mp4",
237237
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a5a6_808k_p11v17.mp4",
238-
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a5a6_1628k_p13v17.mp4",
238+
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a5a6_3328k_p15v17.mp4",
239239
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a5a6_6628k_p61v17.mp4",
240240
"http://localhost:8589/de/zdf/23/02/230222_1001_sendung_swm/7/230222_1001_sendung_swm_a5a6_4692k_p72v16.mp4",
241241
Optional.of(

0 commit comments

Comments
 (0)