mirror of
https://github.com/TeamNewPipe/NewPipeExtractor
synced 2025-08-22 18:07:47 +00:00
[YouTube] Add trending gaming videos extractor from Gaming system channel
This commit is contained in:
parent
a870e3767d
commit
f4b0a7d97e
@ -37,6 +37,7 @@ import org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeSubscript
|
||||
import org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeSuggestionExtractor;
|
||||
import org.schabi.newpipe.extractor.services.youtube.extractors.YoutubeTrendingExtractor;
|
||||
import org.schabi.newpipe.extractor.services.youtube.extractors.kiosk.YoutubeLiveExtractor;
|
||||
import org.schabi.newpipe.extractor.services.youtube.extractors.kiosk.YoutubeTrendingGamingVideosExtractor;
|
||||
import org.schabi.newpipe.extractor.services.youtube.extractors.kiosk.YoutubeTrendingPodcastsEpisodesExtractor;
|
||||
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeChannelLinkHandlerFactory;
|
||||
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeChannelTabLinkHandlerFactory;
|
||||
@ -45,6 +46,7 @@ import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeLiveLink
|
||||
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubePlaylistLinkHandlerFactory;
|
||||
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeSearchQueryHandlerFactory;
|
||||
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeStreamLinkHandlerFactory;
|
||||
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeTrendingGamingVideosLinkHandlerFactory;
|
||||
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeTrendingLinkHandlerFactory;
|
||||
import org.schabi.newpipe.extractor.services.youtube.linkHandler.YoutubeTrendingPodcastsEpisodesLinkHandlerFactory;
|
||||
import org.schabi.newpipe.extractor.stream.StreamExtractor;
|
||||
@ -163,6 +165,8 @@ public class YoutubeService extends StreamingService {
|
||||
YoutubeLiveLinkHandlerFactory.INSTANCE;
|
||||
final ListLinkHandlerFactory trendingPodcastsEpisodesLHF =
|
||||
YoutubeTrendingPodcastsEpisodesLinkHandlerFactory.INSTANCE;
|
||||
final ListLinkHandlerFactory trendingGamingVideosLHF =
|
||||
YoutubeTrendingGamingVideosLinkHandlerFactory.INSTANCE;
|
||||
|
||||
try {
|
||||
list.addKioskEntry(
|
||||
@ -181,6 +185,14 @@ public class YoutubeService extends StreamingService {
|
||||
trendingPodcastsEpisodesLHF,
|
||||
YoutubeTrendingPodcastsEpisodesLinkHandlerFactory.KIOSK_ID
|
||||
);
|
||||
list.addKioskEntry(
|
||||
(streamingService, url, id) -> new YoutubeTrendingGamingVideosExtractor(
|
||||
YoutubeService.this,
|
||||
trendingGamingVideosLHF.fromUrl(url),
|
||||
id),
|
||||
trendingGamingVideosLHF,
|
||||
YoutubeTrendingGamingVideosLinkHandlerFactory.KIOSK_ID
|
||||
);
|
||||
list.addKioskEntry(
|
||||
(streamingService, url, id) -> new YoutubeTrendingExtractor(
|
||||
YoutubeService.this,
|
||||
|
@ -0,0 +1,14 @@
|
||||
package org.schabi.newpipe.extractor.services.youtube.extractors.kiosk;
|
||||
|
||||
import org.schabi.newpipe.extractor.StreamingService;
|
||||
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandler;
|
||||
|
||||
public class YoutubeTrendingGamingVideosExtractor extends YoutubeDesktopBaseKioskExtractor {
|
||||
|
||||
public YoutubeTrendingGamingVideosExtractor(final StreamingService streamingService,
|
||||
final ListLinkHandler linkHandler,
|
||||
final String kioskId) {
|
||||
super(streamingService, linkHandler, kioskId, "UCOpNcN46UbXVtpKMrmU4Abg",
|
||||
"Egh0cmVuZGluZw%3D%3D");
|
||||
}
|
||||
}
|
@ -0,0 +1,49 @@
|
||||
package org.schabi.newpipe.extractor.services.youtube.linkHandler;
|
||||
|
||||
import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.isInvidiousURL;
|
||||
import static org.schabi.newpipe.extractor.services.youtube.YoutubeParsingHelper.isYoutubeURL;
|
||||
|
||||
import org.schabi.newpipe.extractor.exceptions.ParsingException;
|
||||
import org.schabi.newpipe.extractor.linkhandler.ListLinkHandlerFactory;
|
||||
import org.schabi.newpipe.extractor.utils.Utils;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
import java.util.List;
|
||||
|
||||
public final class YoutubeTrendingGamingVideosLinkHandlerFactory extends ListLinkHandlerFactory {
|
||||
|
||||
public static final String KIOSK_ID = "trending_gaming";
|
||||
|
||||
public static final YoutubeTrendingGamingVideosLinkHandlerFactory INSTANCE =
|
||||
new YoutubeTrendingGamingVideosLinkHandlerFactory();
|
||||
|
||||
private YoutubeTrendingGamingVideosLinkHandlerFactory() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUrl(final String id,
|
||||
final List<String> contentFilters,
|
||||
final String sortFilter)
|
||||
throws ParsingException, UnsupportedOperationException {
|
||||
return "https://www.youtube.com/gaming/trending";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getId(final String url) throws ParsingException, UnsupportedOperationException {
|
||||
return KIOSK_ID;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onAcceptUrl(final String url) {
|
||||
final URL urlObj;
|
||||
try {
|
||||
urlObj = Utils.stringToURL(url);
|
||||
} catch (final MalformedURLException e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return Utils.isHTTP(urlObj) && (isYoutubeURL(urlObj) || isInvidiousURL(urlObj))
|
||||
&& "/gaming/trending".equals(urlObj.getPath());
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user