Skip to content

Commit 612ec06

Browse files
committed
Actually fix thumbnail URLs starting with //
1 parent f946310 commit 612ec06

7 files changed

Lines changed: 32 additions & 74 deletions

File tree

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

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,8 @@
2525

2626
import javax.annotation.Nonnull;
2727

28+
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.fixThumbnailUrl;
2829
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
29-
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
30-
import static org.schabi.newpipe.extractor.utils.Utils.HTTPS;
3130

3231
/*
3332
* Created by Christian Schabesberger on 25.07.16.
@@ -128,13 +127,7 @@ public String getAvatarUrl() throws ParsingException {
128127
String url = initialData.getObject("header").getObject("c4TabbedHeaderRenderer").getObject("avatar")
129128
.getArray("thumbnails").getObject(0).getString("url");
130129

131-
if (url.startsWith(HTTP)) {
132-
url = Utils.replaceHttpWithHttps(url);
133-
} else if (!url.startsWith(HTTPS)) {
134-
url = HTTPS + url;
135-
}
136-
137-
return url;
130+
return fixThumbnailUrl(url);
138131
} catch (Exception e) {
139132
throw new ParsingException("Could not get avatar", e);
140133
}
@@ -152,13 +145,7 @@ public String getBannerUrl() throws ParsingException {
152145
return null;
153146
}
154147

155-
if (url.startsWith(HTTP)) {
156-
url = Utils.replaceHttpWithHttps(url);
157-
} else if (!url.startsWith(HTTPS)) {
158-
url = HTTPS + url;
159-
}
160-
161-
return url;
148+
return fixThumbnailUrl(url);
162149
} catch (Exception e) {
163150
throw new ParsingException("Could not get banner", e);
164151
}

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

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@
77
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeChannelLinkHandlerFactory;
88
import org.schabi.newpipe.extractor.utils.Utils;
99

10+
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.fixThumbnailUrl;
1011
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
11-
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
12-
import static org.schabi.newpipe.extractor.utils.Utils.HTTPS;
1312

1413
/*
1514
* Created by Christian Schabesberger on 12.02.17.
@@ -43,13 +42,7 @@ public String getThumbnailUrl() throws ParsingException {
4342
try {
4443
String url = channelInfoItem.getObject("thumbnail").getArray("thumbnails").getObject(0).getString("url");
4544

46-
if (url.startsWith(HTTP)) {
47-
url = Utils.replaceHttpWithHttps(url);
48-
} else if (!url.startsWith(HTTPS)) {
49-
url = HTTPS + url;
50-
}
51-
52-
return url;
45+
return fixThumbnailUrl(url);
5346
} catch (Exception e) {
5447
throw new ParsingException("Could not get thumbnail url", e);
5548
}

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

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,9 @@
2525

2626
import javax.annotation.Nonnull;
2727

28+
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.fixThumbnailUrl;
2829
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
2930
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getUrlFromNavigationEndpoint;
30-
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
31-
import static org.schabi.newpipe.extractor.utils.Utils.HTTPS;
3231

3332
@SuppressWarnings("WeakerAccess")
3433
public class YoutubePlaylistExtractor extends PlaylistExtractor {
@@ -136,13 +135,7 @@ public String getThumbnailUrl() throws ParsingException {
136135
}
137136

138137
if (url != null && !url.isEmpty()) {
139-
if (url.startsWith(HTTP)) {
140-
url = Utils.replaceHttpWithHttps(url);
141-
} else if (!url.startsWith(HTTPS)) {
142-
url = HTTPS + url;
143-
}
144-
145-
return url;
138+
return fixThumbnailUrl(url);
146139
}
147140
throw new ParsingException("Could not get playlist thumbnail");
148141
}
@@ -176,13 +169,7 @@ public String getUploaderAvatarUrl() throws ParsingException {
176169
try {
177170
String url = getUploaderInfo().getObject("thumbnail").getArray("thumbnails").getObject(0).getString("url");
178171

179-
if (url.startsWith(HTTP)) {
180-
url = Utils.replaceHttpWithHttps(url);
181-
} else if (!url.startsWith(HTTPS)) {
182-
url = HTTPS + url;
183-
}
184-
185-
return url;
172+
return fixThumbnailUrl(url);
186173
} catch (Exception e) {
187174
throw new ParsingException("Could not get playlist uploader avatar", e);
188175
}

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

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@
77
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubePlaylistLinkHandlerFactory;
88
import org.schabi.newpipe.extractor.utils.Utils;
99

10+
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.fixThumbnailUrl;
1011
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
11-
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
12-
import static org.schabi.newpipe.extractor.utils.Utils.HTTPS;
1312

1413
public class YoutubePlaylistInfoItemExtractor implements PlaylistInfoItemExtractor {
1514
private JsonObject playlistInfoItem;
@@ -24,13 +23,7 @@ public String getThumbnailUrl() throws ParsingException {
2423
String url = playlistInfoItem.getArray("thumbnails").getObject(0)
2524
.getArray("thumbnails").getObject(0).getString("url");
2625

27-
if (url.startsWith(HTTP)) {
28-
url = Utils.replaceHttpWithHttps(url);
29-
} else if (!url.startsWith(HTTPS)) {
30-
url = HTTPS + url;
31-
}
32-
33-
return url;
26+
return fixThumbnailUrl(url);
3427
} catch (Exception e) {
3528
throw new ParsingException("Could not get thumbnail url", e);
3629
}

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

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,9 @@
5454
import javax.annotation.Nonnull;
5555
import javax.annotation.Nullable;
5656

57+
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.fixThumbnailUrl;
5758
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
5859
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getUrlFromNavigationEndpoint;
59-
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
6060

6161
/*
6262
* Created by Christian Schabesberger on 06.08.15.
@@ -189,13 +189,7 @@ public String getThumbnailUrl() throws ParsingException {
189189
// the last thumbnail is the one with the highest resolution
190190
String url = thumbnails.getObject(thumbnails.size() - 1).getString("url");
191191

192-
if (url.startsWith(HTTP)) {
193-
url = Utils.replaceHttpWithHttps(url);
194-
} else if (!url.startsWith(HTTPS)) {
195-
url = HTTPS + url;
196-
}
197-
198-
return url;
192+
return fixThumbnailUrl(url);
199193
} catch (Exception e) {
200194
throw new ParsingException("Could not get thumbnail url");
201195
}
@@ -369,13 +363,7 @@ public String getUploaderAvatarUrl() throws ParsingException {
369363
String url = getVideoSecondaryInfoRenderer().getObject("owner").getObject("videoOwnerRenderer")
370364
.getObject("thumbnail").getArray("thumbnails").getObject(0).getString("url");
371365

372-
if (url.startsWith(HTTP)) {
373-
url = Utils.replaceHttpWithHttps(url);
374-
} else if (!url.startsWith(HTTPS)) {
375-
url = HTTPS + url;
376-
}
377-
378-
return url;
366+
return fixThumbnailUrl(url);
379367
} catch (Exception e) {
380368
throw new ParsingException("Could not get uploader avatar url", e);
381369
}

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

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,9 @@
1414

1515
import javax.annotation.Nullable;
1616

17+
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.fixThumbnailUrl;
1718
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
1819
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getUrlFromNavigationEndpoint;
19-
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
20-
import static org.schabi.newpipe.extractor.utils.Utils.HTTPS;
2120

2221
/*
2322
* Copyright (C) Christian Schabesberger 2016 <chris.schabesberger@mailbox.org>
@@ -201,13 +200,7 @@ public String getThumbnailUrl() throws ParsingException {
201200
String url = videoInfo.getObject("thumbnail").getArray("thumbnails")
202201
.getObject(0).getString("url");
203202

204-
if (url.startsWith(HTTP)) {
205-
url = Utils.replaceHttpWithHttps(url);
206-
} else if (!url.startsWith(HTTPS)) {
207-
url = HTTPS + url;
208-
}
209-
210-
return url;
203+
return fixThumbnailUrl(url);
211204
} catch (Exception e) {
212205
throw new ParsingException("Could not get thumbnail url", e);
213206
}

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.schabi.newpipe.extractor.exceptions.ParsingException;
1313
import org.schabi.newpipe.extractor.exceptions.ReCaptchaException;
1414
import org.schabi.newpipe.extractor.utils.Parser;
15+
import org.schabi.newpipe.extractor.utils.Utils;
1516

1617
import java.io.UnsupportedEncodingException;
1718
import java.net.URL;
@@ -27,6 +28,8 @@
2728
import java.util.Map;
2829

2930
import static org.schabi.newpipe.extractor.NewPipe.getDownloader;
31+
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
32+
import static org.schabi.newpipe.extractor.utils.Utils.HTTPS;
3033

3134
/*
3235
* Created by Christian Schabesberger on 02.03.16.
@@ -319,4 +322,18 @@ public static String getTextFromObject(JsonObject textObject, boolean html) {
319322
public static String getTextFromObject(JsonObject textObject) {
320323
return getTextFromObject(textObject, false);
321324
}
325+
326+
public static String fixThumbnailUrl(String thumbnailUrl) {
327+
if (thumbnailUrl.startsWith("//")) {
328+
thumbnailUrl = thumbnailUrl.substring(2);
329+
}
330+
331+
if (thumbnailUrl.startsWith(HTTP)) {
332+
thumbnailUrl = Utils.replaceHttpWithHttps(thumbnailUrl);
333+
} else if (!thumbnailUrl.startsWith(HTTPS)) {
334+
thumbnailUrl = "https://" + thumbnailUrl;
335+
}
336+
337+
return thumbnailUrl;
338+
}
322339
}

0 commit comments

Comments
 (0)