6666import java .util .Collections ;
6767import java .util .HashMap ;
6868import java .util .List ;
69+ import java .util .Locale ;
6970import java .util .Map ;
7071import java .util .Objects ;
7172import java .util .Optional ;
7273import java .util .Random ;
74+ import java .util .Set ;
7375import java .util .regex .Pattern ;
7476import java .util .stream .Stream ;
7577
@@ -241,6 +243,18 @@ private YoutubeParsingHelper() {
241243 private static final Pattern C_ANDROID_PATTERN = Pattern .compile ("&c=ANDROID" );
242244 private static final Pattern C_IOS_PATTERN = Pattern .compile ("&c=IOS" );
243245
246+ private static final Set <String > GOOGLE_URLS = Set .of ("google." , "m.google." , "www.google." );
247+ private static final Set <String > INVIDIOUS_URLS = Set .of ("invidio.us" , "dev.invidio.us" ,
248+ "www.invidio.us" , "redirect.invidious.io" , "invidious.snopyta.org" , "yewtu.be" ,
249+ "tube.connect.cafe" , "tubus.eduvid.org" , "invidious.kavin.rocks" , "invidious.site" ,
250+ "invidious-us.kavin.rocks" , "piped.kavin.rocks" , "vid.mint.lgbt" , "invidiou.site" ,
251+ "invidious.fdn.fr" , "invidious.048596.xyz" , "invidious.zee.li" , "vid.puffyan.us" ,
252+ "ytprivate.com" , "invidious.namazso.eu" , "invidious.silkky.cloud" , "ytb.trom.tf" ,
253+ "invidious.exonip.de" , "inv.riverside.rocks" , "invidious.blamefran.net" , "y.com.cm" ,
254+ "invidious.moomoo.me" , "yt.cyberhost.uk" );
255+ private static final Set <String > YOUTUBE_URLS = Set .of ("youtube.com" , "www.youtube.com" ,
256+ "m.youtube.com" , "music.youtube.com" );
257+
244258 /**
245259 * Determines how the consent cookie (that is required for YouTube) will be generated.
246260 *
@@ -262,21 +276,14 @@ private static boolean isGoogleURL(final String url) {
262276 final String cachedUrl = extractCachedUrlIfNeeded (url );
263277 try {
264278 final URL u = new URL (cachedUrl );
265- final String host = u .getHost ();
266- return host .startsWith ("google." )
267- || host .startsWith ("m.google." )
268- || host .startsWith ("www.google." );
279+ return GOOGLE_URLS .stream ().anyMatch (item -> u .getHost ().startsWith (item ));
269280 } catch (final MalformedURLException e ) {
270281 return false ;
271282 }
272283 }
273284
274285 public static boolean isYoutubeURL (@ Nonnull final URL url ) {
275- final String host = url .getHost ();
276- return host .equalsIgnoreCase ("youtube.com" )
277- || host .equalsIgnoreCase ("www.youtube.com" )
278- || host .equalsIgnoreCase ("m.youtube.com" )
279- || host .equalsIgnoreCase ("music.youtube.com" );
286+ return YOUTUBE_URLS .contains (url .getHost ().toLowerCase (Locale .ROOT ));
280287 }
281288
282289 public static boolean isYoutubeServiceURL (@ Nonnull final URL url ) {
@@ -290,36 +297,8 @@ public static boolean isHooktubeURL(@Nonnull final URL url) {
290297 return host .equalsIgnoreCase ("hooktube.com" );
291298 }
292299
293- public static boolean isInvidioURL (@ Nonnull final URL url ) {
294- final String host = url .getHost ();
295- return host .equalsIgnoreCase ("invidio.us" )
296- || host .equalsIgnoreCase ("dev.invidio.us" )
297- || host .equalsIgnoreCase ("www.invidio.us" )
298- || host .equalsIgnoreCase ("redirect.invidious.io" )
299- || host .equalsIgnoreCase ("invidious.snopyta.org" )
300- || host .equalsIgnoreCase ("yewtu.be" )
301- || host .equalsIgnoreCase ("tube.connect.cafe" )
302- || host .equalsIgnoreCase ("tubus.eduvid.org" )
303- || host .equalsIgnoreCase ("invidious.kavin.rocks" )
304- || host .equalsIgnoreCase ("invidious-us.kavin.rocks" )
305- || host .equalsIgnoreCase ("piped.kavin.rocks" )
306- || host .equalsIgnoreCase ("invidious.site" )
307- || host .equalsIgnoreCase ("vid.mint.lgbt" )
308- || host .equalsIgnoreCase ("invidiou.site" )
309- || host .equalsIgnoreCase ("invidious.fdn.fr" )
310- || host .equalsIgnoreCase ("invidious.048596.xyz" )
311- || host .equalsIgnoreCase ("invidious.zee.li" )
312- || host .equalsIgnoreCase ("vid.puffyan.us" )
313- || host .equalsIgnoreCase ("ytprivate.com" )
314- || host .equalsIgnoreCase ("invidious.namazso.eu" )
315- || host .equalsIgnoreCase ("invidious.silkky.cloud" )
316- || host .equalsIgnoreCase ("invidious.exonip.de" )
317- || host .equalsIgnoreCase ("inv.riverside.rocks" )
318- || host .equalsIgnoreCase ("invidious.blamefran.net" )
319- || host .equalsIgnoreCase ("invidious.moomoo.me" )
320- || host .equalsIgnoreCase ("ytb.trom.tf" )
321- || host .equalsIgnoreCase ("yt.cyberhost.uk" )
322- || host .equalsIgnoreCase ("y.com.cm" );
300+ public static boolean isInvidiousURL (@ Nonnull final URL url ) {
301+ return INVIDIOUS_URLS .contains (url .getHost ().toLowerCase (Locale .ROOT ));
323302 }
324303
325304 public static boolean isY2ubeURL (@ Nonnull final URL url ) {
0 commit comments