From 4f7d04ba9e90a272844713558564b8cf2de1fa31 Mon Sep 17 00:00:00 2001 From: "Yevhen Babiichuk (DustDFG)" Date: Thu, 12 Feb 2026 14:30:06 +0200 Subject: [PATCH 1/2] Refactor Extractor#onFetchPage to not recieve downloader as parameter We have only one global downloader so there is not so much sense in passing it as parameter. Moreover Extractor class has getDownloader method which is used with globale Newpipe.getDownloader in half of the extracotrs. So before it any extractor could get downloader in 3 ways: downloader parameter, getDownloader and Newpipe.getDownloader now downloader parameter is eliminated. Moreover all 3 methods to access downloader always point to the same globale downloader --- .../org/schabi/newpipe/extractor/Extractor.java | 7 ++----- .../extractors/BandcampChannelExtractor.java | 4 +--- .../extractors/BandcampChannelTabExtractor.java | 3 +-- .../extractors/BandcampCommentsExtractor.java | 6 ++---- .../extractors/BandcampFeaturedExtractor.java | 4 +--- .../extractors/BandcampPlaylistExtractor.java | 6 ++---- .../bandcamp/extractors/BandcampRadioExtractor.java | 4 +--- .../extractors/BandcampRadioStreamExtractor.java | 4 +--- .../extractors/BandcampSearchExtractor.java | 4 +--- .../extractors/BandcampStreamExtractor.java | 6 ++---- .../extractors/MediaCCCChannelTabExtractor.java | 6 ++---- .../extractors/MediaCCCConferenceExtractor.java | 13 ++++++------- .../extractors/MediaCCCConferenceKiosk.java | 5 ++--- .../extractors/MediaCCCLiveStreamExtractor.java | 7 ++----- .../extractors/MediaCCCLiveStreamKiosk.java | 6 ++---- .../media_ccc/extractors/MediaCCCParsingHelper.java | 11 +++++------ .../media_ccc/extractors/MediaCCCRecentKiosk.java | 6 ++---- .../extractors/MediaCCCSearchExtractor.java | 5 ++--- .../extractors/MediaCCCStreamExtractor.java | 5 ++--- .../extractors/PeertubeAccountExtractor.java | 6 ++---- .../extractors/PeertubeChannelExtractor.java | 6 ++---- .../extractors/PeertubeChannelTabExtractor.java | 3 +-- .../extractors/PeertubeCommentsExtractor.java | 3 +-- .../extractors/PeertubePlaylistExtractor.java | 6 ++---- .../extractors/PeertubeSearchExtractor.java | 4 +--- .../extractors/PeertubeStreamExtractor.java | 5 ++--- .../extractors/PeertubeTrendingExtractor.java | 4 +--- .../extractors/SoundcloudChannelExtractor.java | 5 ++--- .../extractors/SoundcloudChannelTabExtractor.java | 3 +-- .../extractors/SoundcloudChartsExtractor.java | 4 +--- .../extractors/SoundcloudCommentsExtractor.java | 2 +- .../extractors/SoundcloudPlaylistExtractor.java | 6 ++---- .../extractors/SoundcloudSearchExtractor.java | 3 +-- .../extractors/SoundcloudStreamExtractor.java | 6 ++---- .../youtube/extractors/YoutubeChannelExtractor.java | 4 +--- .../extractors/YoutubeChannelTabExtractor.java | 6 ++---- .../YoutubeChannelTabPlaylistExtractor.java | 6 ++---- .../extractors/YoutubeCommentsExtractor.java | 4 +--- .../youtube/extractors/YoutubeFeedExtractor.java | 6 ++---- .../extractors/YoutubeMixPlaylistExtractor.java | 4 +--- .../extractors/YoutubeMusicSearchExtractor.java | 4 +--- .../extractors/YoutubePlaylistExtractor.java | 4 +--- .../youtube/extractors/YoutubeSearchExtractor.java | 4 +--- .../youtube/extractors/YoutubeStreamExtractor.java | 4 +--- .../kiosk/YoutubeChartsBaseKioskExtractor.java | 4 +--- .../kiosk/YoutubeDesktopBaseKioskExtractor.java | 4 +--- .../extractors/kiosk/YoutubeTrendingExtractor.java | 4 +--- .../kiosk/YoutubeTrendingMusicExtractor.java | 6 ++---- 48 files changed, 79 insertions(+), 163 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java index e973b44167..4d0aa42d0e 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java @@ -57,7 +57,7 @@ public void fetchPage() throws IOException, ExtractionException { if (pageFetched) { return; } - onFetchPage(downloader); + onFetchPage(); pageFetched = true; } @@ -74,13 +74,10 @@ protected boolean isPageFetched() { /** * Fetch the current page. * - * @param downloader the downloader to use * @throws IOException if the page can not be loaded * @throws ExtractionException if the pages content is not understood */ - @SuppressWarnings("HiddenField") - public abstract void onFetchPage(@Nonnull Downloader downloader) - throws IOException, ExtractionException; + public abstract void onFetchPage() throws IOException, ExtractionException; @Nonnull public String getId() throws ParsingException { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampChannelExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampChannelExtractor.java index ac44cbb8d8..663bcb7fc6 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampChannelExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampChannelExtractor.java @@ -17,7 +17,6 @@ import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.ChannelExtractor; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabExtractor; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.exceptions.ReCaptchaException; @@ -163,8 +162,7 @@ public List getTabs() throws ParsingException { } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { channelInfo = getArtistDetails(getId()); } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampChannelTabExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampChannelTabExtractor.java index b4110e9e93..18d46fe326 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampChannelTabExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampChannelTabExtractor.java @@ -8,7 +8,6 @@ import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabExtractor; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; @@ -48,7 +47,7 @@ public static BandcampChannelTabExtractor fromDiscography(final StreamingService } @Override - public void onFetchPage(@Nonnull final Downloader downloader) throws ParsingException { + public void onFetchPage() throws ParsingException { if (discography == null) { discography = BandcampExtractorHelper.getArtistDetails(getId()) .getArray("discography"); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampCommentsExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampCommentsExtractor.java index 5d38ea87de..760ffb3a1a 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampCommentsExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampCommentsExtractor.java @@ -13,7 +13,6 @@ import org.schabi.newpipe.extractor.comments.CommentsExtractor; import org.schabi.newpipe.extractor.comments.CommentsInfoItem; import org.schabi.newpipe.extractor.comments.CommentsInfoItemsCollector; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.exceptions.ReCaptchaException; @@ -40,9 +39,8 @@ public BandcampCommentsExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { - document = Jsoup.parse(downloader.get(getLinkHandler().getUrl()).responseBody()); + public void onFetchPage() throws IOException, ExtractionException { + document = Jsoup.parse(getDownloader().get(getLinkHandler().getUrl()).responseBody()); } @Nonnull diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampFeaturedExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampFeaturedExtractor.java index cf17961970..80d3342e70 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampFeaturedExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampFeaturedExtractor.java @@ -8,7 +8,6 @@ import com.grack.nanojson.JsonParserException; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.kiosk.KioskExtractor; @@ -39,8 +38,7 @@ public BandcampFeaturedExtractor(final StreamingService streamingService, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { try { json = JsonParser.object().from(getDownloader().postWithContentTypeJson( FEATURED_API_URL, diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampPlaylistExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampPlaylistExtractor.java index ee5dc92134..f71b4e4d82 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampPlaylistExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampPlaylistExtractor.java @@ -17,7 +17,6 @@ import org.schabi.newpipe.extractor.Image; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.PaidContentException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -54,9 +53,8 @@ public BandcampPlaylistExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { - final String html = downloader.get(getLinkHandler().getUrl()).responseBody(); + public void onFetchPage() throws IOException, ExtractionException { + final String html = getDownloader().get(getLinkHandler().getUrl()).responseBody(); document = Jsoup.parse(html); albumJson = getAlbumInfoJson(html); trackInfo = albumJson.getArray("trackinfo"); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioExtractor.java index 8a8c97a8c6..bd9ec694cd 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioExtractor.java @@ -8,7 +8,6 @@ import com.grack.nanojson.JsonParserException; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.kiosk.KioskExtractor; @@ -35,8 +34,7 @@ public BandcampRadioExtractor(final StreamingService streamingService, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { try { json = JsonParser.object().from( getDownloader().get(RADIO_API_URL).responseBody()); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioStreamExtractor.java index 2b28f03a79..291e75fd74 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioStreamExtractor.java @@ -17,7 +17,6 @@ import org.schabi.newpipe.extractor.MediaFormat; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ContentNotSupportedException; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -57,8 +56,7 @@ static JsonObject query(final int id) throws ParsingException { } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { showInfo = query(Integer.parseInt(getId())); } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampSearchExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampSearchExtractor.java index 11b20e41b1..ae10fa54ba 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampSearchExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampSearchExtractor.java @@ -11,7 +11,6 @@ import org.schabi.newpipe.extractor.MultiInfoItemsCollector; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.SearchQueryHandler; @@ -113,7 +112,6 @@ public InfoItemsPage getInitialPage() throws IOException, ExtractionEx } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { } } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampStreamExtractor.java index dfdbb56965..c9ca928875 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampStreamExtractor.java @@ -17,7 +17,6 @@ import org.schabi.newpipe.extractor.Image; import org.schabi.newpipe.extractor.MediaFormat; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.PaidContentException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -51,9 +50,8 @@ public BandcampStreamExtractor(final StreamingService service, final LinkHandler @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { - final String html = downloader.get(getLinkHandler().getUrl()).responseBody(); + public void onFetchPage() throws IOException, ExtractionException { + final String html = getDownloader().get(getLinkHandler().getUrl()).responseBody(); document = Jsoup.parse(html); albumJson = getAlbumInfoJson(html); current = albumJson.getObject("current"); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCChannelTabExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCChannelTabExtractor.java index aef9daabf9..b48aca0952 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCChannelTabExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCChannelTabExtractor.java @@ -8,7 +8,6 @@ import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabExtractor; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; import org.schabi.newpipe.extractor.services.media_ccc.extractors.infoItems.MediaCCCStreamInfoItemExtractor; @@ -40,11 +39,10 @@ public MediaCCCChannelTabExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws ExtractionException, IOException { + public void onFetchPage() throws ExtractionException, IOException { if (conferenceData == null) { // only fetch conference data if we don't have it already - conferenceData = MediaCCCConferenceExtractor.fetchConferenceData(downloader, getId()); + conferenceData = MediaCCCConferenceExtractor.fetchConferenceData(getId()); } } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceExtractor.java index 30cab066fe..a1100067eb 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceExtractor.java @@ -7,10 +7,10 @@ import com.grack.nanojson.JsonParserException; import org.schabi.newpipe.extractor.Image; +import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.ChannelExtractor; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; @@ -31,13 +31,13 @@ public MediaCCCConferenceExtractor(final StreamingService service, super(service, linkHandler); } - static JsonObject fetchConferenceData(@Nonnull final Downloader downloader, - @Nonnull final String conferenceId) + static JsonObject fetchConferenceData(@Nonnull final String conferenceId) throws IOException, ExtractionException { final String conferenceUrl = MediaCCCConferenceLinkHandlerFactory.CONFERENCE_API_ENDPOINT + conferenceId; try { - return JsonParser.object().from(downloader.get(conferenceUrl).responseBody()); + return JsonParser.object().from(NewPipe.getDownloader() + .get(conferenceUrl).responseBody()); } catch (final JsonParserException jpe) { throw new ExtractionException("Could not parse json returned by URL: " + conferenceUrl); } @@ -103,9 +103,8 @@ public List getTabs() throws ParsingException { } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { - conferenceData = fetchConferenceData(downloader, getId()); + public void onFetchPage() throws IOException, ExtractionException { + conferenceData = fetchConferenceData(getId()); } @Nonnull diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceKiosk.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceKiosk.java index 3ce00ac431..3558edfd40 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceKiosk.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceKiosk.java @@ -9,7 +9,6 @@ import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.ChannelInfoItem; import org.schabi.newpipe.extractor.channel.ChannelInfoItemsCollector; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.kiosk.KioskExtractor; @@ -50,8 +49,8 @@ public InfoItemsPage getPage(final Page page) { } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { + final var downloader = getDownloader(); final String site = downloader.get(getLinkHandler().getUrl(), getExtractorLocalization()) .responseBody(); try { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamExtractor.java index 4c3edbd06c..c64437fbbb 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamExtractor.java @@ -10,7 +10,6 @@ import org.schabi.newpipe.extractor.Image; import org.schabi.newpipe.extractor.MediaFormat; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.LinkHandler; @@ -45,10 +44,8 @@ public MediaCCCLiveStreamExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { - final JsonArray doc = MediaCCCParsingHelper.getLiveStreams(downloader, - getExtractorLocalization()); + public void onFetchPage() throws IOException, ExtractionException { + final JsonArray doc = MediaCCCParsingHelper.getLiveStreams(getExtractorLocalization()); // Find the correct room for (int c = 0; c < doc.size(); c++) { final JsonObject conferenceObject = doc.getObject(c); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java index 2d34d011a6..ceba47f033 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java @@ -4,7 +4,6 @@ import com.grack.nanojson.JsonObject; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.kiosk.KioskExtractor; @@ -27,9 +26,8 @@ public MediaCCCLiveStreamKiosk(final StreamingService streamingService, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { - doc = MediaCCCParsingHelper.getLiveStreams(downloader, getExtractorLocalization()); + public void onFetchPage() throws IOException, ExtractionException { + doc = MediaCCCParsingHelper.getLiveStreams(getExtractorLocalization()); } @Nonnull diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCParsingHelper.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCParsingHelper.java index 89ef3943b0..ce96e9f4d4 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCParsingHelper.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCParsingHelper.java @@ -6,7 +6,7 @@ import com.grack.nanojson.JsonParserException; import org.schabi.newpipe.extractor.Image; import org.schabi.newpipe.extractor.Image.ResolutionLevel; -import org.schabi.newpipe.extractor.downloader.Downloader; +import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ReCaptchaException; import org.schabi.newpipe.extractor.localization.Localization; @@ -46,20 +46,19 @@ public static boolean isLiveStreamId(final String id) { * https://streaming.media.ccc.de/streams/v2.json. * Use this method to cache requests, because they can get quite big. * TODO: implement better caching policy (max-age: 3 min) - * @param downloader The downloader to use for making the request * @param localization The localization to be used. Will most likely be ignored. * @return {@link JsonArray} containing current conferences and info about their rooms and * streams. * @throws ExtractionException if the data could not be fetched or the retrieved data could not * be parsed to a {@link JsonArray} */ - public static JsonArray getLiveStreams(final Downloader downloader, - final Localization localization) + public static JsonArray getLiveStreams(final Localization localization) throws ExtractionException { if (liveStreams == null) { try { - final String site = downloader.get("https://streaming.media.ccc.de/streams/v2.json", - localization).responseBody(); + final String site = NewPipe.getDownloader() + .get("https://streaming.media.ccc.de/streams/v2.json", localization) + .responseBody(); liveStreams = JsonParser.array().from(site); } catch (final IOException | ReCaptchaException e) { throw new ExtractionException("Could not get live stream JSON.", e); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCRecentKiosk.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCRecentKiosk.java index 6223304597..bbd3df51ea 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCRecentKiosk.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCRecentKiosk.java @@ -7,7 +7,6 @@ import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.kiosk.KioskExtractor; @@ -34,9 +33,8 @@ public MediaCCCRecentKiosk(final StreamingService streamingService, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { - final String site = downloader.get("https://api.media.ccc.de/public/events/recent", + public void onFetchPage() throws IOException, ExtractionException { + final String site = getDownloader().get("https://api.media.ccc.de/public/events/recent", getExtractorLocalization()).responseBody(); try { doc = JsonParser.object().from(site); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCSearchExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCSearchExtractor.java index e72d26cb22..278a86553c 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCSearchExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCSearchExtractor.java @@ -17,7 +17,6 @@ import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.ChannelInfoItem; import org.schabi.newpipe.extractor.channel.ChannelInfoItemExtractor; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.linkhandler.SearchQueryHandler; import org.schabi.newpipe.extractor.search.SearchExtractor; @@ -100,14 +99,14 @@ public InfoItemsPage getPage(final Page page) { } @Override - public void onFetchPage(@Nonnull final Downloader downloader) + public void onFetchPage() throws IOException, ExtractionException { if (getLinkHandler().getContentFilters().contains(EVENTS) || getLinkHandler().getContentFilters().contains(ALL) || getLinkHandler().getContentFilters().isEmpty()) { final String site; final String url = getUrl(); - site = downloader.get(url, getExtractorLocalization()).responseBody(); + site = getDownloader().get(url, getExtractorLocalization()).responseBody(); try { doc = JsonParser.object().from(site); } catch (final JsonParserException jpe) { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCStreamExtractor.java index 0cb0ac4de8..9583c67ee1 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCStreamExtractor.java @@ -13,7 +13,6 @@ import org.schabi.newpipe.extractor.Image; import org.schabi.newpipe.extractor.MediaFormat; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.LinkHandler; @@ -190,8 +189,8 @@ public StreamType getStreamType() { } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { + final var downloader = getDownloader(); final String videoUrl = MediaCCCStreamLinkHandlerFactory.VIDEO_API_ENDPOINT + getId(); try { data = JsonParser.object().from(downloader.get(videoUrl).responseBody()); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeAccountExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeAccountExtractor.java index 8b86a3a441..9c3f5a933b 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeAccountExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeAccountExtractor.java @@ -8,7 +8,6 @@ import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.ChannelExtractor; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -121,9 +120,8 @@ public List getTabs() throws ParsingException { } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { - final Response response = downloader.get(baseUrl + public void onFetchPage() throws IOException, ExtractionException { + final Response response = getDownloader().get(baseUrl + PeertubeChannelLinkHandlerFactory.API_ENDPOINT + getId()); if (response != null) { setInitialData(response.responseBody()); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeChannelExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeChannelExtractor.java index f8594d6978..3114af91b6 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeChannelExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeChannelExtractor.java @@ -7,7 +7,6 @@ import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.ChannelExtractor; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -95,9 +94,8 @@ public List getTabs() throws ParsingException { } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { - final Response response = downloader.get( + public void onFetchPage() throws IOException, ExtractionException { + final Response response = getDownloader().get( baseUrl + PeertubeChannelLinkHandlerFactory.API_ENDPOINT + getId()); if (response != null) { setInitialData(response.responseBody()); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeChannelTabExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeChannelTabExtractor.java index fe8462bf8e..9174ce94db 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeChannelTabExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeChannelTabExtractor.java @@ -7,7 +7,6 @@ import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabExtractor; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -37,7 +36,7 @@ public PeertubeChannelTabExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) { + public void onFetchPage() { } @Nonnull diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeCommentsExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeCommentsExtractor.java index d7c523bcf3..3026948293 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeCommentsExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeCommentsExtractor.java @@ -9,7 +9,6 @@ import org.schabi.newpipe.extractor.comments.CommentsExtractor; import org.schabi.newpipe.extractor.comments.CommentsInfoItem; import org.schabi.newpipe.extractor.comments.CommentsInfoItemsCollector; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -147,6 +146,6 @@ public InfoItemsPage getPage(final Page page) } @Override - public void onFetchPage(@Nonnull final Downloader downloader) { + public void onFetchPage() { } } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubePlaylistExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubePlaylistExtractor.java index e1d05417c2..821882dc3a 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubePlaylistExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubePlaylistExtractor.java @@ -6,7 +6,6 @@ import org.schabi.newpipe.extractor.Image; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -140,9 +139,8 @@ public InfoItemsPage getPage(final Page page) } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { - final Response response = downloader.get(getUrl()); + public void onFetchPage() throws IOException, ExtractionException { + final Response response = getDownloader().get(getUrl()); try { playlistInfo = JsonParser.object().from(response.responseBody()); } catch (final JsonParserException jpe) { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeSearchExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeSearchExtractor.java index 5f7ac45d49..e89d240514 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeSearchExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeSearchExtractor.java @@ -7,7 +7,6 @@ import org.schabi.newpipe.extractor.MetaInfo; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -103,7 +102,6 @@ public InfoItemsPage getPage(final Page page) } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { } } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java index bf0e02b593..ff5b6bcf76 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java @@ -422,9 +422,8 @@ private void collectStreamsFrom(final StreamInfoItemsCollector collector, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { - final Response response = downloader.get( + public void onFetchPage() throws IOException, ExtractionException { + final Response response = getDownloader().get( baseUrl + PeertubeStreamLinkHandlerFactory.VIDEO_API_ENDPOINT + getId()); if (response != null) { setInitialData(response.responseBody()); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeTrendingExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeTrendingExtractor.java index df4e4b7eaa..eecc0eecdb 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeTrendingExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeTrendingExtractor.java @@ -5,7 +5,6 @@ import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -79,7 +78,6 @@ public InfoItemsPage getPage(final Page page) } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { } } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudChannelExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudChannelExtractor.java index 3cad8782b1..4976bcc961 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudChannelExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudChannelExtractor.java @@ -12,7 +12,6 @@ import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.ChannelExtractor; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; @@ -35,13 +34,13 @@ public SoundcloudChannelExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) throws IOException, - ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { userId = getLinkHandler().getId(); final String apiUrl = USERS_ENDPOINT + userId + "?client_id=" + SoundcloudParsingHelper.clientId(); + final var downloader = getDownloader(); final String response = downloader.get(apiUrl, getExtractorLocalization()).responseBody(); try { user = JsonParser.object().from(response); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudChannelTabExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudChannelTabExtractor.java index b1df654839..c40fc548ec 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudChannelTabExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudChannelTabExtractor.java @@ -6,7 +6,6 @@ import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabExtractor; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; @@ -51,7 +50,7 @@ private String getEndpoint() throws ParsingException { } @Override - public void onFetchPage(@Nonnull final Downloader downloader) { + public void onFetchPage() { } @Nonnull diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudChartsExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudChartsExtractor.java index 3e2fb67433..a96ba3d408 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudChartsExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudChartsExtractor.java @@ -6,7 +6,6 @@ import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.kiosk.KioskExtractor; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; @@ -31,8 +30,7 @@ public SoundcloudChartsExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws ExtractionException, IOException { + public void onFetchPage() throws ExtractionException, IOException { // Check if already run if (initialFetchNextPageUrl != null) { return; diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudCommentsExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudCommentsExtractor.java index 7dba601bca..4d92dabeb6 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudCommentsExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudCommentsExtractor.java @@ -67,7 +67,7 @@ private InfoItemsPage getPage(@Nonnull final String url) } @Override - public void onFetchPage(@Nonnull final Downloader downloader) { } + public void onFetchPage() { } private void collectStreamsFrom(final CommentsInfoItemsCollector collector, final JsonArray entries) throws ParsingException { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java index 46bba0a0d9..77b29727ed 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java @@ -14,7 +14,6 @@ import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; @@ -43,13 +42,12 @@ public SoundcloudPlaylistExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) throws IOException, - ExtractionException { - + public void onFetchPage() throws IOException, ExtractionException { playlistId = getLinkHandler().getId(); final String apiUrl = SOUNDCLOUD_API_V2_URL + "playlists/" + playlistId + "?client_id=" + SoundcloudParsingHelper.clientId() + "&representation=compact"; + final var downloader = getDownloader(); final String response = downloader.get(apiUrl, getExtractorLocalization()).responseBody(); try { playlist = JsonParser.object().from(response); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudSearchExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudSearchExtractor.java index b26728873d..d03945fd8a 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudSearchExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudSearchExtractor.java @@ -101,8 +101,7 @@ public InfoItemsPage getPage(final Page page) throws IOException, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) throws IOException, - ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { final Downloader dl = getDownloader(); final String url = getUrl(); try { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudStreamExtractor.java index 4de7114de6..838bfae057 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudStreamExtractor.java @@ -18,7 +18,6 @@ import org.schabi.newpipe.extractor.MediaFormat; import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.GeographicRestrictionException; @@ -55,9 +54,8 @@ public SoundcloudStreamExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) throws IOException, - ExtractionException { - track = SoundcloudParsingHelper.resolveFor(downloader, getUrl()); + public void onFetchPage() throws IOException, ExtractionException { + track = SoundcloudParsingHelper.resolveFor(getDownloader(), getUrl()); final String policy = track.getString("policy", ""); if (!policy.equals("ALLOW") && !policy.equals("MONETIZE")) { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelExtractor.java index 147345526a..9408346beb 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelExtractor.java @@ -31,7 +31,6 @@ import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.ChannelExtractor; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; @@ -96,8 +95,7 @@ public YoutubeChannelExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { final String channelPath = super.getId(); final String id = resolveChannelId(channelPath); // Fetch Videos tab diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelTabExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelTabExtractor.java index 1a1f7fbbb3..22ad34a826 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelTabExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelTabExtractor.java @@ -9,7 +9,6 @@ import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabExtractor; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; @@ -73,8 +72,7 @@ private String getChannelTabsParameters() throws ParsingException { } @Override - public void onFetchPage(@Nonnull final Downloader downloader) throws IOException, - ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { final String channelIdFromId = resolveChannelId(super.getId()); final String params = getChannelTabsParameters(); @@ -547,7 +545,7 @@ public static final class VideosTabExtractor extends YoutubeChannelTabExtractor } @Override - public void onFetchPage(@Nonnull final Downloader downloader) { + public void onFetchPage() { // Nothing to do, the initial data was already fetched and is stored in the link handler } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelTabPlaylistExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelTabPlaylistExtractor.java index 26ccd6d942..c1b9015d9f 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelTabPlaylistExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeChannelTabPlaylistExtractor.java @@ -6,7 +6,6 @@ import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabExtractor; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -56,10 +55,9 @@ public YoutubeChannelTabPlaylistExtractor(@Nonnull final StreamingService servic } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { try { - playlistExtractorInstance.onFetchPage(downloader); + playlistExtractorInstance.onFetchPage(); if (!playlistExisting) { playlistExisting = true; } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeCommentsExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeCommentsExtractor.java index 8667768a4b..139f6324fa 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeCommentsExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeCommentsExtractor.java @@ -8,7 +8,6 @@ import org.schabi.newpipe.extractor.comments.CommentsExtractor; import org.schabi.newpipe.extractor.comments.CommentsInfoItem; import org.schabi.newpipe.extractor.comments.CommentsInfoItemsCollector; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; @@ -340,8 +339,7 @@ private void collectCommentItem(@Nonnull final JsonArray mutations, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { final Localization localization = getExtractorLocalization(); // @formatter:off final byte[] body = JsonWriter.string( diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeFeedExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeFeedExtractor.java index b46530b8f4..377677d389 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeFeedExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeFeedExtractor.java @@ -7,7 +7,6 @@ import org.schabi.newpipe.extractor.ListExtractor; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException; import org.schabi.newpipe.extractor.exceptions.ExtractionException; @@ -31,12 +30,11 @@ public YoutubeFeedExtractor(final StreamingService service, final ListLinkHandle private Document document; @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { final String channelIdOrUser = getLinkHandler().getId(); final String feedUrl = YoutubeParsingHelper.getFeedUrlFrom(channelIdOrUser); - final Response response = downloader.get(feedUrl); + final Response response = getDownloader().get(feedUrl); if (response.responseCode() == 404) { throw new ContentNotAvailableException("Could not get feed: 404 - not found"); } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMixPlaylistExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMixPlaylistExtractor.java index 1df90f967f..4a703f2f24 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMixPlaylistExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMixPlaylistExtractor.java @@ -21,7 +21,6 @@ import org.schabi.newpipe.extractor.ListExtractor; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException; import org.schabi.newpipe.extractor.exceptions.ExtractionException; @@ -79,8 +78,7 @@ public YoutubeMixPlaylistExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { final Localization localization = getExtractorLocalization(); final URL url = stringToURL(getUrl()); final String mixPlaylistId = getId(); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMusicSearchExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMusicSearchExtractor.java index a116eb312e..f5bbcbb694 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMusicSearchExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeMusicSearchExtractor.java @@ -23,7 +23,6 @@ import org.schabi.newpipe.extractor.MultiInfoItemsCollector; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.SearchQueryHandler; @@ -51,8 +50,7 @@ public YoutubeMusicSearchExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { final String url = "https://music.youtube.com/youtubei/v1/search?" + DISABLE_PRETTY_PRINT_PARAMETER; diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java index 3e2fd89d5e..7e5e4c318f 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubePlaylistExtractor.java @@ -19,7 +19,6 @@ import org.schabi.newpipe.extractor.Image; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler; @@ -68,8 +67,7 @@ public YoutubePlaylistExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) throws IOException, - ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { final String playlistId = getId(); final Localization localization = getExtractorLocalization(); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeSearchExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeSearchExtractor.java index e888787cf9..16fba05026 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeSearchExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeSearchExtractor.java @@ -22,7 +22,6 @@ import org.schabi.newpipe.extractor.MultiInfoItemsCollector; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.linkhandler.SearchQueryHandler; @@ -87,8 +86,7 @@ public YoutubeSearchExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) throws IOException, - ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { final String query = super.getSearchString(); final Localization localization = getExtractorLocalization(); final String params = getSearchParameter(searchType); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java index 0fa6ac21d8..c4ca28c1f5 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeStreamExtractor.java @@ -44,7 +44,6 @@ import org.schabi.newpipe.extractor.MetaInfo; import org.schabi.newpipe.extractor.MultiInfoItemsCollector; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.AccountTerminatedException; import org.schabi.newpipe.extractor.exceptions.AgeRestrictedContentException; import org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException; @@ -846,8 +845,7 @@ public String getErrorMessage() { //////////////////////////////////////////////////////////////////////////*/ @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { final String videoId = getId(); final Localization localization = getExtractorLocalization(); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeChartsBaseKioskExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeChartsBaseKioskExtractor.java index f5618a342a..926484577b 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeChartsBaseKioskExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeChartsBaseKioskExtractor.java @@ -6,7 +6,6 @@ import org.schabi.newpipe.extractor.Image; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.kiosk.KioskExtractor; @@ -82,8 +81,7 @@ protected YoutubeChartsBaseKioskExtractor(final StreamingService streamingServic } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { final Localization localization = getExtractorLocalization(); final ContentCountry contentCountry = getExtractorContentCountry(); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeDesktopBaseKioskExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeDesktopBaseKioskExtractor.java index 7f1c7390da..4b0e124f9f 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeDesktopBaseKioskExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeDesktopBaseKioskExtractor.java @@ -13,7 +13,6 @@ import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.kiosk.KioskExtractor; @@ -50,8 +49,7 @@ protected YoutubeDesktopBaseKioskExtractor(final StreamingService streamingServi } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { responseData = YoutubeChannelHelper.getChannelResponse( browseId, params, diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeTrendingExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeTrendingExtractor.java index 4dd3c04355..7cc895f4f1 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeTrendingExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeTrendingExtractor.java @@ -30,7 +30,6 @@ import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.kiosk.KioskExtractor; @@ -61,8 +60,7 @@ public YoutubeTrendingExtractor(final StreamingService service, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { // @formatter:off final byte[] body = JsonWriter.string(prepareDesktopJsonBuilder(getExtractorLocalization(), getExtractorContentCountry()) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeTrendingMusicExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeTrendingMusicExtractor.java index 53ed963f4e..9b1f932d99 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeTrendingMusicExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/kiosk/YoutubeTrendingMusicExtractor.java @@ -1,7 +1,6 @@ package org.schabi.newpipe.extractor.services.youtube.extractors.kiosk; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; import org.schabi.newpipe.extractor.exceptions.UnsupportedContentInCountryException; @@ -19,14 +18,13 @@ public YoutubeTrendingMusicExtractor(final StreamingService streamingService, } @Override - public void onFetchPage(@Nonnull final Downloader downloader) - throws IOException, ExtractionException { + public void onFetchPage() throws IOException, ExtractionException { if (!YT_CHARTS_SUPPORTED_COUNTRY_CODES.contains( getExtractorContentCountry().getCountryCode())) { throw new UnsupportedContentInCountryException( "YouTube Charts doesn't support this country for trending music videos charts"); } - super.onFetchPage(downloader); + super.onFetchPage(); } @Nonnull From 48b790fb7b80e65d2742b16918809179828706bb Mon Sep 17 00:00:00 2001 From: "Yevhen Babiichuk (DustDFG)" Date: Sun, 8 Feb 2026 11:14:32 +0200 Subject: [PATCH 2/2] Refactor Extractor#getDownloader to be a static shorthand The downloader is global there is no sense to store reference to it in every instance of Extractor. So eliminate the field, make getDownloader shorthand for Newpipe.getDownloader and make it static to be accesible in static functions of extractors --- .../main/java/org/schabi/newpipe/extractor/Extractor.java | 7 ++----- .../bandcamp/extractors/BandcampRadioStreamExtractor.java | 3 +-- .../media_ccc/extractors/MediaCCCConferenceExtractor.java | 3 +-- .../peertube/extractors/PeertubeStreamExtractor.java | 5 +---- .../soundcloud/extractors/SoundcloudCommentsExtractor.java | 5 +---- .../soundcloud/extractors/SoundcloudPlaylistExtractor.java | 3 +-- .../soundcloud/extractors/SoundcloudStreamExtractor.java | 3 +-- 7 files changed, 8 insertions(+), 21 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java index 4d0aa42d0e..90cd7eab23 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/Extractor.java @@ -29,13 +29,10 @@ public abstract class Extractor { private ContentCountry forcedContentCountry = null; private boolean pageFetched = false; - // called like this to prevent checkstyle errors about "hiding a field" - private final Downloader downloader; protected Extractor(final StreamingService service, final LinkHandler linkHandler) { this.service = Objects.requireNonNull(service, "service is null"); this.linkHandler = Objects.requireNonNull(linkHandler, "LinkHandler is null"); - this.downloader = Objects.requireNonNull(NewPipe.getDownloader(), "downloader is null"); } /** @@ -117,8 +114,8 @@ public int getServiceId() { return service.getServiceId(); } - public Downloader getDownloader() { - return downloader; + public static Downloader getDownloader() { + return NewPipe.getDownloader(); } /*////////////////////////////////////////////////////////////////////////// diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioStreamExtractor.java index 291e75fd74..463e2b818c 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/bandcamp/extractors/BandcampRadioStreamExtractor.java @@ -15,7 +15,6 @@ import org.schabi.newpipe.extractor.Image; import org.schabi.newpipe.extractor.Image.ResolutionLevel; import org.schabi.newpipe.extractor.MediaFormat; -import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.exceptions.ContentNotSupportedException; import org.schabi.newpipe.extractor.exceptions.ExtractionException; @@ -48,7 +47,7 @@ public BandcampRadioStreamExtractor(final StreamingService service, static JsonObject query(final int id) throws ParsingException { try { - return JsonParser.object().from(NewPipe.getDownloader() + return JsonParser.object().from(getDownloader() .get(BASE_API_URL + "/bcweekly/1/get?id=" + id).responseBody()); } catch (final IOException | ReCaptchaException | JsonParserException e) { throw new ParsingException("could not get show data", e); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceExtractor.java index a1100067eb..a25bffb5db 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceExtractor.java @@ -7,7 +7,6 @@ import com.grack.nanojson.JsonParserException; import org.schabi.newpipe.extractor.Image; -import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.channel.ChannelExtractor; import org.schabi.newpipe.extractor.channel.tabs.ChannelTabs; @@ -36,7 +35,7 @@ static JsonObject fetchConferenceData(@Nonnull final String conferenceId) final String conferenceUrl = MediaCCCConferenceLinkHandlerFactory.CONFERENCE_API_ENDPOINT + conferenceId; try { - return JsonParser.object().from(NewPipe.getDownloader() + return JsonParser.object().from(getDownloader() .get(conferenceUrl).responseBody()); } catch (final JsonParserException jpe) { throw new ExtractionException("Could not parse json returned by URL: " + conferenceUrl); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java index ff5b6bcf76..fe518b23b5 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/peertube/extractors/PeertubeStreamExtractor.java @@ -11,9 +11,7 @@ import com.grack.nanojson.JsonParserException; import org.schabi.newpipe.extractor.Image; import org.schabi.newpipe.extractor.MediaFormat; -import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.StreamingService; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -99,9 +97,8 @@ public Description getDescription() throws ParsingException { } if (text.length() == 250 && text.substring(247).equals("...")) { // If description is shortened, get full description - final Downloader dl = NewPipe.getDownloader(); try { - final Response response = dl.get(baseUrl + final Response response = getDownloader().get(baseUrl + PeertubeStreamLinkHandlerFactory.VIDEO_API_ENDPOINT + getId() + "/description"); final JsonObject jsonObject = JsonParser.object().from(response.responseBody()); diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudCommentsExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudCommentsExtractor.java index 4d92dabeb6..6ab5f14e58 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudCommentsExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudCommentsExtractor.java @@ -5,13 +5,11 @@ import com.grack.nanojson.JsonParser; import com.grack.nanojson.JsonParserException; -import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.comments.CommentsExtractor; import org.schabi.newpipe.extractor.comments.CommentsInfoItem; import org.schabi.newpipe.extractor.comments.CommentsInfoItemsCollector; -import org.schabi.newpipe.extractor.downloader.Downloader; import org.schabi.newpipe.extractor.downloader.Response; import org.schabi.newpipe.extractor.exceptions.ExtractionException; import org.schabi.newpipe.extractor.exceptions.ParsingException; @@ -49,8 +47,7 @@ public InfoItemsPage getPage(final Page page) throws Extractio @Nonnull private InfoItemsPage getPage(@Nonnull final String url) throws ParsingException, IOException, ReCaptchaException { - final Downloader downloader = NewPipe.getDownloader(); - final Response response = downloader.get(url); + final Response response = getDownloader().get(url); final JsonObject json; try { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java index 77b29727ed..464e580907 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudPlaylistExtractor.java @@ -11,7 +11,6 @@ import com.grack.nanojson.JsonParserException; import org.schabi.newpipe.extractor.Image; -import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.Page; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.exceptions.ExtractionException; @@ -178,7 +177,7 @@ public InfoItemsPage getPage(final Page page) throws IOException + SoundcloudParsingHelper.clientId() + "&ids=" + String.join(",", currentIds); final StreamInfoItemsCollector collector = new StreamInfoItemsCollector(getServiceId()); - final String response = NewPipe.getDownloader().get(currentPageUrl, + final String response = getDownloader().get(currentPageUrl, getExtractorLocalization()).responseBody(); try { diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudStreamExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudStreamExtractor.java index 838bfae057..aea762dddd 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudStreamExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/soundcloud/extractors/SoundcloudStreamExtractor.java @@ -16,7 +16,6 @@ import org.schabi.newpipe.extractor.Image; import org.schabi.newpipe.extractor.MediaFormat; -import org.schabi.newpipe.extractor.NewPipe; import org.schabi.newpipe.extractor.StreamingService; import org.schabi.newpipe.extractor.exceptions.ContentNotAvailableException; import org.schabi.newpipe.extractor.exceptions.ExtractionException; @@ -189,7 +188,7 @@ private String getTranscodingUrl(final String endpointUrl) apiStreamUrl += "&track_authorization=" + trackAuthorization; } - final String response = NewPipe.getDownloader().get(apiStreamUrl).responseBody(); + final String response = getDownloader().get(apiStreamUrl).responseBody(); final JsonObject urlObject; try { urlObject = JsonParser.object().from(response);