Actually fix thumbnail URLs starting with //
This commit is contained in:
parent
f946310af5
commit
612ec06839
|
@ -25,9 +25,8 @@ import java.util.Map;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.fixThumbnailUrl;
|
||||||
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
|
||||||
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
|
|
||||||
import static org.schabi.newpipe.extractor.utils.Utils.HTTPS;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Created by Christian Schabesberger on 25.07.16.
|
* Created by Christian Schabesberger on 25.07.16.
|
||||||
|
@ -128,13 +127,7 @@ public class YoutubeChannelExtractor extends ChannelExtractor {
|
||||||
String url = initialData.getObject("header").getObject("c4TabbedHeaderRenderer").getObject("avatar")
|
String url = initialData.getObject("header").getObject("c4TabbedHeaderRenderer").getObject("avatar")
|
||||||
.getArray("thumbnails").getObject(0).getString("url");
|
.getArray("thumbnails").getObject(0).getString("url");
|
||||||
|
|
||||||
if (url.startsWith(HTTP)) {
|
return fixThumbnailUrl(url);
|
||||||
url = Utils.replaceHttpWithHttps(url);
|
|
||||||
} else if (!url.startsWith(HTTPS)) {
|
|
||||||
url = HTTPS + url;
|
|
||||||
}
|
|
||||||
|
|
||||||
return url;
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new ParsingException("Could not get avatar", e);
|
throw new ParsingException("Could not get avatar", e);
|
||||||
}
|
}
|
||||||
|
@ -152,13 +145,7 @@ public class YoutubeChannelExtractor extends ChannelExtractor {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (url.startsWith(HTTP)) {
|
return fixThumbnailUrl(url);
|
||||||
url = Utils.replaceHttpWithHttps(url);
|
|
||||||
} else if (!url.startsWith(HTTPS)) {
|
|
||||||
url = HTTPS + url;
|
|
||||||
}
|
|
||||||
|
|
||||||
return url;
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new ParsingException("Could not get banner", e);
|
throw new ParsingException("Could not get banner", e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,9 +7,8 @@ import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
||||||
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeChannelLinkHandlerFactory;
|
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeChannelLinkHandlerFactory;
|
||||||
import org.schabi.newpipe.extractor.utils.Utils;
|
import org.schabi.newpipe.extractor.utils.Utils;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.fixThumbnailUrl;
|
||||||
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
|
||||||
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
|
|
||||||
import static org.schabi.newpipe.extractor.utils.Utils.HTTPS;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Created by Christian Schabesberger on 12.02.17.
|
* Created by Christian Schabesberger on 12.02.17.
|
||||||
|
@ -43,13 +42,7 @@ public class YoutubeChannelInfoItemExtractor implements ChannelInfoItemExtractor
|
||||||
try {
|
try {
|
||||||
String url = channelInfoItem.getObject("thumbnail").getArray("thumbnails").getObject(0).getString("url");
|
String url = channelInfoItem.getObject("thumbnail").getArray("thumbnails").getObject(0).getString("url");
|
||||||
|
|
||||||
if (url.startsWith(HTTP)) {
|
return fixThumbnailUrl(url);
|
||||||
url = Utils.replaceHttpWithHttps(url);
|
|
||||||
} else if (!url.startsWith(HTTPS)) {
|
|
||||||
url = HTTPS + url;
|
|
||||||
}
|
|
||||||
|
|
||||||
return url;
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new ParsingException("Could not get thumbnail url", e);
|
throw new ParsingException("Could not get thumbnail url", e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,10 +25,9 @@ import java.util.Map;
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.fixThumbnailUrl;
|
||||||
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
|
||||||
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getUrlFromNavigationEndpoint;
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getUrlFromNavigationEndpoint;
|
||||||
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
|
|
||||||
import static org.schabi.newpipe.extractor.utils.Utils.HTTPS;
|
|
||||||
|
|
||||||
@SuppressWarnings("WeakerAccess")
|
@SuppressWarnings("WeakerAccess")
|
||||||
public class YoutubePlaylistExtractor extends PlaylistExtractor {
|
public class YoutubePlaylistExtractor extends PlaylistExtractor {
|
||||||
|
@ -136,13 +135,7 @@ public class YoutubePlaylistExtractor extends PlaylistExtractor {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (url != null && !url.isEmpty()) {
|
if (url != null && !url.isEmpty()) {
|
||||||
if (url.startsWith(HTTP)) {
|
return fixThumbnailUrl(url);
|
||||||
url = Utils.replaceHttpWithHttps(url);
|
|
||||||
} else if (!url.startsWith(HTTPS)) {
|
|
||||||
url = HTTPS + url;
|
|
||||||
}
|
|
||||||
|
|
||||||
return url;
|
|
||||||
}
|
}
|
||||||
throw new ParsingException("Could not get playlist thumbnail");
|
throw new ParsingException("Could not get playlist thumbnail");
|
||||||
}
|
}
|
||||||
|
@ -176,13 +169,7 @@ public class YoutubePlaylistExtractor extends PlaylistExtractor {
|
||||||
try {
|
try {
|
||||||
String url = getUploaderInfo().getObject("thumbnail").getArray("thumbnails").getObject(0).getString("url");
|
String url = getUploaderInfo().getObject("thumbnail").getArray("thumbnails").getObject(0).getString("url");
|
||||||
|
|
||||||
if (url.startsWith(HTTP)) {
|
return fixThumbnailUrl(url);
|
||||||
url = Utils.replaceHttpWithHttps(url);
|
|
||||||
} else if (!url.startsWith(HTTPS)) {
|
|
||||||
url = HTTPS + url;
|
|
||||||
}
|
|
||||||
|
|
||||||
return url;
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new ParsingException("Could not get playlist uploader avatar", e);
|
throw new ParsingException("Could not get playlist uploader avatar", e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,9 +7,8 @@ import org.schabi.newpipe.extractor.playlist.PlaylistInfoItemExtractor;
|
||||||
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubePlaylistLinkHandlerFactory;
|
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubePlaylistLinkHandlerFactory;
|
||||||
import org.schabi.newpipe.extractor.utils.Utils;
|
import org.schabi.newpipe.extractor.utils.Utils;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.fixThumbnailUrl;
|
||||||
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
|
||||||
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
|
|
||||||
import static org.schabi.newpipe.extractor.utils.Utils.HTTPS;
|
|
||||||
|
|
||||||
public class YoutubePlaylistInfoItemExtractor implements PlaylistInfoItemExtractor {
|
public class YoutubePlaylistInfoItemExtractor implements PlaylistInfoItemExtractor {
|
||||||
private JsonObject playlistInfoItem;
|
private JsonObject playlistInfoItem;
|
||||||
|
@ -24,13 +23,7 @@ public class YoutubePlaylistInfoItemExtractor implements PlaylistInfoItemExtract
|
||||||
String url = playlistInfoItem.getArray("thumbnails").getObject(0)
|
String url = playlistInfoItem.getArray("thumbnails").getObject(0)
|
||||||
.getArray("thumbnails").getObject(0).getString("url");
|
.getArray("thumbnails").getObject(0).getString("url");
|
||||||
|
|
||||||
if (url.startsWith(HTTP)) {
|
return fixThumbnailUrl(url);
|
||||||
url = Utils.replaceHttpWithHttps(url);
|
|
||||||
} else if (!url.startsWith(HTTPS)) {
|
|
||||||
url = HTTPS + url;
|
|
||||||
}
|
|
||||||
|
|
||||||
return url;
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new ParsingException("Could not get thumbnail url", e);
|
throw new ParsingException("Could not get thumbnail url", e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,9 +54,9 @@ import java.util.Map;
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.fixThumbnailUrl;
|
||||||
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
|
||||||
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getUrlFromNavigationEndpoint;
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getUrlFromNavigationEndpoint;
|
||||||
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Created by Christian Schabesberger on 06.08.15.
|
* Created by Christian Schabesberger on 06.08.15.
|
||||||
|
@ -189,13 +189,7 @@ public class YoutubeStreamExtractor extends StreamExtractor {
|
||||||
// the last thumbnail is the one with the highest resolution
|
// the last thumbnail is the one with the highest resolution
|
||||||
String url = thumbnails.getObject(thumbnails.size() - 1).getString("url");
|
String url = thumbnails.getObject(thumbnails.size() - 1).getString("url");
|
||||||
|
|
||||||
if (url.startsWith(HTTP)) {
|
return fixThumbnailUrl(url);
|
||||||
url = Utils.replaceHttpWithHttps(url);
|
|
||||||
} else if (!url.startsWith(HTTPS)) {
|
|
||||||
url = HTTPS + url;
|
|
||||||
}
|
|
||||||
|
|
||||||
return url;
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new ParsingException("Could not get thumbnail url");
|
throw new ParsingException("Could not get thumbnail url");
|
||||||
}
|
}
|
||||||
|
@ -369,13 +363,7 @@ public class YoutubeStreamExtractor extends StreamExtractor {
|
||||||
String url = getVideoSecondaryInfoRenderer().getObject("owner").getObject("videoOwnerRenderer")
|
String url = getVideoSecondaryInfoRenderer().getObject("owner").getObject("videoOwnerRenderer")
|
||||||
.getObject("thumbnail").getArray("thumbnails").getObject(0).getString("url");
|
.getObject("thumbnail").getArray("thumbnails").getObject(0).getString("url");
|
||||||
|
|
||||||
if (url.startsWith(HTTP)) {
|
return fixThumbnailUrl(url);
|
||||||
url = Utils.replaceHttpWithHttps(url);
|
|
||||||
} else if (!url.startsWith(HTTPS)) {
|
|
||||||
url = HTTPS + url;
|
|
||||||
}
|
|
||||||
|
|
||||||
return url;
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new ParsingException("Could not get uploader avatar url", e);
|
throw new ParsingException("Could not get uploader avatar url", e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,10 +14,9 @@ import org.schabi.newpipe.extractor.utils.Utils;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.fixThumbnailUrl;
|
||||||
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getTextFromObject;
|
||||||
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getUrlFromNavigationEndpoint;
|
import static org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeParsingHelper.getUrlFromNavigationEndpoint;
|
||||||
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
|
|
||||||
import static org.schabi.newpipe.extractor.utils.Utils.HTTPS;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright (C) Christian Schabesberger 2016 <chris.schabesberger@mailbox.org>
|
* Copyright (C) Christian Schabesberger 2016 <chris.schabesberger@mailbox.org>
|
||||||
|
@ -201,13 +200,7 @@ public class YoutubeStreamInfoItemExtractor implements StreamInfoItemExtractor {
|
||||||
String url = videoInfo.getObject("thumbnail").getArray("thumbnails")
|
String url = videoInfo.getObject("thumbnail").getArray("thumbnails")
|
||||||
.getObject(0).getString("url");
|
.getObject(0).getString("url");
|
||||||
|
|
||||||
if (url.startsWith(HTTP)) {
|
return fixThumbnailUrl(url);
|
||||||
url = Utils.replaceHttpWithHttps(url);
|
|
||||||
} else if (!url.startsWith(HTTPS)) {
|
|
||||||
url = HTTPS + url;
|
|
||||||
}
|
|
||||||
|
|
||||||
return url;
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new ParsingException("Could not get thumbnail url", e);
|
throw new ParsingException("Could not get thumbnail url", e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import org.schabi.newpipe.extractor.downloader.Response;
|
||||||
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
||||||
import org.schabi.newpipe.extractor.exceptions.ReCaptchaException;
|
import org.schabi.newpipe.extractor.exceptions.ReCaptchaException;
|
||||||
import org.schabi.newpipe.extractor.utils.Parser;
|
import org.schabi.newpipe.extractor.utils.Parser;
|
||||||
|
import org.schabi.newpipe.extractor.utils.Utils;
|
||||||
|
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
|
@ -27,6 +28,8 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import static org.schabi.newpipe.extractor.NewPipe.getDownloader;
|
import static org.schabi.newpipe.extractor.NewPipe.getDownloader;
|
||||||
|
import static org.schabi.newpipe.extractor.utils.Utils.HTTP;
|
||||||
|
import static org.schabi.newpipe.extractor.utils.Utils.HTTPS;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Created by Christian Schabesberger on 02.03.16.
|
* Created by Christian Schabesberger on 02.03.16.
|
||||||
|
@ -319,4 +322,18 @@ public class YoutubeParsingHelper {
|
||||||
public static String getTextFromObject(JsonObject textObject) {
|
public static String getTextFromObject(JsonObject textObject) {
|
||||||
return getTextFromObject(textObject, false);
|
return getTextFromObject(textObject, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String fixThumbnailUrl(String thumbnailUrl) {
|
||||||
|
if (thumbnailUrl.startsWith("//")) {
|
||||||
|
thumbnailUrl = thumbnailUrl.substring(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (thumbnailUrl.startsWith(HTTP)) {
|
||||||
|
thumbnailUrl = Utils.replaceHttpWithHttps(thumbnailUrl);
|
||||||
|
} else if (!thumbnailUrl.startsWith(HTTPS)) {
|
||||||
|
thumbnailUrl = "https://" + thumbnailUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
return thumbnailUrl;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue