Skip to content

Commit a931e31

Browse files
committed
fix tests
1 parent d116680 commit a931e31

3 files changed

Lines changed: 26 additions & 3 deletions

File tree

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeParsingHelper.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,10 +429,16 @@ public static String[] getYoutubeMusicKeys() throws IOException, ReCaptchaExcept
429429
return youtubeMusicKeys = new String[]{key, clientName, clientVersion};
430430
}
431431

432+
433+
432434
@Nullable
433435
public static String getUrlFromNavigationEndpoint(JsonObject navigationEndpoint) throws ParsingException {
434436
if (navigationEndpoint.has("urlEndpoint")) {
435437
String internUrl = navigationEndpoint.getObject("urlEndpoint").getString("url");
438+
if (internUrl.startsWith("https://www.youtube.com/redirect?")) {
439+
internUrl = internUrl.substring(23);
440+
}
441+
436442
if (internUrl.startsWith("/redirect?")) {
437443
// q parameter can be the first parameter
438444
internUrl = internUrl.substring(10);
@@ -450,6 +456,8 @@ public static String getUrlFromNavigationEndpoint(JsonObject navigationEndpoint)
450456
}
451457
} else if (internUrl.startsWith("http")) {
452458
return internUrl;
459+
} else if (internUrl.startsWith("/channel") || internUrl.startsWith("/user") || internUrl.startsWith("/watch")) {
460+
return "https://www.youtube.com" + internUrl;
453461
}
454462
} else if (navigationEndpoint.has("browseEndpoint")) {
455463
final JsonObject browseEndpoint = navigationEndpoint.getObject("browseEndpoint");

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ public String getThumbnailUrl() throws ParsingException {
224224

225225
@Nonnull
226226
@Override
227-
public Description getDescription() {
227+
public Description getDescription() throws ParsingException {
228228
assertPageFetched();
229229
// description with more info on links
230230
try {
@@ -234,8 +234,15 @@ public Description getDescription() {
234234
// age-restricted videos cause a ParsingException here
235235
}
236236

237+
String description = playerResponse.getObject("videoDetails").getString("shortDescription");
238+
if (description == null) {
239+
final JsonObject descriptionObject = playerResponse.getObject("microformat")
240+
.getObject("playerMicroformatRenderer").getObject("description");
241+
description = getTextFromObject(descriptionObject);
242+
}
243+
237244
// raw non-html description
238-
return new Description(playerResponse.getObject("videoDetails").getString("shortDescription"), Description.PLAIN_TEXT);
245+
return new Description(description, Description.PLAIN_TEXT);
239246
}
240247

241248
@Override

extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeTrendingExtractor.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,15 @@ public InfoItemsPage<StreamInfoItem> getPage(final Page page) {
6969
@Nonnull
7070
@Override
7171
public String getName() throws ParsingException {
72-
String name = getTextFromObject(initialData.getObject("header").getObject("feedTabbedHeaderRenderer").getObject("title"));
72+
final JsonObject header = initialData.getObject("header");
73+
JsonObject title = null;
74+
if (header.has("feedTabbedHeaderRenderer")) {
75+
title = header.getObject("feedTabbedHeaderRenderer").getObject("title");
76+
} else if (header.has("c4TabbedHeaderRenderer")) {
77+
title = header.getObject("c4TabbedHeaderRenderer").getObject("title");
78+
}
79+
80+
String name = getTextFromObject(title);
7381
if (!isNullOrEmpty(name)) {
7482
return name;
7583
}

0 commit comments

Comments
 (0)