Skip to content

Commit 1a8a93d

Browse files
committed
fix arte removed api /v1/config
2 parents 3e873c2 + 709d48e commit 1a8a93d

File tree

5 files changed

+14
-37
lines changed

5 files changed

+14
-37
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ sourceCompatibility = 1.8
1717
targetCompatibility = 1.8
1818
group = 'de.mediathekview'
1919
archivesBaseName = "MServer"
20-
version = '3.1.193'
20+
version = '3.1.194'
2121

2222
def jarName = 'MServer.jar'
2323
def mainClass = 'mServer.Main'

src/main/java/mServer/crawler/sender/arte/ArteHttpClient.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ public static <T> T executeRequest(final String sender, Logger logger, Gson gson
8181
} else {
8282
if (response.code() != 429) {
8383
logger.error(String.format("ARTE Request '%s' failed: %s", aUrl, response.code()));
84+
Log.sysLog(String.format("ARTE Request '%s' failed: %s", aUrl, response.code()));
8485
FilmeSuchen.listeSenderLaufen.inc(sender, RunSender.Count.FEHLER);
8586
stop = true;
8687
} else {

src/main/java/mServer/crawler/sender/arte/ArteProgramIdToDatenFilmCallable.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public class ArteProgramIdToDatenFilmCallable implements Callable<Set<DatenFilm>
2525

2626
private static final Logger LOG = LogManager.getLogger(ArteProgramIdToDatenFilmCallable.class);
2727

28-
private static final String ARTE_VIDEO_INFORMATION_URL_PATTERN = "https://api.arte.tv/api/player/v1/config/%s/%s?platform=ARTE_NEXT";
28+
private static final String ARTE_VIDEO_INFORMATION_URL_PATTERN = "https://api.arte.tv/api/opa/v3/videoStreams?programId=%s&mediaType=mp4&limit=100&language=%s";
2929
private static final String ARTE_VIDEO_INFORMATION_URL_PATTERN_2 = "https://api.arte.tv/api/opa/v3/programs/%s/%s"; // Für broadcastBeginRounded
3030

3131
private final FastDateFormat broadcastDateFormat = FastDateFormat.getInstance("yyyy-MM-dd'T'HH:mm:ssX");//2016-10-29T16:15:00Z
@@ -52,7 +52,7 @@ public Set<DatenFilm> call() throws Exception {
5252
.registerTypeAdapter(ArteVideoDetailsDTO.class, new ArteVideoDetailsDeserializer(today))
5353
.create();
5454

55-
String videosUrl = String.format(ARTE_VIDEO_INFORMATION_URL_PATTERN, langCode, programId);
55+
String videosUrl = String.format(ARTE_VIDEO_INFORMATION_URL_PATTERN, programId, langCode);
5656
ArteVideoDTO video = ArteHttpClient.executeRequest(senderName, LOG, gson, videosUrl, ArteVideoDTO.class);
5757

5858
if (video != null) {

src/main/java/mServer/crawler/sender/arte/ArteVideoDeserializer.java

Lines changed: 8 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,22 @@
11
package mServer.crawler.sender.arte;
22

3-
import com.google.gson.JsonDeserializationContext;
4-
import com.google.gson.JsonDeserializer;
5-
import com.google.gson.JsonElement;
6-
import com.google.gson.JsonObject;
3+
import com.google.gson.*;
74
import mServer.crawler.sender.base.Qualities;
85
import org.apache.logging.log4j.LogManager;
96
import org.apache.logging.log4j.Logger;
107

118
import java.lang.reflect.Type;
12-
import java.time.Duration;
13-
import java.util.Map;
149
import java.util.Optional;
15-
import java.util.Set;
1610

1711
public class ArteVideoDeserializer
1812
implements JsonDeserializer<ArteVideoDTO> {
1913

2014
private static final Logger LOG = LogManager.getLogger(ArteVideoDeserializer.class);
2115

22-
private static final String JSON_OBJECT_KEY_PLAYER = "videoJsonPlayer";
23-
private static final String JSON_OBJECT_KEY_VSR = "VSR";
24-
private static final String ATTRIBUTE_DURATION = "videoDurationSeconds";
16+
private static final String JSON_OBJECT_KEY_PLAYER = "videoStreams";
2517
private static final String ATTRIBUTE_URL = "url";
2618
private static final String ATTRIBUTE_QUALITY = "quality";
27-
private static final String ATTRIBUTE_VERSION_CODE = "versionCode";
19+
private static final String ATTRIBUTE_VERSION_CODE = "audioCode";
2820

2921
private final String sender;
3022

@@ -38,29 +30,13 @@ public ArteVideoDTO deserialize(
3830
ArteVideoDTO arteVideoDTO = new ArteVideoDTO();
3931
if (aJsonElement.isJsonObject()
4032
&& aJsonElement.getAsJsonObject().has(JSON_OBJECT_KEY_PLAYER)
41-
&& aJsonElement.getAsJsonObject().get(JSON_OBJECT_KEY_PLAYER).isJsonObject()
42-
&& aJsonElement
43-
.getAsJsonObject()
44-
.get(JSON_OBJECT_KEY_PLAYER)
45-
.getAsJsonObject()
46-
.has(JSON_OBJECT_KEY_VSR)
47-
&& aJsonElement
48-
.getAsJsonObject()
49-
.get(JSON_OBJECT_KEY_PLAYER)
50-
.getAsJsonObject()
51-
.get(JSON_OBJECT_KEY_VSR)
52-
.isJsonObject()) {
53-
JsonObject playerObject =
54-
aJsonElement.getAsJsonObject().get(JSON_OBJECT_KEY_PLAYER).getAsJsonObject();
55-
JsonObject vsrJsonObject = playerObject.get(JSON_OBJECT_KEY_VSR).getAsJsonObject();
33+
&& aJsonElement.getAsJsonObject().get(JSON_OBJECT_KEY_PLAYER).isJsonArray()) {
34+
JsonArray videoStreams =
35+
aJsonElement.getAsJsonObject().get(JSON_OBJECT_KEY_PLAYER).getAsJsonArray();
5636

57-
final long duration = playerObject.has(ATTRIBUTE_DURATION) ? playerObject.get(ATTRIBUTE_DURATION).getAsLong() : 0;
58-
arteVideoDTO.setDuration(Duration.ofSeconds(duration));
59-
60-
final Set<Map.Entry<String, JsonElement>> entries = vsrJsonObject.entrySet();
61-
entries.forEach(
37+
videoStreams.forEach(
6238
entry -> {
63-
final JsonObject value = entry.getValue().getAsJsonObject();
39+
final JsonObject value = entry.getAsJsonObject();
6440

6541
final String code = value.get(ATTRIBUTE_VERSION_CODE).getAsString();
6642
final String quality = value.get(ATTRIBUTE_QUALITY).getAsString();

src/main/java/mServer/crawler/sender/arte/MediathekArte.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,13 +91,13 @@ protected synchronized void meldungStart() {
9191

9292
senderLanguages.put(Const.ARTE_DE, "de");
9393
senderLanguages.put(Const.ARTE_FR, "fr");
94-
if (LocalDate.now().getDayOfYear() % 2 == 0) {
94+
/*if (LocalDate.now().getDayOfYear() % 2 == 0) {
9595
senderLanguages.put(ARTE_EN, "en");
9696
senderLanguages.put(ARTE_ES, "es");
9797
} else {
9898
senderLanguages.put(ARTE_IT, "it");
9999
senderLanguages.put(ARTE_PL, "pl");
100-
}
100+
}*/
101101

102102
// starte Sprachen Sender, da es sonst zu doppelten Sendern kommen kann
103103
senderLanguages.keySet().forEach(sender -> mlibFilmeSuchen.melden(sender, getMax(), getProgress(), ""));

0 commit comments

Comments
 (0)